name: pdf-processor description: 學術PDF處理:提取文字、判斷語言、翻譯(英文→中文)、生成200字純中文概述。使用本地Ollama模型,不消耗線上API。適用於學術論文、研究報告等PDF檔案的處理。當用戶說"處理PDF"、"翻譯論文"、"生成論文概述"時,或使用者將PDF放入論文處理目錄時使用。
處理學術論文PDF的完整工作流:文字提取、語言判斷、翻譯、概述生成。使用本地Ollama模型(qwen2.5:7b),成本為0元,適合處理大量學術文獻。
核心功能: - 提取PDF全部文字(按頁分隔) - 判斷語言(中文/英文) - 提取和翻譯論文標題(英文→中文) - 英文PDF分段翻譯(每段2000字元) - 即時進度顯示(顯示當前段/總段數、百分比) - 斷點續傳(中斷後可從斷點繼續) - 生成200字純中文概述 - 自動檔案組織和清理
python3 scripts/process_pdf.py <pdf_path> <output_base_dir>來源於7w4.net。
示例:
# 處理英文PDF
python3 scripts/process_pdf.py \
~/Documents/論文處理/未處理/英文/2602.23362v1.pdf \
~/Documents/論文處理
# 處理中文PDF
python3 scripts/process_pdf.py \
~/Documents/論文處理/未處理/中文/test.pdf \
~/Documents/論文處理
PDF處理前需先建立目錄:
~/Documents/論文處理/
├── 未處理/
│ ├── 中文/
│ └── 英文/
├── 處理中/
├── 已完成/
│ ├── 原文/
│ ├── 翻譯/
│ └── 概述/
└── 索引/
1. PDF提取文字 → 儲存到"處理中/檔名_提取.txt"
2. 提取和翻譯論文標題(英文→中文)
3. 判斷語言(中文/英文)
4. 如果是英文:
- 分段(每段2000字元)
- 逐段翻譯(本地Ollama)
- **顯示即時進度**(當前段/總段數 | 百分比 | 字元數)
- **儲存進度**(處理中/檔名_progress.json)
- 合併翻譯結果
- **刪除進度檔案**
5. 生成概述(200字純中文,本地Ollama)
6. 儲存翻譯檔案到"已完成/翻譯/"
7. 儲存概述檔案到"已完成/概述/"(包含中英文標題)
8. 移動PDF到"已完成/原文/"
9. 刪除"處理中/提取.txt"
詳細說明見 workflow.md
對於45,873字元的PDF: - 分段數: 17段 - 每段字元數: 2,000-4,000 - 總翻譯時間: 約8-17分鐘
位置: 已完成/翻譯/檔名_翻譯.txt
格式:
# 論文翻譯
**原始檔**: 檔名.pdf
**處理時間**: YYYY-MM-DD HH:MM:SS
**翻譯模型**: 本地Ollama (qwen2.5:7b)
**分段數**: N
## 📄 翻譯內容
[翻譯內容]
位置: 已完成/概述/檔名_概述.txt
格式:
# 論文概述
**原始檔**: 檔名.pdf
**處理時間**: YYYY-MM-DD HH:MM:SS
**概述模型**: 本地Ollama (qwen2.5:7b)
## 📚 論文標題
**英文**: [論文英文標題]
**中文**: [論文中文標題]
## 📝 論文概述
[200字純中文概述]
可獨立執行或被其他指令碼呼叫
generate_index.py: 索引生成指令碼
效能特點
directory-structure.md: 目錄結構和使用說明
錯誤: Connection refused
解決:
# 啟動Ollama服務
ollama serve
錯誤: model 'qwen2.5:7b' not found
解決:
# 安裝模型
ollama pull qwen2.5:7b
# 檢視已安裝模型
ollama list
錯誤: PDF檔案不存在
檢查: - 確認PDF路徑正確 - 確認輸出目錄存在 - 確認有讀寫許可權
可能原因: - 分段過大(超過4000字元) - 溫度設定過高(當前0.3)
調整:
- 修改split_text()函式的max_length引數
- 修改translate_segment()的temperature選項
處理中/檔名_progress.json,完成後自動刪除這個工具能很好地完成論文翻譯和概述生成,使用本地模型完全不花錢,非常適合需要處理大量文獻的學者。進度顯示和斷點續傳功能很實用,處理大文件時不用擔心中斷。不過初次配置需要安裝配置環境,對非技術使用者稍有門檻。總體質量可靠,能有效解決學術論文處理的核心需求。