基于大语言模型的多语言剧本翻译平台,自动生成双语对照翻译表格。支持 10+ AI 供应商、7 种目标语言、RAG 角色背景注入、Excel 导出。
| 层级 | 技术 |
|---|---|
| 后端 | Python 3.11 / FastAPI / SQLite / openpyxl |
| 前端 | React 18 + TypeScript + Vite + Ant Design 5 + Zustand |
| AI | OpenAI / DeepSeek / 智谱 / 通义千问 / Moonshot / 硅基流动 / Ollama / Anthropic / Gemini |
| 环境 | Conda (Python) + Node.js 18+ (前端) |
- 剧本解析 — 正则识别场景切换、角色台词、动作、舞台指示、环境音,输出结构化数据
- 多语言翻译 — 简/繁体中文、英/日/法/俄/西/意/他加禄语,SSE 流式推送进度,SQLite 缓存去重
- RAG 角色背景 — 角色档案 CRUD(别名、简介、背景故事、说话风格),注入 system prompt 提升翻译一致性
- 多供应商 API — 10 个 LLM 供应商统一接入,
LLMClient封装 OpenAI/Anthropic/Gemini 三套 SDK 差异 - Excel 导出 — 10 列表头双语对照,蓝色表头白字、交替行色、自适应列宽、冻结首行,支持 CSV
- 模板管理 — 保存/加载语言配置方案
- 重做 & 编辑 — 局部重做、完全重做、单元格直接编辑
- 交互式启动器 — 双击 EXE 显示菜单:启动服务 / 检查环境 / 配置环境
- 自动端口检测 — 后端自动查找空闲端口,无需手动配置,避免与其他本地服务冲突
script-translator/
├── launcher.py # 交互式 EXE 启动器
├── launch.py # 命令行一键启动(自动端口检测)
├── CHANGELOG.md # 版本更替文档
├── backend/
│ ├── main.py # FastAPI 入口 + 自动端口检测
│ ├── config.py # 语言配置 + 翻译提示词模板
│ ├── database.py # SQLite 初始化与操作
│ ├── models.py # Pydantic 数据模型
│ ├── parser.py # 剧本解析器 (正则)
│ ├── providers.py # 10 供应商抽象层 + LLMClient
│ ├── rag.py # RAG 角色背景系统
│ ├── excel_generator.py # Excel/CSV 导出生成器
│ └── requirements.txt
└── frontend/
├── package.json
├── vite.config.ts # Vite 配置(自动读取后端端口)
└── src/
├── App.tsx # 主布局 (侧边导航 + 路由)
├── main.tsx # 入口 (ErrorBoundary 包裹)
├── index.css # 全局样式(表格交替行色)
├── api/
│ └── client.ts # API 请求封装(泛型返回类型 + 响应拦截器)
├── types/
│ └── api.ts # 全局 TypeScript 类型定义
├── stores/
│ └── appStore.ts # Zustand 全局状态
├── hooks/
│ └── useSSEStream.ts # SSE 流解析自定义 hook
├── components/
│ └── ErrorBoundary.tsx # React 18 错误边界
└── pages/
├── ScriptInput.tsx # 剧本输入 & 解析预览
├── TranslationWorkspace.tsx # 翻译工作区(编排组件)
├── TranslationToolbar.tsx # 语言选择 + 进度条
├── TranslationActions.tsx # 重做 / 导出操作栏
├── TranslationTable.tsx # 翻译结果表格(Ant Design)
├── TemplateSaveModal.tsx # 模板保存弹窗
├── ApiConfig.tsx # API 配置 & 测试连接
├── RAGManager.tsx # 角色管理 CRUD
└── TemplateManager.tsx # 模板保存/加载/删除
python launch.py后端会自动检测空闲端口(从 8765 开始),前端通过 .env 文件自动匹配。无需手动配置端口。
启动后访问 http://localhost:5173
双击 剧本翻译工具.exe,选择「配置环境」自动完成初始化,再选「启动服务」。
# 1. 创建虚拟环境
conda create -p .venv python=3.11 -y
# 2. 安装后端依赖
conda run -p .venv pip install -r backend/requirements.txt
# 3. 安装前端依赖
cd frontend && npm install && cd ..
# 4. 启动(自动端口检测)
python launch.pycd backend && conda run -p ../.venv python main.py --port 9999- 打开前端 →「API 配置」
- 选择供应商(DeepSeek / OpenAI / ...)
- 填入 API Key
- 选择或输入模型名
- 点击「测试连接」
支持的供应商及默认模型:
| 供应商 | base_url | 推荐模型 |
|---|---|---|
| OpenAI | api.openai.com |
gpt-4o |
| DeepSeek | api.deepseek.com |
deepseek-chat |
| 智谱 GLM | open.bigmodel.cn |
glm-4-plus |
| 通义千问 | dashscope.aliyuncs.com |
qwen-plus |
| Moonshot | api.moonshot.cn |
moonshot-v1-8k |
| 硅基流动 | api.siliconflow.cn |
— |
| Anthropic | 官方 SDK | claude-sonnet-4-20250514 |
| Gemini | 官方 SDK | gemini-pro |
| Ollama | localhost:11434 |
— |
| 自定义 | 自由输入 | 自由输入 |
详见 CHANGELOG.md
- v2.0.0 — React 18 架构重构(组件拆分、自定义 hook、TypeScript 类型安全、Error Boundary)+ 自动端口检测
- v1.3.0 — EXE 交互菜单 + 环境自检/自动配置
- v1.2.1 — 角色多别名支持
- v1.2.0 — EXE 一键启动器 (PyInstaller)
- v1.1.1 — 模型名自由输入
- v1.1.0 — 多供应商 API 支持 (10 家)
- v1.0.0 — 初始版本
MIT