Skip to main content

使用 LLM 自動翻譯 PDF 與 Markdown 論文

Project description

pdf-md-translate

一個強大的論文翻譯工具,可以:

  1. 將 PDF 轉換為 Markdown 文件 - 自動提取 PDF 中的文本和結構,轉換為易於編輯的 Markdown 格式
  2. 將文件中的原文翻譯成多種語言 - 使用 LLM(大型語言模型)自動翻譯 PDF 與 Markdown 論文

支持 OpenAI GPT 和 Google Gemini 模型進行高質量的學術論文翻譯。

功能特性

  • 🤖 多模型支持:支持 OpenAI GPT 和 Google Gemini
  • 📄 多格式支持:支持 PDF 和 Markdown 文件翻譯
  • 🧮 公式保護:自動保留 LaTeX 數學公式,不進行翻譯
  • 🌍 多語言翻譯:支持自定義目標翻譯語言
  • 並發處理:使用多執行緒加速翻譯效能
  • ⚙️ 靈活配置:交互式配置管理,安全存儲 API Key

安裝

前置要求

  • Python >= 3.8
  • 有效的 OpenAI API Key 或 Google Gemini API Key

安裝套件

pip install pdf-md-translate

或從源代碼安裝:

pip install -e .

快速開始

1. 初始配置

首次使用時,進行配置設置(輸入 API Key 和選擇偏好的 LLM 模型):

md-translate --setup

或使用簡短命令:

md-translate -s

此命令會引導您:

  • 選擇 API 提供商(Google Gemini 或 OpenAI)
  • 輸入對應的 API Key
  • 設定預設翻譯語言

2. 翻譯文件

翻譯 Markdown 文件

md-translate your_file.md

翻譯 PDF 文件

md-translate your_file.pdf

指定翻譯語言

md-translate your_file.md --lang 繁體中文

或使用簡短命令:

md-translate your_file.md -l 簡體中文

支持的語言示例

  • 繁體中文
  • 簡體中文
  • English
  • 日本語
  • 한국어

3. 配置管理

查看配置文件位置

md-translate --config

或:

md-translate -c

配置文件位置:~/.config/markdown-translator/config.json

重新配置 API 和語言

md-translate --setup

交互式語言選擇

md-translate --lang

此命令會進入交互式模式,讓您選擇翻譯語言。

命令行參考

命令 別名 用途
md-translate <file> - 翻譯指定的 PDF 或 Markdown 文件
md-translate <file> --lang <language> -l 翻譯文件並指定目標語言
md-translate --setup -s 進行初始設置和配置
md-translate --config -c 顯示配置文件位置
md-translate --lang - 進入交互式語言選擇模式
md-translate --help -h 顯示幫助信息

使用範例

範例 1:翻譯英文 Markdown 論文為繁體中文

md-translate paper.md --lang 繁體中文

輸出文件將自動保存為 paper_translated.md

範例 2:翻譯 PDF 論文

md-translate research_paper.pdf

系統會自動使用 MineRU 將 PDF 轉換為 Markdown,然後進行翻譯。

範例 3:使用 OpenAI 而不是 Gemini

首先重新配置:

md-translate --setup

選擇 openai 作為 API 提供商,然後:

md-translate document.md

翻譯特性

LaTeX 公式保護

所有 LaTeX 數學公式都會被自動保護,不進行翻譯。例如:

原文:

The mutant vector $V_{i,G+1}$ is calculated using the formula $V_{i,G+1} = X_{r1,G} + F \cdot (X_{r2,G} - X_{r3,G})$.

翻譯結果:

變異向量 $V_{i,G+1}$ 是使用公式 $V_{i,G+1} = X_{r1,G} + F \cdot (X_{r2,G} - X_{r3,G})$ 計算得出的。

資工術語保留

常見的資工術語會根據上下文保留原文或進行適當的標註。

標題編號移除

自動移除原文標題中的編號(如 1.1, 1.2, 2.3.1)。

配置文件格式

配置文件位置:~/.config/markdown-translator/config.json

{
  "api_provider": "gemini",
  "gemini_api_key": "your_gemini_api_key_here",
  "openai_api_key": "",
  "target_language": "繁體中文"
}

注意:API Key 會安全存儲在個人配置目錄中,權限設定為 600(僅所有者可讀寫)。

支持的文件格式

  • Markdown.md - 直接翻譯
  • PDF.pdf - 使用 MineRU 轉換後翻譯

故障排除

問題:找不到文件

確保文件路徑正確且文件存在:

md-translate ./path/to/your/file.md

問題:API Key 無效

重新進行配置設置:

md-translate --setup

檢查您的 API Key 是否正確有效。

問題:翻譯速度慢

這是正常的,因為需要調用 LLM API。翻譯速度取決於:

  • 文件大小
  • API 網絡連接速度
  • LLM 处理能力

系統已使用多執行緒加速,請耐心等待。

依賴說明

套件 用途
openai OpenAI GPT API 調用
google-genai Google Gemini API 調用
tqdm 進度條顯示
mineru PDF 轉換為 Markdown

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pdf_md_translate-0.1.4.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pdf_md_translate-0.1.4-py3-none-any.whl (26.5 kB view details)

Uploaded Python 3

File details

Details for the file pdf_md_translate-0.1.4.tar.gz.

File metadata

  • Download URL: pdf_md_translate-0.1.4.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for pdf_md_translate-0.1.4.tar.gz
Algorithm Hash digest
SHA256 e3951e2eea131fe646ce88abf2c3dc5409ac35620f682c543ac831b395548ca8
MD5 9632df84d3904e9c72e91bf697fe3ee3
BLAKE2b-256 23e2c114aab4883c820d43e0d94ff87e6f67435c75b2446d65942cba0b4f0e13

See more details on using hashes here.

File details

Details for the file pdf_md_translate-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for pdf_md_translate-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 67f6fab6881275c195a90a3a46be3814fab1a9b2df1418d42ec39e53e01f270e
MD5 be88084b785bdc0ccc2f91042fda9fd2
BLAKE2b-256 7dd654f95ecacec5f2a31a087c301d29b109db145dc12c5faad88f7194861620

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page