PDFMathTranslate:基于LLM的PDF文档翻译及双语对照的工具【使用教程】

1.简介

PDFMathTranslate 是一个用于科学 PDF 文档翻译及双语对照的工具,是一个功能强大且灵活的科学文档翻译工具,适合科研人员、学生和专业人士使用,能够有效提高文档翻译的效率和质量。其具有以下特点和功能:

核心功能

  • 保留格式 :在翻译过程中,能够保留原文档中的公式、图表、目录和注释,确保翻译后的文档与原文在结构和内容上保持一致。

  • 多语言支持:支持多种语言的翻译,满足不同用户的需求。

  • 多种部署方式:提供命令行工具、图形交互界面以及容器化部署等多种使用方式,方便用户根据自身需求选择。

github地址:https://github.com/Byaidu/PDFMathTranslate/tree/main

案例

以下案例使用免费方法,如果追求更高质量,可以使用付费API:

可以看到,这一框架在翻译文献时,只会对文档的正文部分进行提取并翻译,会自动保留算法、公式、注解、表格部分。文档会自动保存双语对照版和单语版,供用户选择。

以下案例使用DeepSeek API翻译

翻译效果对比

从左到右分别是:原文、谷歌翻译、Deepseek v3翻译,qwen-turbo翻译

从左到右分别是:原文、谷歌翻译、Deepseek v3翻译,qwen-turbo翻译

2.使用教程

下载源码:https://github.com/Byaidu/PDFMathTranslate/tree/main

安装

使用pip或conda安装

确保Python (3.10 <= 版本 <= 3.12),然后安装uv,然后使用uv安装pdf2zh

复制代码
pip install uv
uv tool install --python 3.12 pdf2zh

Windows exe

下载 pdf2zh-version-win64.zip

解压缩并双击 pdf2zh.exe 运行

dockers

拉取并运行:

复制代码
docker pull byaidu/pdf2zh
docker run -d -p 7860:7860 byaidu/pdf2zh

在浏览器中打开:

复制代码
http://localhost:7860/

报错解决

warning: `/home/good/.local/bin` is not on your PATH. To use installed tools, run `export PATH="/home/good/.local/bin:$PATH"` or `uv tool update-shell`.

复制代码
export PATH="/home/good/.local/bin:$PATH"

当前程序在工作前需要一个 AI 模型 (wybxc/DocLayout-YOLO-DocStructBench-onnx),一些用户由于网络问题无法下载。如果你在下载此模型时遇到问题,可以改变以下环境变量的解决方法:

复制代码
set HF_ENDPOINT=https://hf-mirror.com

对于 PowerShell 用户:

复制代码
$env:HF_ENDPOINT = https://hf-mirror.com

如果此解决方案对您无效或您遇到其他问题,请参阅 常见问题解答

使用方法

在线页面

huggingface:https://huggingface.co/spaces/reycn/PDFMathTranslate-Docker

登录作者在huggingface托管的项目,可直接使用,无需安装和下载。

命令行

使用如下命令,执行翻译,文件生成在当前工作目录:

复制代码
pdf2zh document.pdf

执行翻译命令后在当前工作目录下生成译文文档 example-mono.pdf 和双语对照文档 example-dual.pdf,默认使用 Google 翻译服务。

-

命令行格式如下:

-p指定页码

复制代码
pdf2zh example.pdf -p 1-3,5

-li和-lo指定语言

复制代码
pdf2zh example.pdf -li en -lo ja

-s表示翻译服务提供商,默认使用Google进行翻译,我们也可以使用如DeepSeek、deepl等服务。

复制代码
pdf2zh example.pdf -s openai:gpt-4o-mini

或
set OPENAI_MODEL=gpt-4o-mini
pdf2zh example.pdf -s openai

在powershell上使用:
$env:OPENAI_MODEL = gpt-4o-mini
pdf2zh example.pdf -s openai

支持的服务商包括:

