AiNiee-Next
简体中文 | English | 繁體中文 | 日本語 | 한국어 | Русский | Español
AiNiee-Next 是基于 AiNiee 核心翻译逻辑开发的命令行版本。项目使用 uv 管理 Python 环境,并针对长时间运行、批量任务、服务器部署和自动化使用做了大量改进。
项目以 CLI/TUI 为主要操作界面,同时提供 Web 控制面板、任务队列、插件系统和 MCP 服务,适合个人翻译、长篇内容处理和需要长期挂机的批量任务。
智能诊断与问题反馈
任务出现异常时,程序会收集错误堆栈、运行环境、API 平台、模型和最近的操作流程,并结合内置规则与可选的 LLM 分析,帮助判断问题来自 API、网络、配置、运行环境还是项目代码。对于疑似代码问题,还可以自动整理包含错误描述、环境信息、关键 traceback 和初步分析的 GitHub Issue,方便反馈和排查。
性能展示
本项目为极致的性能释放和稳定性而生。
下图展示了一个约 20,000 行的待翻译文件,在 50 并发线程下仅用约 4 分钟即可完成翻译任务:
核心特性
- 稳定运行与错误恢复:清理底层 I/O 输出,减少冗余日志对 TUI 的干扰,并支持异常拦截、自动重试和断点续传,适合长时间挂机运行。
- 跨平台支持:可在 Windows、Linux、macOS 和 Android(Termux)上运行,也适合 Headless 服务器环境。
- 多种文件格式:支持 Epub、Docx、Txt、Srt、Ass、Vtt、Lrc、Json、Po、Paratranz 等 20 多种格式,并可结合 Calibre 自动处理
.mobi、.azw3、.kepub、.fb2等电子书格式。 - 任务与配置管理:支持运行中调整并发、切换 API Key、启动 Web 监控、查看任务状态以及费用和完成时间预估,同时提供多 Profile 管理、配置热重载和可调整顺序的批量任务队列;队列运行时也能修改待处理任务,并会按顺序自动执行。
- 插件与翻译辅助:可以通过插件扩展功能,并提供集中管理、RAG 历史译文参考和翻译检查,用于改善长篇翻译中的术语、文风一致性,并检测漏译、错译和格式异常。
- 上下文缓存:支持 Anthropic、Google 和 Amazon Bedrock 的上下文缓存,可缓存系统提示词和术语表;当前 API 不兼容时会自动关闭并提示。
- 模型与 API 支持:兼容主流在线 API、第三方中转服务和本地模型,会根据接口类型给出对应的参数提示,支持 DeepSeek R1、Claude 3.5 等推理模型,并提供多 API 故障转移、自动切换和可配置的触发阈值。
- 高并发处理:基于 aiohttp 的异步请求模式支持 100 以上并发,可区分不可重试错误和临时错误,记录不同 API 的功能兼容情况,并在高并发时保护文件描述符、端口等系统资源;并发达到 15 时会提示启用异步模式。
快速开始
新用户建议先阅读:图文快速上手教程;还没有 API Key 的用户可先看:DeepSeek API Key 申请教程;想提升翻译质量可继续看:提示词、术语表、润色与软件设置教程
方式一:一键启动(推荐)
1. 获取代码
git clone https://github.com/ShadowLoveElysia/AiNiee-Next.git
cd AiNiee-Next
2. 环境准备(首次运行)
Windows:
双击 prepare.bat
Linux / macOS:
chmod +x prepare.sh && ./prepare.sh
3. 启动应用
Windows:
双击 Launch.bat
Linux / macOS:
./Launch.sh
方式二:手动配置
1. 安装 uv
Windows (PowerShell):
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Linux / macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
Android (Termux):
pkg update && pkg upgrade
pkg install python
pip install uv
2. 获取代码并启动
git clone https://github.com/ShadowLoveElysia/AiNiee-Next.git
cd AiNiee-Next
uv run ainiee_cli.py
命令行参数
支持通过命令行参数直接启动任务,适用于脚本集成与自动化。
翻译任务示例:
uv run ainiee_cli.py translate input.txt -o output_dir -p MyProfile -s Japanese -t Chinese --resume --yes
队列任务示例:
uv run ainiee_cli.py queue --queue-file my_queue.json --yes
MCP 服务示例:
uv run ainiee_cli.py mcp --mcp-transport stdio
主要参数:
translate/polish/export/queue/mcp: 任务类型-o, --output: 输出路径-p, --profile: 配置 Profile 名称-s, --source: 源语言-t, --target: 目标语言--type: 项目类型 (Txt, Epub, MTool, RenPy 等)--resume: 自动恢复缓存任务--yes: 非交互模式--threads: 并发线程数--platform: 目标平台--model: 模型名称--api-url: API 地址--api-key: API 密钥--mcp-transport: MCP 传输模式,可选stdio/streamable-http/sse
Web 控制面板
本项目集成基于 React 构建的 Web 控制面板,已进入稳定阶段。
启动方式:
- 运行
uv run ainiee_cli.py进入主菜单 - 选择 15. Start Web Server
- 程序将自动启动服务(默认端口 8000)并打开浏览器
Web 服务默认仅监听 127.0.0.1,只能从本机访问。若需要从局域网或远程设备访问,请在 TUI 的项目设置 → 高级设置中开启 局域网/远程访问;该安全开关只在 TUI 设置列表中提供,Web 设置页无法修改。开关关闭时,每次从 TUI 启动 Web 服务都会显示一行黄色提示。
在没有 TUI 的服务器上,可以用下面的命令仅为本次无头 Web 进程开放远程监听:
uv run python Tools/TauriShell/tauri_web_host.py --host 0.0.0.0 --port 8000 --allow-remote-access
--allow-remote-access 仅对本次启动有效,不会写入 Profile。未传入该参数时,非 loopback 的 --host 会被拒绝。远程访问只应在可信网络中开启;若要暴露到公网,请额外配置 TLS、独立的反向代理认证和必要的网络访问控制。
功能:
- 可视化看板:实时图表展示 RPM、TPM 及任务进度
- 网络访问:开启 TUI 中的局域网/远程访问开关后,可从局域网或远程设备监控
- 配置管理:网页端创建、切换配置 Profile
- 队列管理:拖拽排序、实时编辑任务参数
- 插件中心:启用/禁用 RAG 等高级功能
开发说明:Web 控制面板已稳定运行,但功能相对 TUI 模式较少。本项目以 CLI/TUI 交互为核心开发方向,Web 端功能更新将在后续版本中逐步跟进。
MCP 服务
本项目提供可选的 MCP 服务模块,复用现有 WebServer 后端能力,并尽量覆盖全部 Web API 路由,以便在 MCP 客户端中获得接近 Web 面板的操作体验。
任何支持 MCP stdio 或 streamable-http 的 LLM 客户端,都可以直接接入本项目,不需要额外读取项目源码或手动拼接 Web API。
启动方式:
- 命令行直启:
uv run ainiee_cli.py mcp --mcp-transport stdio - 主菜单启动:进入主菜单后选择 16. 启动 MCP 服务
说明:
- MCP 服务是可选组件,缺失时不会影响主程序其他功能
- 每次启动 MCP 前都会检查必要组件与依赖
- 若缺少依赖,程序会提示当前系统可直接执行的完整安装命令
- 菜单启动默认使用后台
streamable-http模式,等待 3 秒后返回菜单 - 如果修改了
mcp_server_port,请同步更新 MCP 客户端中的连接路由 - MCP 的
streamable-http/sse监听使用同一个 TUI 高级设置 局域网/远程访问:默认只监听本机,开启后才允许局域网或远程连接。stdio传输不受网络监听设置影响
直接接入 LLM 客户端:
- 支持
stdio的 MCP 客户端,可以直接把 AiNiee CLI 作为本地 MCP Server 接入。 如果客户端使用command + args配置格式,可参考下面这个通用模板:
{
"mcpServers": {
"ainiee-cli": {
"command": "uv",
"args": [
"run",
"--directory",
"H:\\小说\\AiNiee-CLI",
"--isolated",
"--no-project",
"--quiet",
"--with",
"mcp",
"--with",
"fastapi",
"--with",
"uvicorn[standard]",
"--with",
"requests",
"python",
"Tools/MCPServer/server.py",
"--transport",
"stdio"
]
}
}
}
不同客户端的配置文件字段名可能略有差异,但核心信息通常就是 command=uv 加上上面的 args。
上面的路径请替换成你自己的项目目录。Linux / macOS 可把 H:\\小说\\AiNiee-CLI 替换成 /path/to/AiNiee-CLI。
- 如果客户端只接受“原始命令”,可直接使用:
uv run --directory /path/to/AiNiee-CLI --isolated --no-project --quiet --with mcp --with fastapi --with uvicorn[standard] --with requests python Tools/MCPServer/server.py --transport stdio
- Codex 通过
stdio直连时,推荐直接使用项目内置 launcher:
codex mcp add ainiee-cli -- /path/to/AiNiee-CLI/Tools/MCPServer/codex_stdio_launcher.sh
首次启动如果依赖尚未缓存,建议在 ~/.codex/config.toml 中给该 MCP 增加较大的超时,例如:
[mcp_servers.ainiee-cli]
startup_timeout_sec = 90
- 支持
streamable-http的 MCP 客户端,可以直接连接 AiNiee CLI 暴露出来的 MCP HTTP 路由。 先启动:
uv run ainiee_cli.py mcp --mcp-transport streamable-http
或者在主菜单选择 16. 启动 MCP 服务。
客户端侧如果使用 URL 配置格式,可参考:
{
"mcpServers": {
"ainiee-cli": {
"transport": "streamable-http",
"url": "http://127.0.0.1:8765/mcp"
}
}
}
连接地址:
本机地址: http://127.0.0.1:8765/mcp
局域网地址(需先开启 TUI 的局域网/远程访问): http://<你的局域网IP>:8765/mcp
- 如果启动 MCP 时提示缺少依赖,可以在项目根目录执行:
set "UV_PROJECT_ENVIRONMENT=%CD%\.venv-win" && uv --directory "%CD%" add "mcp" "fastapi" "uvicorn[standard]" "requests"
Linux / macOS 可使用:
UV_PROJECT_ENVIRONMENT="$(pwd)/.venv" uv --directory "$(pwd)" add 'mcp' 'fastapi' 'uvicorn[standard]' 'requests'
如果你把 mcp_server_port 改成了其他值,上面的 8765 也要同步替换。
如果项目目录里的 .venv 曾经在另一套系统下创建过,例如 WSL 生成后又在 Windows 下执行 uv add,建议先重建 .venv,否则容易出现 lib64 / 符号链接相关报错。
LLM 客户端建议首轮调用:
get_mcp_usage_manualget_mcp_security_policyget_mcp_tool_categoriesget_mcp_tool_catalog(category="需要的分类")get_mcp_validation_checklist
这些工具会直接告诉 LLM 当前 MCP 暴露了哪些能力、参数如何组织、哪些接口受限,以及为什么不能绕过 MCP 直连 WebUI。端点目录默认按分类读取,避免一次性把全部 Web API 端点注入上下文。
MCP 安全要求:
- LLM 严禁绕过 MCP,直接向 WebUI / localhost / 局域网端口发 HTTP 请求取数
- LLM 只能通过 MCP 工具访问项目能力
- MCP 读取到的
api_key/access_key/secret_key会被脱敏 - MCP 读取敏感配置时会额外返回
_mcp_security_notice,明确说明这是权限限制,并禁止通过其他渠道绕过获取 - 脱敏占位符不是可用密钥,也不能当真实值写回配置或队列
- 敏感 Web API 路由要求有效的 Web UI 会话 cookie 或 MCP bridge token,裸 HTTP 直连会被拒绝
完整的客户端说明文档见:
Tools/MCPServer/MCP_CLIENT_GUIDE.md
架构说明
本项目采用 Wrapper / Adapter 模式:
- Core: 保持原版 AiNiee 的核心业务逻辑
- Adapter Layer:
ainiee_cli.py作为防腐层,负责环境隔离与异常拦截 - Runtime: 由 uv 托管,确保依赖环境一致性
漫画处理参考
本项目的 MangaCore 漫画子系统采用“自动跑批”和“人工精修”分层设计,不把整册自动翻译任务与页级编辑工作台混成同一个入口。
全自动漫画翻译工作流 主要参考 manga-translator-ui-main 所代表的工作流,以及其上游 hgmzhn / manga-translator-ui:
- GitHub: https://github.com/hgmzhn/manga-translator-ui
- Gitee 备份: https://gitee.com/hgmzhn/manga-translator-ui
该部分主要参考其“导入图片/压缩包 -> 文本检测 -> OCR -> 翻译 -> 修补 -> 嵌字渲染 -> 导出”的阶段拆分、运行时资产组织和整册自动处理思路。AiNiee-Next 侧会以 translate ... --manga、Web 任务页 Manga Mode 和 MangaCore 批处理管线承载这一类少交互、可挂机的自动任务。
人工精修与漫画编辑器逻辑 主要参考 mayocream / Koharu:
该部分主要参考 Koharu 的人工精修思路,包括工程/页面/文本块、图层化页面状态、当前页局部重跑、文本块位置与样式微调、修补结果检查、可编辑成品导出等精修链路。
后续若参考、接入或复用相关核心模块,本项目会持续保留来源说明与鸣谢信息,并遵守对应开源协议。
免责声明
- 本项目是 AiNiee 的非官方优化分支,侧重于运行体验与工程稳定性
- 核心翻译算法与原版保持一致,请遵守原版使用协议
- 本工具仅供个人学习与合法用途使用
支持 AiNiee-Next
如果这个项目对你有帮助喵,欢迎通过爱发电或赞赏码支持 AiNiee-Next 版本的持续开发与维护。支持人会被加入到项目鸣谢列表;无论金额多少,都是一份暖暖的心意喵,也是加速项目开发的动力。
No comments yet
Be the first to share your take.