2025-05-08 17:15:34 +08:00
2025-05-08 17:15:34 +08:00
2025-05-08 17:15:34 +08:00
2025-05-08 16:13:22 +08:00
2025-05-08 14:28:15 +08:00
fix
2025-05-08 16:47:14 +08:00
2025-05-08 17:15:34 +08:00
2025-05-08 14:28:15 +08:00

简介

DocuTranslate

一个使用大语言模型(llm)翻译pdf和markdown的包

github主页

安装

使用pip
pip install docutranslate

使用uv
uv init
uv add docutranslate

前置条件获取大模型平台的baseurl、key、model-id

由于需要使用大语言模型进行markdown调整与翻译所以需要预先获取模型的baseurl、key、model-id
常见的大模型平台baseurl可见常用baseurl

使用方式

翻译文件

from docutranslate.translater import FileTranslater


translater=FileTranslater(base_url="<baseurl>", 
               key="<key>", 
               model_id="<model-id>")
# 不开启公式、代码识别
translater.translate_pdf_file("<pdf路径>", to_lang="中文")

# 开启公式、代码识别(需要下载更多模型)
translater.translate_pdf_file("<pdf路径>", to_lang="中文",formula=True, code=True)

#翻译markdown文件
translater.translate_markdown_file("<markdown路径>",to_lang="中文")

第一次使用时需要下载模型约1G、使用公式、代码识别需要多约0.5G),请稍作等待
输出文件默认放在./output

使用不同的agent分别进行文本修正和翻译

from docutranslate import FileTranslater

translater = FileTranslater()

refine_agent = translater.create_refine_agent(baseurl="<baseurl-1>", key="<key-1>", model_id="<model-id-1>")
translate_agent = translater.create_translate_agent(baseurl="<baseurl-2>", key="<key-2>", model_id="<model-id-2>")

translater.translate_pdf_file(pdf_path="<pdf路径>", to_lang="中文", refine_agent=refine_agent,
                              translate_agent=translate_agent)

文件转换(pdf/markdown->markdown/html)

from docutranslate import FileTranslater
translater=FileTranslater(base_url="<baseurl>", 
               key="<key>", 
               model_id="<model-id>")
#markdown转html
translater.read_markdown("<markdown路径>").save_as_html()
#pdf转markdown
translater.read_pdf_as_markdown("<pdf路径>").save_as_markdown()

参数说明

创建FileTranslate

from docutranslate import FileTranslater

translater = FileTranslater(base_url="<baseurl>",
                            key="<key>",
                            model_id="<model-id>",  # 使用的模型id
                            chunksize=4000,  # 【可选】markdown分块长度分块越大效果越好不建议超过4096
                            max_concurrent=6  # 【可选】并发数受到ai平台并发量限制
                            )

翻译pdf文件

translater.translate_pdf_file(r"<要翻译的pdf路径>",
                              to_lang="中文",
                              formula=False,#是否启用公式识别
                              code=False,#是否启用代码识别
                              refine=True,#是否在翻译前先修正markdown文本
                              output_format="markdown",#"markdown"与"html"两种输出格式
                              output_dir="./output"#默认输出文件夹
                              )

翻译markdown文件

translater.translate_markdown_file(r"<要翻译的markdown路径>",
                                    to_lang="中文",
                                    refine=False,#【可选】是否在翻译前先修正markdown文本
                                    output_format="markdown",#"markdown"与"html"两种输出格式
                                    output_dir="./output"#默认输出文件夹
                                    )

常用baseurl

平台名称 baseurl
ollama http://127.0.0.1:11434/v1
lm studio http://127.0.0.1:1234/v1
openai https://api.openai.com/v1/
deepseek https://api.deepseek.com/v1
智谱ai https://open.bigmodel.cn/api/paas/v4
Description
华宝培训项目-翻译部分
Readme MPL-2.0 11 MiB
Languages
Python 68.3%
HTML 16.5%
CSS 15%
Dockerfile 0.1%