Translator Service Environment Variables Default Values Notes
Google (Default) google None N/A None
Bing bing None N/A None
DeepL deepl DEEPL_AUTH_KEY [Your Key] See DeepL
DeepLX deeplx DEEPLX_ENDPOINT https://api.deepl.com/translate See DeepLX
Ollama ollama OLLAMA_HOST, OLLAMA_MODEL http://127.0.0.1:11434, gemma2 See Ollama
Xinference xinference XINFERENCE_HOST, XINFERENCE_MODEL http://127.0.0.1:9997, gemma-2-it See Xinference
OpenAI openai OPENAI_BASE_URL, OPENAI_API_KEY, OPENAI_MODEL https://api.openai.com/v1, [Your Key], gpt-4o-mini See OpenAI
AzureOpenAI azure-openai AZURE_OPENAI_BASE_URL, AZURE_OPENAI_API_KEY, AZURE_OPENAI_MODEL [Your Endpoint], [Your Key], gpt-4o-mini See Azure OpenAI
Zhipu zhipu ZHIPU_API_KEY, ZHIPU_MODEL [Your Key], glm-4-flash See Zhipu
ModelScope ModelScope MODELSCOPE_API_KEY, MODELSCOPE_MODEL [Your Key], Qwen/Qwen2.5-Coder-32B-Instruct See ModelScope
Silicon silicon SILICON_API_KEY, SILICON_MODEL [Your Key], Qwen/Qwen2.5-7B-Instruct See SiliconCloud
Gemini gemini GEMINI_API_KEY, GEMINI_MODEL [Your Key], gemini-1.5-flash See Gemini
Azure azure AZURE_ENDPOINT, AZURE_API_KEY https://api.translator.azure.cn, [Your Key] See Azure
Tencent tencent TENCENTCLOUD_SECRET_ID, TENCENTCLOUD_SECRET_KEY [Your ID], [Your Key] See Tencent
Dify dify DIFY_API_URL, DIFY_API_KEY [Your DIFY URL], [Your Key] See Dify,Three variables, lang_out, lang_in, and text, need to be defined in Dify's workflow input.
AnythingLLM anythingllm AnythingLLM_URL, AnythingLLM_APIKEY [Your AnythingLLM URL], [Your Key] See anything-llm
Argos Translate argos See argos-translate
Grok grok GORK_API_KEY, GORK_MODEL [Your GORK_API_KEY], grok-2-1212 See Grok
Groq groq GROQ_API_KEY, GROQ_MODEL [Your GROQ_API_KEY], llama-3-3-70b-versatile See Groq
DeepSeek deepseek DEEPSEEK_API_KEY, DEEPSEEK_MODEL [Your DEEPSEEK_API_KEY], deepseek-chat See DeepSeek
OpenAI-Liked openailiked OPENAILIKED_BASE_URL, OPENAILIKED_API_KEY, OPENAILIKED_MODEL url, [Your Key], model name None
Ali Qwen Translation qwen-mt ALI_MODEL, ALI_API_KEY, ALI_DOMAINS qwen-mt-turbo, [Your Key], scientific paper Tranditional Chinese are not yet supported, it will be translated into Simplified Chinese. More see Qwen MT

对于与 OpenAI API 兼容但未列在上表中的大型语言模型,可以使用表中针对 OpenAI 概述的相同方法设置环境变量。

--dir 批量翻译

复制代码
pdf2zh --dir /path/to/translate/

PDFMathTranslate 会缓存已翻译的文本,以提高速度并避免对相同内容进行不必要的 API 调用。您可以使用**--ignore-cache 选项忽略翻译缓存**并强制重新翻译。

复制代码
pdf2zh example.pdf --ignore-cache

使用 --config 指定配置 PDFMathTranslate 的文件:

复制代码
pdf2zh example.pdf --config config.json
或
pdf2zh -i --config config.json

json配置文件示例

复制代码
{
    "USE_MODELSCOPE": "0",
    "PDF2ZH_LANG_FROM": "English",
    "PDF2ZH_LANG_TO": "Simplified Chinese",
    "NOTO_FONT_PATH": "/app/SourceHanSerifCN-Regular.ttf",
    "translators": [
        {
            "name": "deeplx",
            "envs": {
                "DEEPLX_ENDPOINT": "http://localhost:1188/translate/",
                "DEEPLX_ACCESS_TOKEN": null
            }
        },
        {
            "name": "ollama",
            "envs": {
                "OLLAMA_HOST": "http://127.0.0.1:11434",
                "OLLAMA_MODEL": "gemma2"
            }
        }
    ]
}

