文档

本地模型PDF翻译(Ubuntu/Linux)

试用

使用本地llama.cpp模型(如Hy-MT2-7B)批量翻译PDF文档,结合学术翻译三步法(直译→反思→雅化),支持中/英/日/韩/法/德/西/俄八大主要语言任意互译,逐页提取+翻译,按目标语言输出.md文件(Ubuntu/Linux 平台)

它能做什么

使用本地llama.cpp模型(如Hy-MT2-7B)批量翻译PDF文档,结合学术翻译三步法(直译→反思→雅化),支持中/英/日/韩/法/德/西/俄八大主要语言任意互译,逐页提取+翻译,按目标语言输出.md文件(Ubuntu/Linux 平台)

技能文档

本地模型PDF翻译 Skill

本地模型 + 学术三步法 + 八大语言互译 + 批量处理 · 逐页提取 · 精确翻译 · 自动输出

功能概述

本 Skill 使用本地运行的 llama.cpp 服务器(如 Hy-MT2-7B 翻译模型)批量翻译 PDF 文档,结合 academic-translation skill 的三步翻译法:

  1. 直译 - 保术语、逐句对应
  2. 反思 - 学术规范 + Chinglish 校正
  3. 雅化 - 信达雅 + 顶会风格(可选)

支持的语言(八大主要语言)

代码语言代码语言
zh中文 (Chinese)de德语 (German)
en英语 (English)es西班牙语 (Spanish)
ja日语 (Japanese)ru俄语 (Russian)
ko韩语 (Korean)fr法语 (French)

方向格式[源语言]2[目标语言],例如 en2zhzh2jaja2enfr2de。 任意两种语言之间均可互译(含反向),兼容 en-zh 分隔符写法。

前置条件

Agent 安全约束(必读):运行环境(llama-server 程序、GGUF 模型、Python 依赖)一律由用户本人手动准备。 禁止 AI 自动执行任何下载或安装操作(含 pipwgetcurl)。环境缺失时,Agent 只向用户说明缺失项并给出下面的人工命令示例,待用户确认完成后才开始翻译。

  1. llama-server 程序:由用户从 llama.cpp 官方发布渠道手动安装 Linux 版 llama-server 并加入 PATH(Ubuntu 可用 sudo apt install 或官方 release)
  2. 模型文件:由用户将 GGUF 翻译模型放入本 skill 根目录下的 models/ 文件夹(模型文件不随 skill 发布)
  3. 启动 llama-server(用户手动执行;相对路径引用模型,不依赖任何机器绝对目录):
    bash start_server.sh
    # 或直接启动(Linux 版 llama-server,无 .exe 后缀;路径用正斜杠)
    llama-server -m "models/Hy-MT2-7B-Q4_K_M.gguf" -ngl -1 --host 127.0.0.1 --port 8001 --api-key llama2025 -c 32768
    
  4. Python 依赖(用户手动执行,PyPI 官方源):
    pip3 install pymupdf requests
    
  5. API 连接
    • Endpoint: http://127.0.0.1:8001/v1/chat/completions
    • API Key: llama2025(仅本地 127.0.0.1 有效)

文件结构

li_local_pdf_translate-linux/
├── SKILL.md                    # 本文件
├── README.md                   # 八国语言翻译使用说明
├── start_server.sh             # Ubuntu/Linux 启动脚本(start llama-server)
├── models/                     # 放置 GGUF 模型(不随 skill 发布)
├── config/
│   ├── default.json           # 默认配置(模型、API等,均为相对路径)
│   └── user.json              # 用户配置(优先级更高,不发布)
└── scripts/
    ├── config.py              # 配置管理模块
    ├── extract_pdf.py         # PDF文本提取模块
    ├── translate_api.py       # API翻译模块
    ├── batch_translate.py     # 批量翻译主程序
    ├── auto_translate.py      # 单Agent自动翻译(顺序处理)
    └── multi_agent_translate.py # 多Agent并行翻译

使用方式

1. 查看配置

python3 scripts/config.py show

