在项目中评估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;请参见 型号和语言。
准备工作
快速入门
提供样本书 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 用于测试目的。--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。gpt-4-1106-preview或gpt-3.5-turbo-0125),则可以使用--model openai --model_list gpt-4-1106-preview,gpt-3.5-turbo-0125。 --model_list 采用逗号分隔的模型别名列表。--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
使用
${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 X to 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 real samples so 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
注释
其他更好
鉴赏
谢谢你,够了。