简介
什么是 PDFMathTranslate ?
PDFMathTranslate
是一个用于DeepL
、Ollama
和OpenAI
。该工具提供命令行界面(CLI
)、图形用户界面(GUI
)和Docker
部署选项,使用户能够方便地翻译
主要功能:
- 双语翻译:支持将
PDF
文档翻译为多种语言。 - 格式保留:翻译过程中保留公式、图表、目录和注释等格式。
- 多种使用方式:可通过命令行、可移植版本、图形界面或
Docker
进行使用。 - 公共服务:提供在线翻译服务,用户无需安装任何软件。
适用场景:
- 学术研究人员和学生需要翻译和比较双语文献。
- 任何需要处理和翻译
PDF
文档的人。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 pdf2zh
,选择第一个 byaidu/pdf2zh
,版本选择 latest
。
本文写作时,
latest
版本对应为v1.8.8
;
注意事项
需要确保你的主机能够访问 huggingface.co
,否则容器会停止或者不断重启,日志中会看到错误
pdfmt | File "/usr/local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 369, in _raise_timeout
pdfmt | raise ReadTimeoutError(
pdfmt | urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='huggingface.co', port=443): Read timed out. (read timeout=1)
或者
pdfmt | huggingface_hub.errors.LocalEntryNotFoundError: An error happened while trying to locate the file on the Hub and we cannot find the requested files in the local cache. Please check your connection and try again or make sure your Internet connection is on.
卷
在 docker
文件夹中,创建一个新文件夹 pdfmt
,并在其中建两个子文件夹 input
和 output
其实不用命令行的话,可以用不着输入、输出目录
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/pdfmt/input | /input | 输入文件目录 |
docker/pdfmt/output | /output | 输出文件目录 |
端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
7860 | 7860 |
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
# 新建文件夹 pdfmt 和 子目录
mkdir -p /volume1/docker/pdfmt/{input,output}# 进入 pdfmt 目录
cd /volume1/docker/pdfmt# 运行容器
docker run -d \--restart unless-stopped \--name pdfmt \-p 7860:7860 \-v $(pwd)/input:/input \-v $(pwd)/output:/output \byaidu/pdf2zh
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: '3'services:pdfmt:image: byaidu/pdf2zhcontainer_name: pdfmtrestart: unless-stoppedports:- "7860:7860"volumes:- ./input:/input- ./output:/output
然后执行下面的命令
# 新建文件夹 pdfmt 和 子目录
mkdir -p /volume1/docker/pdfmt/{input,output}# 进入 pdfmt 目录
cd /volume1/docker/pdfmt# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d
运行
在浏览器中输入 http://群晖IP:7860
就能看到主界面
老苏随便找了一篇英文的文档
下载地址:https://www.jsme.or.jp/conference/PRTEC2024/submission/240329-PRTEC2024-template.pdf
软件的使用不复杂,所以下面只简单的介绍下 AI
模型的设置
Google 模型
将 pdf
文件拖入,用了默认的 google
模型,为了快速, Pages
中选择了单页,用了 First
,也就是只翻译首页
如果网络访问 google
没问题的话,还是非常快的
如果网络不行,可以试试本地的大模型
Ollama 模型
还可以选择其他的 AI
服务,老苏的机器上正好有 Ollama
文章传送门:本地大模型运行框架Ollama
模型用了 qwen2.5:1.5b
Service
:Ollama
OLLAMA_HOST
:http://192.168.0.197:11434
OLLAMA_MODEL
:qwen2.5:1.5b
翻译完成后
OpenAI 模型
另外试了下 OpenAI
兼容的模型
文章传送门:
- 长文本大模型API服务kimi-free-api
- 大模型接口管理和分发系统One API
模型设置参数设置
OPENAI_BASE_URL
:http://192.168.0.197:3033/v1
, 这是老苏机器上One API
的地址OPENAI_API_KEY
:sk-7tB7PvWBs8oWUFJLFaF5F8EfC4Db43Ba9dE18698A0929c47
, 这是One API
中的令牌OPENAI_MODEL
:kimi
,这是One API
中为kimi-free-api
设置的模型名称
左侧会生成两个文件
其中 Mono
是翻译后的版本, Dual
是对照的版本
参考文档
Byaidu/PDFMathTranslate: PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/Docker
地址:https://github.com/Byaidu/PDFMathTranslate
PDFMathTranslate - PDF Translation with preserved formats
地址:https://pdf2zh.com/