2. 修改配置

python3 scripts/config.py show                          # 查看配置及支持的语言
python3 scripts/config.py set api_url "http://127.0.0.1:8001/v1/chat/completions"
python3 scripts/config.py set api_key "llama2025"
python3 scripts/config.py set direction "en2zh"         # 默认翻译方向(可改为 zh2ja 等任意八语组合)
python3 scripts/config.py set depth "standard"

3. 检查连接

python3 scripts/batch_translate.py --check

4. 单个PDF翻译

# 英→中(默认方向)
python3 scripts/batch_translate.py --input "path/to/file.pdf" --output "output.zh.md"

# 中→日(日文目标语言,输出 .ja.md)
python3 scripts/batch_translate.py --input "file.pdf" --direction zh2ja --output "output.ja.md"

# 日→英
python3 scripts/batch_translate.py --input "file.pdf" --direction ja2en

5. 批量翻译目录

# 英→中,默认输出目录 <输入目录>_zh
python3 scripts/batch_translate.py --input-dir "/path/to/pdfs" --output-dir "/path/to/output"

# 中→法,输出目录 <输入目录>_fr
python3 scripts/batch_translate.py --input-dir "/path/to/pdfs" --direction zh2fr

6. 自动翻译(单Agent顺序处理)

# 使用配置中的默认方向
python3 scripts/auto_translate.py --input "/path/to/pdfs" --output "/path/to/output"

# 指定方向:英→韩
python3 scripts/auto_translate.py --input "/path/to/pdfs" --direction en2ko

7. 多Agent并行翻译

# 使用2个Agent并行(默认),方向 en2ru(英→俄)
python3 scripts/multi_agent_translate.py --input "/path/to/pdfs" --output "/path/to/output" --direction en2ru

# 使用4个Agent并行(最大)
python3 scripts/multi_agent_translate.py --input "/path/to/pdfs" --output "/path/to/output" --agents 4 --direction en2ru

8. 单独使用各模块

# PDF提取
python3 scripts/extract_pdf.py --input "file.pdf" --info
python3 scripts/extract_pdf.py --input "file.pdf" --check

# API翻译(任意方向)
python3 scripts/translate_api.py --check
python3 scripts/translate_api.py --text "Hello World" --direction en2zh
python3 scripts/translate_api.py --text "こんにちは" --direction ja2zh

单Agent vs 多Agent对比

特性单Agent (auto_translate)多Agent (multi_agent_translate)
处理方式顺序处理并行处理
速度较慢较快(约1.5-2x)
GPU占用中等
稳定性中等
适用场景小批量、稳定性优先大批量、速度优先

性能参考

  • 单Agent: ~356 chars/s
  • 多Agent (2 agents): ~517 chars/s
  • 18个PDF第一页: 单Agent 120s, 多Agent 83s

翻译流程

PDF文件
  ↓
[Step 1] 逐页提取文本 (pymupdf)
  ↓
[Step 2] 分段(按段落/章节)
  ↓
[Step 3] 直译(本地模型调用)
  ↓  - 保术语
  ↓  - 保公式/引用
  ↓  - 逐句对应
  ↓
[Step 4] 反思(可选,第二轮调用)
  ↓  - 学术规范
  ↓  - Chinglish校正
  ↓  - 术语一致性
  ↓
[Step 5] 雅化(可选,第三轮调用)
  ↓  - 信达雅
  ↓  - 顶会风格
  ↓
[Step 6] 输出.<目标语言>.md文件

输出格式

每个PDF文件根据 目标语言代码 生成对应的 .md 文件:

方向 en2zh:   document.pdf  →  document.zh.md
方向 zh2ja:   document.pdf  →  document.ja.md
方向 ja2en:   document.pdf  →  document.en.md
方向 en2fr:   document.pdf  →  document.fr.md

批量模式下,默认输出目录为 <输入目录>_<目标语言>(如 en2ja 时为 <输入目录>_ja)。

输出文件结构(标题和方向标识按目标语言动态生成):

