一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

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;请参见 型号和语言。

准备工作

  1. ChatGPT 或 OpenAI 代币 ^token
  2. epub/txt/md/pdf 书籍
  3. 具有互联网访问或代理的环境
  4. 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-4gpt-4-turbo 贵得多,但为了避免遇到速率限制,我们自动平衡 gpt-4-1106-previewgpt-4gpt-4-32k 之间的查询, gpt-4-0613gpt-4-32k-0613
  • 如果您想将特定模型别名与OpenAI一起使用(例如gpt-4-1106-previewgpt-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-flashgemini-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 是的 翻译器界面风格。支持:openaiclaudegeminiqwen
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 需要 --provideropenai 路由
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_TEMPLATEBBM_CHATGPTAPI_SYS_MSG 来设置 usersystem 角色提示符。

  • --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

注释

  1. 免费试用的 API 代币有限制。如果您想加快流程,请考虑支付服务费用或使用多个 OpenAI 代币
  2. PR 欢迎

其他更好

  • 书译 BookTranslator -> 图书译者

鉴赏

谢谢你,够了。

热门栏目