# 简介 ## DocuTranslate 一个使用大语言模型(llm)翻译pdf和markdown的包 [github主页](https://github.com/xunbu/docutranslate) # 安装 使用pip `pip install docutranslate` 使用uv `uv init` `uv add docutranslate` # 前置条件(获取大模型平台的baseurl、key、model-id) 由于需要使用大语言模型进行markdown调整与翻译,所以需要预先获取模型的baseurl、key、model-id 常见的大模型平台baseurl与api获取方式可见[常用ai平台](#常用ai平台) > 比较推荐的模型有阿里云的qwen-plus、智谱的glm-z1-flash等。免费的智谱glm-4-flash可以用但效果欠佳 # 使用方式 ## 翻译文件 ```python from docutranslate.translater import FileTranslater translater=FileTranslater(base_url="", key="", model_id="") # 不开启公式、代码识别 translater.translate_pdf_file("", to_lang="中文") # 开启公式、代码识别(需要下载更多模型) translater.translate_pdf_file("", to_lang="中文",formula=True, code=True) #翻译markdown文件 translater.translate_markdown_file("",to_lang="中文") ``` > 第一次使用时需要下载模型(约1G、使用公式、代码识别需要多约0.5G),请稍作等待 > 输出文件默认放在`./output`中 ## 使用不同的agent分别进行文本修正和翻译 ```python from docutranslate import FileTranslater translater = FileTranslater() refine_agent = translater.create_refine_agent(baseurl="", key="", model_id="") translate_agent = translater.create_translate_agent(baseurl="", key="", model_id="") translater.translate_pdf_file(pdf_path="", to_lang="中文", refine_agent=refine_agent, translate_agent=translate_agent) ``` ## 文件转换(pdf/markdown->markdown/html) ```python from docutranslate import FileTranslater translater=FileTranslater(base_url="", key="", model_id="") #markdown转html translater.read_markdown("").save_as_html() #pdf转markdown translater.read_pdf_as_markdown("").save_as_markdown() ``` ## 参数说明 ### 创建FileTranslate ```python from docutranslate import FileTranslater translater = FileTranslater(base_url="", key="", model_id="", # 使用的模型id chunksize=4000, # 【可选】markdown分块长度,分块越大效果越好,不建议超过4096 max_concurrent=6 # 【可选】并发数,受到ai平台并发量限制,如果文章很长建议适当加大到20以上 ) ``` ### 翻译pdf文件 ```python translater.translate_pdf_file(r"<要翻译的pdf路径>", to_lang="中文", formula=False,#是否启用公式识别 code=False,#是否启用代码识别 refine=True,#是否在翻译前先修正markdown文本 output_format="markdown",#"markdown"与"html"两种输出格式 output_dir="./output"#默认输出文件夹 ) ``` ### 翻译markdown文件 ```python translater.translate_markdown_file(r"<要翻译的markdown路径>", to_lang="中文", refine=False,#【可选】是否在翻译前先修正markdown文本 output_format="markdown",#"markdown"与"html"两种输出格式 output_dir="./output"#默认输出文件夹 ) ``` # 常用ai平台 | 平台名称 | 获取APIkey | baseurl | |------------|-----------------------------------------------------|---------------------------------------------------| | ollama | | http://127.0.0.1:11434/v1 | | lm studio | | http://127.0.0.1:1234/v1 | | openrouter | [点击获取](https://openrouter.ai/settings/keys) |https://openrouter.ai/api/v1| | openai | [点击获取](https://platform.openai.com/api-keys) | https://api.openai.com/v1/ | | deepseek | [点击获取](https://platform.deepseek.com/api_keys) | https://api.deepseek.com/v1 | | 智谱ai | [点击获取](https://open.bigmodel.cn/usercenter/apikeys) | https://open.bigmodel.cn/api/paas/v4 | | 腾讯混元 |[点击获取](https://console.cloud.tencent.com/hunyuan/api-key) | https://api.hunyuan.cloud.tencent.com/v1 | | 阿里云百炼 | [点击获取](https://bailian.console.aliyun.com/?tab=model#/api-key)| https://dashscope.aliyuncs.com/compatible-mode/v1 | | 火山引擎 | [点击获取](https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D) | https://ark.cn-beijing.volces.com/api/v3 | | 硅基流动 | [点击获取](https://cloud.siliconflow.cn/account/ak) | https://api.siliconflow.cn/v1 |