# [翻译后的标题] - [目标语言名] Translation

> Direction: en2zh (English -> Chinese)

## 第1页
[翻译内容]

## 第2页
[翻译内容]

...

参数说明

参数类型默认值说明
--inputpath必填输入PDF文件路径
--output-dirpath同目录输出目录
--api-urlstringhttp://127.0.0.1:8001/v1/chat/completionsAPI地址
--api-keystringllama2025API密钥
--modelstringmodels/Hy-MT2-7B-Q4_K_M.gguf模型相对路径(基于 skill 根目录)
--directionstringen2zh翻译方向,如 en2zh/zh2ja/ja2en,支持八语任意组合
--depthenumstandard深度:quick/standard/full
--pagesstring全部页码范围,如 "1-5" 或 "1,3,5-7"
--batch-sizeint3每次发送的段落数

翻译方向

支持八大主要语言(中 zh、英 en、日 ja、韩 ko、法 fr、德 de、西 es、俄 ru)之间的任意双向互译,格式为 [源]2[目标]

  • en2zh (英→中):阅读英文文献
  • zh2en (中→英):国际投稿
  • zh2ja (中→日):日文输出
  • ja2zh (日→中):日文文献
  • en2fr / zh2de / ko2en / ru2zh ...:其余任意组合均可

使用 python3 scripts/config.py show 可查看当前方向及所有支持的语言。

深度模式

  • quick:仅直译(1×时间),快速理解原意
  • standard:直译+反思(2.5×时间),日常推荐
  • full:直译+反思+雅化(4×时间),投稿必选

术语处理

  • 保留专业术语原文 + 括号附译法
  • 保留公式、引用、数字
  • 保留表格结构

注意事项

  1. 模型限制:本地7B模型的翻译质量不如GPT-4/Claude,适合快速理解
  2. 多语言质量:模型对中/英/日等主流语言效果较好;非中文母语组合(如 fr↔de)建议使用 --depth full 提升质量
  3. 上下文窗口:Hy-MT2-7B支持32K上下文,大段落需分批处理
  4. 速度:约50 tokens/秒,一个10页PDF约需2-5分钟
  5. 扫描件PDF:不支持纯图片PDF,需要有文本层

故障排除

问题解决方案
API连接失败检查 llama-server 是否在 skill 根目录启动、端口8001是否可用
Unsupported source/target language方向必须是两位代码,如 en2zh;运行 config.py show 查看支持的语言
Invalid direction检查格式是否含 2- 分隔,如 zh2ja
翻译质量差尝试 --depth standard--depth full;多语言组合建议 full
内存不足减小 --batch-size 或关闭其他程序
PDF提取失败检查PDF是否有文本层(非扫描件)

相关技能

使用本地llama.cpp模型(如Hy-MT2-7B)批量翻译PDF文档,结合学术翻译三步法(直译→反思→雅化),支持中/英/日/韩/法/德/西/俄八大主要语言任意互译,逐页提取+翻译,按目标语言输出.md文件(Windows 平台)

1 次安装

通用长篇文献/小说多页PDF逐页自动提取、匹配用户提供的本地术语表并翻译追加至DOCX的自动化工作流。适用于任何具有特定受众、包含大量专有名词的长文献、小众长篇小说、学术论文、技术白皮书等PDF翻译场景。用户自行提供原文PDF、专业术语对照表及输出路径。

PDF 全文翻译、重排与可检索交付

Translate user-supplied text PDFs into Simplified Chinese and bilingual PDFs. Reads the PDF and only explicitly selected local LaTeX, sends extracted text to an explicitly approved OpenAI-compatible endpoint, runs local PDF/Python subprocesses, and writes outputs, diagnostics, and the default runtime cache under the chosen directory. Local proxy, arXiv download, Docker compilation, and external cache paths require explicit command-line opt-in.

2 次安装

Framework for translating Word, PDF, Excel, PowerPoint, HTML, Markdown, TXT documents. Provides document parsing code — the AI agent's own LLM performs the a...

35 次安装1 星标