一个本地 Docker 部署的 Web 应用,用于将英文科研 PDF 翻译为中文,并提供左原文/右译文的同步阅读体验。
- 标题:
计算机专业科研论文翻译器 - 地址:
https://www.bilibili.com/video/BV1EzAZzXE4j/?spm_id_from=333.1387.upload.video_card.click - 时长:
6分47秒
点击封面可直接打开 B 站视频介绍页。
- 单 PDF 会话上传
- 左原文 / 右译文双栏阅读(强同步滚动)
- 前 3 页优先翻译,其余页面后台继续处理
- BYOK 模型配置(OpenAI + OpenAI 兼容接口)
- 图片 OCR(本地 PaddleOCR + 百度云端 API)
- 小米 MiMo 推理模型支持
- SSE 实时推送页面翻译进度
- 会话级数据隔离与自动清理
docker compose up --build启动后访问:
- Web UI:
http://localhost:5173 - API:
http://localhost:8000
- 启动服务后打开
http://localhost:5173 - 上传 PDF
- 在页面顶部填写模型配置:
Base URL(例如 OpenAI 兼容地址)模型名称API Key
- 点击"开始翻译"
在项目根目录新建 .env,填入:
VITE_DEFAULT_PRIMARY_API_KEY=你的模型Key然后启动:
docker compose up --build说明:
- 页面里仍可手动修改模型参数与 Key
- 不要把 API Key 提交到 Git 仓库或发到公开聊天记录中
- 平台首页:
https://platform.deepseek.com/ - Key 管理页:
https://platform.deepseek.com/api_keys - 官方文档:
https://api-docs.deepseek.com/zh-cn/
操作步骤:
- 注册并登录 DeepSeek 平台
- 进入
API Keys页面,新建一个 Key 并复制保存 - 在本项目页面中填写:
Base URL:https://api.deepseek.com/v1模型名称:如deepseek-chatAPI Key:刚创建的 Key
- API Key 管理文档:
https://cloud.tencent.com/document/product/1729/111008 - OpenAI 兼容接口文档:
https://cloud.tencent.com/document/product/1729/111007 - 控制台入口:
https://console.cloud.tencent.com/hunyuan/start
操作步骤:
- 登录腾讯云账号(如页面提示,先完成实名认证)
- 开通混元服务并进入控制台
- 按官方文档创建 API Key
- 在本项目页面中填写:
Base URL:https://api.hunyuan.cloud.tencent.com/v1模型名称:如hunyuan-turbos-latestAPI Key:控制台创建的 Key
- API Key 获取文档:
https://help.aliyun.com/zh/model-studio/get-api-key - Model Studio 控制台:
https://bailian.console.aliyun.com/
操作步骤:
- 登录阿里云并开通 Model Studio(百炼)
- 按官方文档创建 API Key
- 在本项目页面中填写:
Base URL(中国站):https://dashscope.aliyuncs.com/compatible-mode/v1模型名称:如qwen-plusAPI Key:刚创建的 Key
- 平台首页:
https://mimo.xiaomi.com/ - API Key 管理:
https://mimo.xiaomi.com/api-keys - 官方文档:
https://mimo.xiaomi.com/docs
操作步骤:
- 注册并登录小米 MiMo 开放平台
- 进入 API Keys 页面,创建一个 Key 并复制保存
- 在本项目页面中选择「小米 MiMo」预设,或手动填写:
Base URL:https://token-plan-sgp.xiaomimimo.com/v1(新加坡站)或https://api.xiaomimimo.com/v1(国内站)模型名称:mimo-v2.5-proAPI Key:刚创建的 Key
- 建议将超时设为 120 秒(MiMo 是推理模型,生成链较长,60 秒可能不够)
注意:MiMo 为推理模型,会先进行内部推理(reasoning),再输出翻译结果,因此响应时间比普通模型更长,但翻译质量通常更高。
如果 PDF 中有图表、架构图等包含文字的图片,可以启用 OCR 来识别并翻译图中文字。
在项目根目录创建 .env 文件(已被 .gitignore 忽略,不会提交):
REMOTE_OCR_TOKEN=你的百度PaddleOCR云API Token然后修改 docker-compose.yml 中的环境变量:
ENABLE_IMAGE_OCR: "true" # 本地 PaddleOCR(需要 paddleocr 依赖)
ENABLE_REMOTE_IMAGE_OCR: "true" # 百度云端 PaddleOCR API重启生效:docker compose up -d
安全提示:不要把 Token 直接写在
docker-compose.yml里提交到 Git。使用.env文件或环境变量传入。
- 平台地址:
https://aistudio.baidu.com/ - API 文档:
https://paddleocr.aistudio-app.com/ - 在控制台创建应用后获取 Token
使用 dev 覆盖配置启动(API、Worker、前端开发服务器热更新):
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d --build redis api worker web-dev开发模式行为:
api:以uvicorn --reload方式运行,并挂载./backendworker:Python 文件变化后自动重启 Celery Workerweb-dev:运行 Vite Dev Server,开启 HMR 与轮询(适配 Docker Desktop)
POST /v1/sessionsPOST /v1/sessions/{session_id}/startGET /v1/sessions/{session_id}/stateGET /v1/sessions/{session_id}/eventsGET /v1/sessions/{session_id}/pages/{page_no}/original.pngGET /v1/sessions/{session_id}/pages/{page_no}/translated.pngGET /v1/sessions/{session_id}/reportPOST /v1/sessions/{session_id}/pages/{page_no}/retryDELETE /v1/sessions/{session_id}
- 本项目按设计不提供"直接下载译文文件"的在线出口
- 会话数据是临时数据,过期或手动删除后会清理
- OCR 效果受源 PDF 图片清晰度与运行环境影响
