最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
bilingual_book_maker:实践指南
时间:2026-09-12 17:26:01 编辑:袖梨 来源:一聚教程网
在项目中评估bilingual_book_maker,可以先看清用途边界:使用 AI 翻译制作双语 epub 书籍。对日常自动化任务来说,输入边界、依赖和失败处理如果不清楚就很难稳定复用往往决定它能否落地,不能只用安装成功来判断。试跑可以从用一项范围明确的真实任务完成最小试跑开始,并把配置时间、输出质量、异常信息和维护痕迹写进验收记录。对愿意先做小范围验证并复查原始文档的团队来说,这个仓库值得继续验证;只求即装即用的人则要先看维护成本。
中文 | 英语
双语_book_maker
bilingual_book_maker是一款AI翻译工具,它使用ChatGPT来帮助用户创建epub/txt/md/srt/pdf文件和书籍的多语言版本。该工具专为翻译 epub 和其他公共领域作品而设计,不适用于受版权保护的作品。在使用此工具之前,请查看项目的 免责声明。
支持机型
内置路线包括OpenAI预设和任意OpenAI-compatible模型IDs,当前
克劳德选择、Gemini、Qwen-MT、Groq、xAI、OrcaRouter、DeepL、Google、彩云和腾讯 TranSmart。
确切的 --model 选择来自已安装的版本,因此使用
python3 make_book.py --help。未列出的网关和本地提供商模型 IDs 可以
配置为--provider;请参见 型号和语言。
准备工作
- ChatGPT 或 OpenAI 代币 ^token
- epub/txt/md/pdf 书籍
- 具有互联网访问或代理的环境
- Python 3.10+
快速入门
提供样本书 test_books/animal_farm.epub 用于测试目的。
pip install -r requirements.txt
python3 make_book.py --book_name test_books/animal_farm.epub --openai_key ${openai_key} --test
OR
pip install -U bbook_maker
bbook_maker --book_name test_books/animal_farm.epub --openai_key ${openai_key} --test
翻译服务
- 使用
--openai_key选项指定 OpenAI API 密钥。如果有多个key,请用逗号(xxx,xxx,xxx)分隔,以减少API调用限制导致的错误。 或者,只需设置环境变量BBM_OPENAI_API_KEY即可。 - 提供样本书
test_books/animal_farm.epub用于测试目的。 - 默认底层模型为GPT-3.5-turbo,当前使用的是ChatGPT。使用
--model gpt4将底层模型更改为GPT4。您还可以使用GPT4omini。 - 需要注意的是,
gpt-4比gpt-4-turbo贵得多,但为了避免遇到速率限制,我们自动平衡gpt-4-1106-preview、gpt-4、gpt-4-32k之间的查询,gpt-4-0613,gpt-4-32k-0613。 - 如果您想将特定模型别名与OpenAI一起使用(例如
gpt-4-1106-preview或gpt-3.5-turbo-0125),则可以使用--model openai --model_list gpt-4-1106-preview,gpt-3.5-turbo-0125。--model_list采用逗号分隔的模型别名列表。 - 如果使用 ch@tgptapi,您可以添加
--use_context以将上下文段落添加到发送到模型进行翻译的每个段落(见下文)。
-
DeepL 支持 DeepL 型号 DeepL 翻译器 需要付费获取代币
python3 make_book.py --book_name test_books/animal_farm.epub --model deepl --deepl_key ${deepl_key} -
DeepL 免费
python3 make_book.py --book_name test_books/animal_farm.epub --model deeplfree -
克劳德
使用Claude模型进行翻译
python3 make_book.py --book_name test_books/animal_farm.epub --model claude --claude_key ${claude_key} -
谷歌翻译
python3 make_book.py --book_name test_books/animal_farm.epub --model google -
彩云翻译
python3 make_book.py --book_name test_books/animal_farm.epub --model caiyun --caiyun_key ${caiyun_key} -
双子座
支持Google Gemini型号,Gemini Flash使用
--model gemini,Gemini Pro使用--model geminipro。 如果您想对 Gemini 使用特定的模型别名(例如gemini-2.5-flash或gemini-2.0-flash),则可以使用--model gemini --model_list gemini-2.5-flash,gemini-2.0-flash。--model_list采用逗号分隔的模型别名列表。python3 make_book.py --book_name test_books/animal_farm.epub --model gemini --gemini_key ${gemini_key} -
奎文
支持阿里云Qwen-MT专业翻译模型。支持 92 种语言,具有术语干预和翻译记忆库等功能。 使用
--model qwen-mt-turbo进行 faster/cheaper 翻译,或使用--model qwen-mt-plus获得更高质量。使用
source_lang显式指定源语言,或将其留空以进行自动检测。python3 make_book.py --book_name test_books/animal_farm.epub --qwen_key ${qwen_key} --model qwen-mt-turbo --language "Simplified Chinese" python3 make_book.py --book_name test_books/animal_farm.epub --qwen_key ${qwen_key} --model qwen-mt-plus --language "Japanese" --source_lang "English" -
腾讯 TranSmart
python3 make_book.py --book_name test_books/animal_farm.epub --model tencentransmart -
xAI
python3 make_book.py --book_name test_books/animal_farm.epub --model xai --xai_key ${xai_key} -
OrcaRouter
支持 OrcaRouter 网关,默认为
orcarouter/auto智能路由模型。它还运行网关级、零信任 同一端点上 AI 代理的安全性 - 筛选每个 prompt/response 和 在默认拒绝的基础上管理每个工具调用,无需更改应用程序代码。python3 make_book.py --book_name test_books/animal_farm.epub --model orcarouter --orcarouter_key ${orcarouter_key} -
奥拉玛
支持Ollama自主机型号, 如果 ollama 服务器未在本地主机上运行,请使用
--api_base http://x.x.x.x:port/v1指向 ollama 服务器地址python3 make_book.py --book_name test_books/animal_farm.epub --ollama_model ${ollama_model_name} -
groq
GroqCloud 目前支持的型号:可以从 支持的型号 中找到
python3 make_book.py --book_name test_books/animal_farm.epub --groq_key [your_key] --model groq --model_list llama3-8b-8192 -
自定义 API 提供商
如果内置模型不能满足您的需求,您可以通过 JSON 配置文件定义自定义提供程序。这使您可以使用任何 OpenAI-compatible API(DeepSeek、SiliconFlow、本地代理等),而无需修改源代码。
在当前目录中创建
bbm_providers.json(或~/.bbm/providers.json用于全局配置):{ "providers": { "deepseek": { "api_style": "openai", "base_url": "https://api.deepseek.com/v1", "default_models": ["deepseek-ch@t", "deepseek-reasoner"], "env_key": "BBM_DEEPSEEK_API_KEY" }, "siliconflow": { "api_style": "openai", "base_url": "https://api.siliconflow.cn/v1", "default_models": ["Qwen/Qwen2.5-72B-Instruct"], "env_key": "BBM_SILICONFLOW_API_KEY" } } }配置字段:
| 领域 | 必填 | 描述 |
|---|---|---|
api_style |
是的 | 翻译器界面风格。支持:openai、claude、gemini、qwen |
base_url |
否 | API 端点 URL。回退到 api_style 的默认值 |
default_models |
否 | 默认型号列表。如果未提供 --model_list,则为必填项 |
env_key |
否 | API 密钥的环境变量名称。如果未提供 --api_key,则为必填项 |
优先级:项目级./bbm_providers.json覆盖全局~/.bbm/providers.json。
--provider 和 --model 是互斥的。
python3 make_book.py --provider deepseek --api_key sk-xxx --book_name test_books/animal_farm.epub
export BBM_DEEPSEEK_API_KEY=sk-xxx
python3 make_book.py --provider deepseek --book_name test_books/animal_farm.epub
python3 make_book.py --provider deepseek --api_key sk-xxx --model_list deepseek-reasoner --book_name test_books/animal_farm.epub
使用
- 翻译完成后,将为 EPUB 输入生成一本名为
${book_name}_bilingual.epub的双语书籍;对于 TXT/MD/SRT 输入,将生成名为${book_name}_bilingual.txt(或_bilingual.srt)的双语文本(或字幕)文件。对于 PDF 输入,该工具将生成双语.txt后备,并且还将尝试创建${book_name}_bilingual.epub— 如果 EPUB 创建失败,TXT 后备将保留,因此您无需重新翻译。 - 如果出现任何错误或者您希望按
CTRL+C中断翻译,则会生成临时双语文件(例如{book_name}_bilingual_temp.epub或{book_name}_bilingual_temp.txt)。您只需将其重命名为任何所需的名称即可。
参数
-
--model:选择翻译模型。默认值:
ch@tgptapi。可用值及其行为:
| 型号 | 主要来源 | 注释 |
|---|---|---|
ch@tgptapi |
--openai_key / BBM_OPENAI_API_KEY |
GPT-3.5-涡轮。自动检测 API 中的可用型号 |
gpt4 |
--openai_key / BBM_OPENAI_API_KEY |
GPT-4系列。自动平衡可用的 GPT-4 变体 |
gpt4omini |
--openai_key / BBM_OPENAI_API_KEY |
GPT-4o-mini |
gpt4o |
--openai_key / BBM_OPENAI_API_KEY |
GPT-4o |
gpt5mini |
--openai_key / BBM_OPENAI_API_KEY |
GPT-5-mini |
o1preview |
--openai_key / BBM_OPENAI_API_KEY |
o1-预览 |
o1 |
--openai_key / BBM_OPENAI_API_KEY |
奥1 |
o1mini |
--openai_key / BBM_OPENAI_API_KEY |
o1-迷你 |
o3mini |
--openai_key / BBM_OPENAI_API_KEY |
o3-迷你 |
openai |
--openai_key / BBM_OPENAI_API_KEY |
需要 --model_list。使用任何 OpenAI-compatible 型号 |
claude 及上市 claude-* IDs |
--claude_key / BBM_CLAUDE_API_KEY |
--help 显示的确切内置选择;任意未列出的 IDs 需要 --provider 或 openai 路由 |
gemini |
--gemini_key / BBM_GOOGLE_GEMINI_KEY |
双子座闪光。支持--model_list |
geminipro |
--gemini_key / BBM_GOOGLE_GEMINI_KEY |
双子座专业版 |
groq |
--groq_key / BBM_GROQ_API_KEY |
需要 --model_list |
xai |
--xai_key / BBM_XAI_API_KEY |
格罗克 |
orcarouter |
--orcarouter_key / BBM_ORCAROUTER_API_KEY |
OrcaRouter智能路由;默认为 orcarouter/auto |
qwen-mt-turbo |
--qwen_key / BBM_QWEN_API_KEY |
Qwen快速翻译模型 |
qwen-mt-plus |
--qwen_key / BBM_QWEN_API_KEY |
Qwen高质量翻译模型 |
google |
N/A | 免费。无需 API 密钥 |
caiyun |
--caiyun_key / BBM_CAIYUN_API_KEY |
彩云 |
deepl |
--deepl_key / BBM_DEEPL_API_KEY |
DeepL(付费) |
deeplfree |
N/A | DeepL 免费 |
tencentransmart |
N/A | 腾讯TranSmart。免费 |
customapi |
--custom_api / BBM_CUSTOM_API |
自定义翻译 API |
对于上面未列出的任何 OpenAI-compatible API,请使用 --provider 代替(请参阅自定义 API 提供程序部分)。
-
--test:如果您尚未支付服务费用,请使用
--test选项预览结果。请注意,这是有限制的,并且可能需要一些时间。 -
--language:设置目标语言,如
--language "Simplified Chinese"。默认目标语言为"Simplified Chinese"。 通过帮助消息读取可用语言:python make_book.py --help -
--proxy:使用
--proxy选项指定用于 Internet 访问的代哩服务務器。输入字符串,例如http://127.0.0.1:7890。 -
--resume:使用
--resume选项在中断后手动恢复进程。python3 make_book.py --book_name test_books/animal_farm.epub --model google --resume -
--translate-tags:epub 由 html 文件组成。默认情况下,我们只翻译
<p>中的内容。 使用--translate-tags指定需要翻译的标签。使用逗号分隔多个标签。 例如:--translate-tags h1,h2,h3,p,div -
--plan-classify {none,most,model,agent}(仅限 epub):计划模式:不是选择标签,而是分配书中的每个文本节点 到翻译单元或由于明确的、报告的原因而跳过(隐藏内容、 页面列表导航、符号、链接……)。对于其文本内容的书籍来说,这是正确的选择 不住在
<p>— e.g。诗歌呈现为每行 ``s 或<blockquote>s,其中 默认情况下会默默地跳过。短诗行的运行被分批成节 Windows(最多--poetry-group-size行,默认 8 行)并在一个请求中进行翻译,以便 模型会看到邻近的线以获取上下文。分区是故意贪婪的:它保留了它无法排除的所有内容 从结构上讲,因为从形状猜测过去常常会丢弃真实内容(诗句编号, 单字对话、首字下沉)仅保存 0-6% 的字符。决定什么不是 值得翻译的是您在这里选择的分类条目:
none(默认):无计划 — 像往常一样翻译--translate-tags选择。most:翻译整个分区,不分类。model:LLM 首先对不确定的签名进行规则(标题、散文主干和 poetry groups are never asked about), then the run continues. Use--plan-classify-model Xto pick a different model for it — naming one implies this mode, and a failure then aborts instead of falling back.agent:不进行 API 调用。编写计划,打印要粘贴的指令块 into a coding-agent session (Claude Code, Codex, ...), and stops before translating. Edit the actions, then rerun the same command to translate.
在计划模式下,
--translate-tags被忽略——计划对整本书进行分区。--plan-dry-run:打印每个签名覆盖率表,写入<book>_plan.json,并 exit. No API key or credits needed. Honors--only_filelist/--exclude_filelist.<book>_plan.json:将签名的"action"编辑为"skip"以将其从签名中排除 real run; the file is never overwritten once it exists (delete it to regenerate). Each row carries up to 5 realsamplesso you can judge without opening the epub.--plan-min-coverage(默认 0.5):如果计划覆盖范围小于此值,计划模式将中止 fraction of the book's text, instead of silently translating a fraction of it.
# inspect what would be translated (free, no key needed) python3 make_book.py --book_name my_book.epub --plan-dry-run # translate the whole partition python3 make_book.py --book_name my_book.epub --openai_key ${key} --plan-classify most # let a model triage the apparatus first python3 make_book.py --book_name my_book.epub --openai_key ${key} --plan-classify model # or hand the triage to a coding agent (stops, prints instructions, then rerun) python3 make_book.py --book_name my_book.epub --openai_key ${key} --plan-classify agent -
--exclude-translate-tags:使用
--exclude-translate-tags从翻译中排除指定 HTML 标签内的内容。这对于保留代码块、预格式化文本或其他特殊内容非常有用。使用逗号分隔多个标签。 默认值:sup,code。 例如:--exclude-translate-tags code,pre提示:使用
--exclude-translate-tags ""翻译包括代码块在内的所有内容(覆盖默认排除)。 -
--book_from:使用
--book_from选项指定电子阅读器类型(目前仅支持kobo),并使用--device_path指定安装点。 -
--api_base:如果您想像使用 Cloudflare Workers 一样更改 api_base,请使用
--api_base <URL>来支持。 注意:api url 应为“https://xxxx/v1”。需要加引号。 -
--allow_navigable_strings:如果要翻译电子书中未标记任何标签的字符串,可以使用
--allow_navigable_strings参数。这会将字符串添加到翻译队列中。 请注意,如果可能的话,最好寻找更标准化的电子书。 -
--prompt:要调整提示,请使用
--prompt参数。user角色模板的有效占位符包括{text}和{language}。它支持几种配置提示的方法:-
如果您不需要设置
system角色内容,您可以简单地这样设置:--prompt "Translate {text} to {language}."或--prompt prompt_template_sample.txt(文本文件的示例可以在./prompt_template_sample.txt找到)。 -
如果需要设置
system角色内容,可以使用以下格式:--prompt '{"user":"Translate {text} to {language}", "system": "You are a professional translator."}'或--prompt prompt_template_sample.json(JSON文件的示例可以在./prompt_template_sample.json中找到))。 -
您现在可以使用 PromptDown 格式(
.md文件)获得更结构化的提示:--prompt prompt_md.prompt.md。 PromptDown 同时支持传统系统消息和开发人员消息(由较新的 AI 型号使用)。示例:# Translation Prompt ## Developer Message You are a professional translator who specializes in accurate translations. ## Conversation
-
| Role | Content |
|---|---|
| User | Please translate the following text into {language}:nn{text} |
-
您还可以通过设置环境变量:
BBM_CHATGPTAPI_USER_MSG_TEMPLATE和BBM_CHATGPTAPI_SYS_MSG来设置user和system角色提示符。 -
--batch_size:使用
--batch_size参数指定批量翻译的行数(默认为10,目前仅对txt文件有效)。 -
--accumulated_num:等待累积了多少令牌后再开始翻译。 gpt3.5将total_token限制为4090。例如,如果您使用
--accumulated_num 1600,那么openai可能会输出2200个令牌,系统消息用户消息中的其他消息可能会输出200个令牌,1600+2200+200=4000,所以您已经接近达到限制。你必须选择你自己的 value,发送前无法知道是否达到限制 -
--use_context:提示模型创建三段摘要。如果是翻译的开头,它将总结发送的整个段落(大小取决于
--accumulated_num)。 对于后续段落,它将修改摘要以包含最新段落的详细信息,从而创建整个翻译作品的重要细节的运行单段落上下文有效负载。这提高了整个翻译中的语气和语气的一致性。此选项适用于所有 ChatGPT-compatible 型号和 Gemini 型号。 -
--context_paragraph_limit:使用
--context_paragraph_limit设置使用--use_context选项时上下文段落的数量限制。 -
--parallel-workers:使用
--parallel-workers处理EPUB章节或Markdown中的batches/sections 平行。大于1的值会启动多个工作线程(推荐:2-4)并且 当只有一个工作单元时,自动回退到顺序模式。其他 输入加载器当前接受此共享 CLI 选项,但不并行化其工作。 -
--temperature:使用
--temperature设置ch@tgptapi/gpt4/claude型号的温度参数。 例如:--temperature 0.7。 -
--block_size:使用
--block_size将多个段落合并为一个块。这可以提高准确性并加快进程。 例如:--block_size 5。 -
--single_translate:使用
--single_translate仅输出翻译后的书籍,而不创建双语版本。 -
--translation_style:例如,将自定义 CSS 应用于翻译的 EPUB 文本
--translation_style "color: #808080; font-style: italic;". -
--translation_color:仅设置翻译后的 EPUB 文本颜色的简写,例如
--translation_color "#1e90ff"。如果--translation_style也存在,则完整样式 优先。 -
--pdf_layout {none,top-bottom,side-by-side,all}:为 PDF 输入选择附加双语 PDF 输出。默认
none不创建 额外PDF;all尝试了上下布局和并排布局。双语 TXT 和 EPUB 输出不受影响。 -
--sentence_mode:逐句翻译 EPUB 文本,而不是将每个段落翻译为一个段落 单位。与EPUB计划模式不兼容。
-
--batch/--batch-use:通过 ChatGPT 批次 API 进行两阶段 EPUB 翻译。首先使用
--batch运行 提交批次,然后使用--batch-use重新运行以等待并消耗其结果。 这些标志与计划模式不兼容。 -
--interval:Gemini 请求间隔以秒为单位(默认
0.01)。对其他型号没有影响 路线。 -
--quiet:抑制 EPUB 进度条和每段落 source/translation 回显,同时保留 报告和错误。建议用于日志文件和非交互式代理运行。
-
--retranslate "$translated_filepath" "file_name_in_epub" "start_str" "end_str":从 start_str 重新翻译为 end_str 的标签:
python3 "make_book.py" --book_name "test_books/animal_farm.epub" --retranslate 'test_books/animal_farm_bilingual.epub' 'index_split_002.html' 'in spite of the present book shortage which' 'This kind of thing is not a good symptom. Obviously'要仅重新翻译包含
start_str的标签,请传递一个空的第四个参数:python3 "make_book.py" --book_name "test_books/animal_farm.epub" --retranslate 'test_books/animal_farm_bilingual.epub' 'index_split_002.html' 'in spite of the present book shortage which' '' -
--extra_body:在 ChatGPT/OpenAI-derived 请求路径上传递额外的 JSON 参数,包括 OpenAI-style 自定义提供商和 xAI。 Claude、Gemini、Qwen、Groq 和其他译者 目前忽略此选项。提供包含所需参数的 JSON 字符串。
python3 make_book.py --book_name test_books/animal_farm.epub --openai_key ${openai_key} --extra_body '{"ch@t_template_kwargs": {"enable_thinking": false}}' -
--provider:使用
bbm_providers.json中定义的自定义提供程序。与--model互斥。请参阅上面的“自定义 API 提供程序”部分。 -
--api_key:用于自定义提供程序的 API 密钥(与
--provider一起使用)。也可以通过提供程序配置中的env_key字段进行设置。
示例
注意如果使用 pip install bbook_maker 所有命令都可以更改为 bbook_maker args
# Test quickly
python3 make_book.py --book_name test_books/animal_farm.epub --openai_key ${openai_key} --test --language zh-hans
# Test quickly for src
python3 make_book.py --book_name test_books/Lex_Fridman_episode_322.srt --openai_key ${openai_key} --test
# Or translate the whole book
python3 make_book.py --book_name test_books/animal_farm.epub --openai_key ${openai_key} --language zh-hans
# Or translate the whole book using Gemini flash
python3 make_book.py --book_name test_books/animal_farm.epub --gemini_key ${gemini_key} --model gemini
# Translate an EPUB with parallel chapter processing
python3 make_book.py --book_name test_books/animal_farm.epub --openai_key ${openai_key} --parallel-workers 4
# Use a specific list of Gemini model aliases
python3 make_book.py --book_name test_books/animal_farm.epub --gemini_key ${gemini_key} --model gemini --model_list gemini-2.5-flash,gemini-2.0-flash
# Set env OPENAI_API_KEY to ignore option --openai_key
export OPENAI_API_KEY=${your_api_key}
# Use the GPT-4 model with context to Japanese
python3 make_book.py --book_name test_books/animal_farm.epub --model gpt4 --use_context --language ja
# Use a specific OpenAI model alias
python3 make_book.py --book_name test_books/animal_farm.epub --model openai --model_list gpt-4-1106-preview --openai_key ${openai_key}
**Note** you can use other `openai like` model in this way
python3 make_book.py --book_name test_books/animal_farm.epub --model openai --model_list yi-34b-ch@t-0205 --openai_key ${openai_key} --api_base "https://api.lingyiwanwu.com/v1"
# Use a specific list of OpenAI model aliases
python3 make_book.py --book_name test_books/animal_farm.epub --model openai --model_list gpt-4-1106-preview,gpt-4-0125-preview,gpt-3.5-turbo-0125 --openai_key ${openai_key}
# Use the DeepL model with Japanese
python3 make_book.py --book_name test_books/animal_farm.epub --model deepl --deepl_key ${deepl_key} --language ja
# Use the Claude model with Japanese
python3 make_book.py --book_name test_books/animal_farm.epub --model claude --claude_key ${claude_key} --language ja
# Use the CustomAPI model with Japanese
python3 make_book.py --book_name test_books/animal_farm.epub --model customapi --custom_api ${custom_api} --language ja
# Use a custom provider (e.g. DeepSeek)
python3 make_book.py --book_name test_books/animal_farm.epub --provider deepseek --api_key sk-xxx --language ja
# Translate contents in and <p>
python3 make_book.py --book_name test_books/animal_farm.epub --translate-tags div,p
# Plan mode: auto-discover translatable content (poetry, blockquotes, table cells,
# ...) and batch verse lines in stanza windows; preview the plan with --plan-dry-run
python3 make_book.py --book_name test_books/animal_farm.epub --plan-dry-run
python3 make_book.py --book_name test_books/animal_farm.epub --plan-classify most
# Tweaking the prompt
python3 make_book.py --book_name test_books/animal_farm.epub --prompt prompt_template_sample.txt
# or
python3 make_book.py --book_name test_books/animal_farm.epub --prompt prompt_template_sample.json
# or
python3 make_book.py --book_name test_books/animal_farm.epub --prompt "Please translate `{text}` to {language}"
# Translate books download from Rakuten Kobo on kobo e-reader
python3 make_book.py --book_from kobo --device_path /tmp/kobo
# translate txt file
python3 make_book.py --book_name test_books/the_little_prince.txt --test --language zh-hans
# aggregated translation txt file
python3 make_book.py --book_name test_books/the_little_prince.txt --test --batch_size 20
# Using Caiyun model to translate
# (the api currently only support: simplified chinese <-> english, simplified chinese <-> japanese)
# the official Caiyun has provided a test token (3975l6lr5pcbvidl6jl2)
# you can apply your own token by following this tutorial(https://bobtranslate.com/service/translate/caiyun.html)
python3 make_book.py --model caiyun --caiyun_key 3975l6lr5pcbvidl6jl2 --book_name test_books/animal_farm.epub
# Set env BBM_CAIYUN_API_KEY to ignore option --openai_key
export BBM_CAIYUN_API_KEY=${your_api_key}
更容易理解的例子
python3 make_book.py --book_name 'animal_farm.epub' --openai_key sk-XXXXX --api_base 'https://xxxxx/v1'
# Or python3 is not in your PATH
python make_book.py --book_name 'animal_farm.epub' --openai_key sk-XXXXX --api_base 'https://xxxxx/v1'
微软Azure端点
python3 make_book.py --book_name 'animal_farm.epub' --openai_key XXXXX --api_base 'https://example-endpoint.openai.azure.com' --deployment_id 'deployment-name'
# Or python3 is not in your PATH
python make_book.py --book_name 'animal_farm.epub' --openai_key XXXXX --api_base 'https://example-endpoint.openai.azure.com' --deployment_id 'deployment-name'
码头工人
如果您不想处理环境设置,可以使用 Docker。
# Build image
docker build --tag bilingual_book_maker .
# Run container
# "$folder_path" represents the folder where your book file locates. Also, it is where the processed file will be stored.
# Windows PowerShell
$folder_path=your_folder_path # $folder_path="C:Usersusermybook"
$book_name=your_book_name # $book_name="animal_farm.epub"
$openai_key=your_api_key # $openai_key="sk-xxx"
$language=your_language # see utils.py
docker run --rm --name bilingual_book_maker --mount type=bind,source=$folder_path,target='/app/test_books' bilingual_book_maker --book_name "/app/test_books/$book_name" --openai_key $openai_key --language $language
# Linux
export folder_path=${your_folder_path}
export book_name=${your_book_name}
export openai_key=${your_api_key}
export language=${your_language}
docker run --rm --name bilingual_book_maker --mount type=bind,source=${folder_path},target='/app/test_books' bilingual_book_maker --book_name "/app/test_books/${book_name}" --openai_key ${openai_key} --language "${language}"
例如:
# Linux
docker run --rm --name bilingual_book_maker --mount type=bind,source=/home/user/my_books,target='/app/test_books' bilingual_book_maker --book_name /app/test_books/animal_farm.epub --openai_key sk-XXX --test --test_num 1 --language zh-hant
注释
- 免费试用的 API 代币有限制。如果您想加快流程,请考虑支付服务费用或使用多个 OpenAI 代币
- PR 欢迎
其他更好
- 书译 BookTranslator -> 图书译者
鉴赏
谢谢你,够了。