默认情况下,配置文件保存在 ~/.config/PDFMathTranslate/config.json 中。程序将首先读取 config.json 的内容,然后读取环境变量的内容。当环境变量可用时,首先使用环境变量的内容,然后更新文件。

图形用户界面(推荐)

复制代码
pdf2zh -i

浏览器访问:

复制代码
http://localhost:7860/

界面如下:

在这里也更方便去使用和调控。

本地模型+PDFMathTranslate

本地启用vllm,参考教程如下:

部署好后启用模型

本地启动pdf2zh

复制代码
pdf2zh -i

浏览器访问:

复制代码
http://localhost:7860/

option设定如下:

  • service选择OpenAI-liked
  • Base_url选择自己设定的,如:http://0.0.0.0:8000/v1
  • OPENAILIKED_API_KEY如果没有设定,可以随便填一个
  • OPENAILIKED_MODEL选择你启动的模型,如Qwen2.5-7B-Instruct-GPTQ-Int4

如下:

API申请流程

DeepSeek

登录以下页面:DeepSeek

注册账号,并充值

  • 费用参考:一个4页的文档,大约花费4分钱

点击左侧的API_keys,创建API Key,并复制API Key,

  • 注意:API key只展示一次,如果没有保存,需要重新生成一个

使用方法:

-

阿里云

申请API Key教程:百炼控制台

申请API Key:百炼控制台

使用方法:

总结

PDFMathTranslate 是一个专注于科学 PDF 文档翻译的工具,能够保留原文档中的公式、图表、目录和注释,支持多种语言和翻译服务。它提供了多种使用方式,包括命令行工具、图形交互界面、容器化部署以及 Windows 可执行文件等,方便用户根据自身需求选择。此外,该工具还支持多线程翻译、部分文档翻译、自定义模型和端口等高级功能,进一步提升了翻译的效率和灵活性。尽管当前的 API 已暂时弃用,但项目团队仍在积极开发,计划在 pdf2zh 2.0 发布后重新提供更强大的 API 支持。未来,PDFMathTranslate 还将引入基于 DocLayNet 的布局解析技术,优化页面旋转、目录和列表格式等问题,并开发 Zotero 和 Obsidian 的插件,以进一步拓展其功能和应用场景。


如果你觉得这个工具对你的学习、工作或研究有帮助,不妨点个赞👍,收藏一下🌟,或者关注我们的项目👀。你的支持是我们不断改进和更新的动力!感谢你的关注与支持!

相关推荐
蚂蚁20141 小时前
卷积神经网络(二)
人工智能·计算机视觉
z_mazin3 小时前
反爬虫机制中的验证码识别:类型、技术难点与应对策略
人工智能·计算机视觉·目标跟踪
lixy5794 小时前
深度学习3.7 softmax回归的简洁实现
人工智能·深度学习·回归
youhebuke2254 小时前
利用deepseek快速生成甘特图
人工智能·甘特图·deepseek
訾博ZiBo4 小时前
AI日报 - 2025年04月26日
人工智能
郭不耐4 小时前
DeepSeek智能时空数据分析(三):专业级地理数据可视化赏析-《杭州市国土空间总体规划(2021-2035年)》
人工智能·信息可视化·数据分析·毕业设计·数据可视化·城市规划
AI军哥5 小时前
MySQL8的安装方法
人工智能·mysql·yolo·机器学习·deepseek
余弦的倒数5 小时前
知识蒸馏和迁移学习的区别
人工智能·机器学习·迁移学习
Allen Bright5 小时前
【机器学习-线性回归-2】理解线性回归中的连续值与离散值
人工智能·机器学习·线性回归
青松@FasterAI6 小时前
【程序员 NLP 入门】词嵌入 - 上下文中的窗口大小是什么意思? (★小白必会版★)
人工智能·自然语言处理