基于字節大模型的論文翻譯
源代碼:
👏 star ?
https://github.com/boots-coder/LLM-application
展示
項目簡介
本項目是一個基于大語言模型(Large Language Model, LLM)的論文閱讀與翻譯輔助工具。它通過用戶界面(GUI)和后端處理邏輯,提供以下功能:
-
模式選擇
:
- PDF模式:用戶可選擇一個 PDF 文件,程序自動解析論文文本及表格,對論文內容進行摘要、關鍵詞提取及翻譯。
- 文本模式:用戶可直接輸入英文文本進行摘要與關鍵詞提取,然后翻譯成中文。
-
處理過程提示: 當用戶發起處理請求(翻譯文本或解析并翻譯 PDF 文件內容)時,界面會顯示“處理中”提示,避免用戶等待過程中誤認為程序無響應。
-
結果展示: 處理完成后,不僅將結果保存到本地(JSON和文本文件),還會在新彈出的窗口中顯示全文翻譯、核心技術總結和關鍵詞,方便用戶快速瀏覽和復制。
功能概述
- PDF解析:使用
PyMuPDF
對 PDF 進行文本提取,并可選使用表格解析(通過pdfplumber
)。 - 大語言模型交互:調用火山引擎智能語言服務(ARK runtime),根據文本內容進行摘要、關鍵詞提取和機器翻譯。
- GUI界面:使用
tkinter
構建簡單易用的圖形界面,用戶可通過選擇文件或輸入文本,點擊按鈕一鍵執行。
技術選型
-
Python版本:建議使用 Python 3.9+
-
后端組件
:
- PDF解析:
PyMuPDF
,pdfplumber
- 大語言模型 API 調用:通過火山引擎(ByteDance)提供的 Ark runtime SDK,與 LLM(例如參考 https://www.volcengine.com/docs/82379/1399008)交互。
- 日志記錄:
logging
模塊,用于記錄處理過程和錯誤信息。
- PDF解析:
-
前端組件(GUI)
:
tkinter
:Python內置的GUI庫,用于構建基本的圖形化界面。
-
數據結構與處理邏輯
:
- 文本與PDF內容通過
MainApp
類進行統一管理。 - LLM處理結果(摘要、關鍵詞、翻譯內容)通過
Translator
和LLMClient
類獲得并整合。
- 文本與PDF內容通過
環境配置與運行步驟
-
環境變量與API Key設置: 請按照火山引擎智能語言服務文檔進行環境變量配置(如
API_KEY
、API_SECRET
)。參考鏈接中說明可使用test-env.py
來檢測環境變量是否已正確設置。執行:python test-env.py
若有正確輸出則表明環境變量配置無誤。
-
安裝依賴: 確保已安裝必要的依賴:
pip install PyMuPDF pdfplumber tkinter # tkinter在部分系統中可能已內置 pip install volcenginesdkarkruntime
其他依賴根據
requirements.txt
安裝。 -
測試后端功能: 如需僅在終端進行簡單測試,可在項目根目錄執行(假設
main.py
已存在并配置正確):python main.py
這將使用內置示例文本執行 LLM 處理,并在
../result
目錄下生成結果文件。 -
運行 GUI: 在確認
main.py
及后端邏輯正常運行后,運行:python ui-translator.py
將彈出 GUI 界面。
- 選擇模式(PDF 或 文本)
- 若為PDF模式,則瀏覽選擇PDF文件
- 若為文本模式,則在文本框中粘貼英文文本
- 點擊“開始處理”
在處理過程中,會顯示“處理中…”提示。等待完成后,會有新窗口彈出展示結果,并可在
../result
中查看輸出文件。
輸出說明
-
日志文件:在
../log
目錄,以時間戳命名的日志文件記錄處理過程、錯誤信息等。 -
結果文件
:
<name>_result.json
:包含段落級摘要、關鍵詞和中文翻譯的結構化數據。<name>_translated_paper.txt
:全文中文翻譯文本。
-
GUI結果窗口:顯示全文翻譯、核心技術總結(提取所有段落的
summary_zh
匯總)、關鍵詞匯總(收集所有段落的keywords_zh
)。
注意事項
- LLM調用需確保網絡連通性和API密鑰配置正確。
- 若處理長篇PDF,可能需要等待較長時間,具體取決于網絡和API響應速度。
- GUI為基礎示例,可根據需要擴展更多功能,如進度條、更多模式支持、錯誤處理提示等。
聯系與擴展
本項目為基礎示例,可根據實際需求進行下列擴展:
- 整合更多NLP特性,如語義搜索、引文分析等。
- 優化用戶界面和用戶體驗。
- 增加緩存與并發處理,提高處理性能。
如有問題或建議,可聯系項目維護者或在Issue中討論。
參考資料
- 字節跳動/火山引擎大模型 API 文檔:https://www.volcengine.com/docs/82379/1399008
- PyTesseract 文檔:https://pypi.org/project/pytesseract/
- PyPDF2 文檔:https://pypdf2.readthedocs.io/