Files
docutranslate/README.md
2025-05-08 21:52:43 +08:00

115 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 简介
## 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="<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分别进行文本修正和翻译
```python
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)
```python
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
```python
from docutranslate import FileTranslater
translater = FileTranslater(base_url="<baseurl>",
key="<key>",
model_id="<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 |