bilingual_book_maker 提示词定制指南:从 PromptDown 到 --prompt 的完整实战解析
AI 应用NLPCLI【免费下载链接】bilingual_book_makerMake bilingual epub books Using AI translate项目地址https://gitcode.com/gh_mirrors/bi/bilingual_book_maker点击查看免费下载本篇技术指南围绕本仓库根目录下的 prompt_md.prompt.md 展开系统讲解 bilingual_book_makerMake bilingual epub books Using AI translate中翻译提示词的定制机制包括 PromptDown 结构化提示词文件的编写格式、--prompt命令行参数的四种配置方式、{text}与{language}占位符的替换原理以及提示词从 CLI 解析到翻译器调用的完整源码链路。读完本文你将能够为任意书籍翻译任务编写高质量、可复现的提示词文件并通过源码证据理解其底层运作方式。一、关联文档速览一个 PromptDown 格式的翻译提示词prompt_md.prompt.md 是本项目提供的一个结构化提示词示例文件采用 PromptDown.md格式书写内容非常精炼核心由两部分构成# Translation Prompt ## Developer Message You are a professional translator who specializes in accurate, natural-sounding translations that preserve the original meaning, tone, and style of the text. ## Conversation | Role | Content | |-------|---------------------------------------------------------------------------| | User | Please translate the following text into {language}:\n\n{text} |## Developer Message面向新一代 AI 模型的开发者消息Developer Message角色相当于系统级指令声明你是一名专业译者擅长准确、自然的翻译并保留原文的意义、语气与风格。## Conversation用 Markdown 表格定义一轮对话其中User角色的内容为Please translate the following text into {language}:\n\n{text}其中{language}与{text}是运行时替换的占位符详见下文第四节。与之对应的 JSON 版本 prompt_md.json 则提供了同一套翻译策略的完整形态它包含system角色You are a highly skilled translator responsible for translating the content of books in Markdown format from English into Chinese.与user角色一套三步翻译流程① 忠实直译并保持 Markdown 结构② 对照原文反思从准确性、流畅性、简洁性三个维度提出改进建议③ 基于反思精修译文并以step1_initial_translation、step2_reflection、step3_refined_translation三个 XML 标签分别输出。这两份文件共同展示了本项目提示词配置的两种典型载体PromptDown Markdown 文件与** JSON 键值对**。二、--prompt参数四种提示词配置方式在docs/prompt.md中官方明确说明要定制提示词使用--prompt参数其中user角色模板合法的占位符为{text}和{language}。该参数在 book_maker/cli.py 中定义metavar为PROMPT_ARG官方帮助文本指出它可以是提示词模板字符串也可以是模板文件的路径。合法占位符是{text}和{language}。方式一内联模板字符串仅 user 角色不需要设置system角色时直接传入一段含占位符的文本--prompt Translate {text} to {language}.更丰富的模板示例对应 prompt_template_sample.json 的 user 字段思路Translate the given text to {language}. Be faithful or accurate in translation. Make the translation readable or intelligible. Be elegant or natural in translation. If the text cannot be translated, return the original text as is. Do not translate persons name. Do not add any additional text in the translation. The text to be translated is: {text}方式二TXT 模板文件仅 user 角色将上述文本保存为prompt_template_sample.txt然后传入文件路径即可效果与内联字符串完全一致--prompt prompt_template_sample.txt从源码看parse_prompt_arg对.txt后缀的处理是读文件全文并包装为{user: 文件内容}即 TXT 文件本质就是 user 角色模板的载体。方式三JSON 字符串 / JSON 文件user system 双角色需要同时设置system与user角色时使用 JSON 格式。既可以直接传 JSON 字符串--prompt {user:Translate {text} to {language}, system: You are a professional translator.}也可以传 JSON 文件路径例如 prompt_template_sample.json--prompt prompt_template_sample.json对应的 JSON 文件内容格式为{ system: You are a professional translator., user: Translate the given text to {language}. Be faithful or accurate in translation. Make the translation readable or intelligible. Be elegant or natural in translation. If the text cannot be translated, return the original text as is. Do not translate persons name. Do not add any additional text in the translation. The text to be translated is:\n{text} }方式四PromptDown Markdown 文件推荐的结构化方式本项目引入 PromptDown 格式.md文件以支持更结构化的提示词即本文主角 prompt_md.prompt.md--prompt prompt_md.prompt.mdPromptDown 文件支持两种角色声明方式官方文档 docs/prompt.md 中同时给出了示例## System Message面向传统模型You are a professional translator who specializes in accurate translations.## Developer Message面向新一代 AI 模型You are a professional translator who specializes in accurate translations.再配合## Conversation表格中定义User角色的消息内容即构成完整的结构化提示词。prompt_md.prompt.md正是采用了Developer Message这种较新的写法。三、PromptDown 解析原理源码级拆解--prompt之所以能同时接受字符串、TXT、JSON、Markdown 四种形态全部归功于 book_maker/cli.py 中的parse_prompt_arg函数。其解析优先级与判定逻辑如下PromptDown 优先若参数以.md结尾且文件存在则调用第三方库promptdown的StructuredPrompt.from_promptdown_file()解析文件角色提取顺序developer_message优先于system_message两者都出现时开发者消息优先被映射为内部 prompt 的system键随后遍历conversation中的消息取第一个role为user的消息内容作为user键校验PromptDown 文件必须至少包含一条 user 消息且 user 内容必须包含{text}占位符否则抛出ValueError非 Markdown 分支若参数不以.json/.txt/.md结尾先尝试按 JSON 字符串解析json.loads失败则降级为纯模板字符串{user: prompt_arg}若以.txt结尾则读文件全文作为 user 模板若以.json结尾则直接json.load最终校验无论何种方式得到的 prompt 字典必须包含user键且含{text}占位符且只允许user与system两个键prompt.keys() - {user, system}必须为空否则报错。promptdown依赖声明于 pyproject.tomlpromptdown0.9.0并注册了promptdown promptdown_cli:main控制台入口说明该项目将 PromptDown 作为一等公民依赖。四、占位符机制{text} 与 {language} 如何被替换提示词模板中仅有两个合法占位符它们在翻译时被实际内容替换{text}待翻译的文本内容。它是必选占位符——parse_prompt_arg在三种分支中都会校验其存在ValueError: prompt must contain \{text}缺失时直接拒绝启动。{language}目标语言。它由 CLI 的--language参数决定默认值为zh-hans简体中文。目标语言值在 book_maker/cli.py 中做了归一化处理当options.language命中 book_maker/utils.py 中LANGUAGES字典的键时会替换为对应的人类可读语言名例如zh-hans→simplified chinese再传入翻译器从而保证提示词中{language}替换后是模型易理解的自然语言。五、环境变量方式免参数定制提示词除了--prompt命令行参数还可以通过环境变量设置user与system角色的提示词内容docs/prompt.md中明确说明BBM_CHATGPTAPI_USER_MSG_TEMPLATE对应user角色模板BBM_CHATGPTAPI_SYS_MSG对应system角色消息。在 book_maker/translator/chatgptapi_translator.py 中PROMPT_ENV_MAP明确定义了这两个环境变量的映射关系初始化时该文件__init__中提示词的优先级为--prompt传入的模板 环境变量 内置默认提示词DEFAULT_PROMPT即Please help me to translate,\{text} to {language}, please return only translated content not include the origin text。此外还保留了历史遗留变量OPENAI_API_SYS_MSG作为system 角色的向后兼容来源。六、提示词在翻译链路中的完整流转自定义提示词从命令行到真正发起 API 请求经过如下源码链路CLI 解析--prompt参数经parse_prompt_arg()转换为{user: ..., system: ...}字典book_maker/cli.py 处作为prompt_config传入 loader键值映射book_maker/utils.py 中的prompt_config_to_kwargs()将字典拆解为prompt_template来自user键与prompt_sys_msg来自system键两个参数翻译器接收ChatGPTAPI类构造函数接收prompt_template与prompt_sys_msgbook_maker/translator/chatgptapi_translator.py按显式参数 环境变量 默认值的优先级赋值给self.prompt_template与self.prompt_sys_msg占位符替换与请求实际翻译时self.prompt_template.format(...)将{text}、{language}替换为真实内容system角色消息同样参与构建对话请求批量翻译场景在 book_maker/translator/base_translator.py 的_build_batch_prompt()中自定义模板会被拼接上批量指令要求模型用分隔符输出 N 段译文system消息也会被追加批量上下文说明——这说明自定义提示词在单条与批量两种路径下都会被正确透传与增强。七、实战示例完整命令演示以下命令均可在仓库根目录直接运行需先按 docs/installation.md 安装依赖并配置相应 API Key例如OPENAI_API_KEY或BBM_OPENAI_API_KEY# 方式一内联字符串模板 python3 make_book.py --book_name test_books/animal_farm.epub --prompt Please translate \{text}\ to {language} # 方式二TXT 模板文件user 角色 python3 make_book.py --book_name test_books/animal_farm.epub --prompt prompt_template_sample.txt # 方式三JSON 模板文件user system 角色 python3 make_book.py --book_name test_books/animal_farm.epub --prompt prompt_template_sample.json # 方式四PromptDown Markdown 结构化提示词 python3 make_book.py --book_name test_books/animal_farm.epub --prompt prompt_md.prompt.md # 或配合 --model 指定其他 LLM 后端如 claude、gemini、groq 等 python3 make_book.py --book_name test_books/animal_farm.epub --model chatgptapi --prompt prompt_md.prompt.md如需快速验证提示词效果而不消耗大量 token可追加--test仅翻译前 10 段段落数可用--test_num调整。提示词加载成功后CLI 会打印prompt config: {...}与Successfully loaded PromptDown file: ...等日志便于确认自定义模板已生效。八、最佳实践与注意事项{text}是硬性要求任何提示词形式都必须包含{text}占位符否则程序直接报错退出{language}强烈建议包含否则模型无法获知目标语言。结构化优于内联翻译书籍是长文本、多轮任务建议像 prompt_md.prompt.md 与 prompt_md.json 那样把翻译策略 反思 精修写进提示词配合 XML 标签或 JSON 结构化输出可显著提升长篇译文的一致性与质量。格式保持是硬约束参考 prompt_md.json 中的 user 模板务必在提示词中声明不改动 Markdown 标记结构、不增删链接、不改 URL、不动代码块内容、保留原始换行、不触碰标题末尾 permalink 与 HTML 标签——这直接决定双语 EPUB 输出的版式完整性。键名白名单JSON 形式的提示词只允许user与system两个键多余键会触发ValueError。优先级记忆命令行--prompt的优先级高于环境变量环境变量高于内置默认提示词未做任何定制时项目会使用DEFAULT_PROMPT兜底。批量模式的适配使用--batch_size批量翻译时自定义 user 模板会被自动拼接批量指令system 消息会被附加分段说明属预期行为无需手工适配。通过本文你已经掌握了 bilingual_book_maker 提示词定制的全部四种形态、PromptDown 文件的解析源码逻辑、占位符与环境变量机制以及提示词在翻译链路中的完整流转路径可以据此为不同书籍、不同语言对编写高质量的定制化翻译提示词。赞分享AI 应用NLPCLI【免费下载链接】bilingual_book_makerMake bilingual epub books Using AI translate项目地址https://gitcode.com/gh_mirrors/bi/bilingual_book_maker点击查看免费下载相关推荐CANN/asc-devkitint32转int16向量转换函数asc_int322int16 产品支持情况 | 产品 | 是否支持 | | | : : | | Ascend 950PR/Ascend 950DT | √ |AI 应用NLPCLIRagas Prompt 对象完全指南从 PydanticPrompt 到自定义评估提示词Ragas Prompt 对象完全指南从 PydanticPrompt 到自定义评估提示词 Ragas 中的所有 LLM 指标如 Faithfulness、人工智能大模型模型评测RAGGenkit Go 提示词Prompts完整指南DefinePrompt、DefineDataPrompt 与 .prompt 文件实战Genkit Go 提示词Prompts完整指南DefinePrompt、DefineDataPrompt 与 .prompt 文件实战 导读 本文是 GAI 技能人工智能大模型上一篇chilloutmix_NiPrunedFp32Fix 模型格式转换实战PyTorch、ONNX、Safetensors 3 种路径一次讲清附避坑清单下一篇免费跨平台节点图工具 Project Graph 完全指南拓扑图绘制从入门到精通创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

SwiftPM 演进路线图解读:从 EvolutionIdeas 到已落地的 Package Manager 能力

SwiftPM 演进路线图解读:从 EvolutionIdeas 到已落地的 Package Manager 能力

开发工具构建工具 【免费下载链接】swift-package-manager The Package Manager for the Swift Programming Language 项目地址: https://gitcode.com/gh_mirrors/sw/swift-package-manager 点击查看 免费下载 Swift Package Manager(SwiftPM&#xff0…

2026/9/24 17:10:18 阅读更多 →
Tigron:为 CLI 二进制量身打造的 Go 原生测试框架 —— nerdctl 集成测试的实践根基

Tigron:为 CLI 二进制量身打造的 Go 原生测试框架 —— nerdctl 集成测试的实践根基

CLI云原生 【免费下载链接】nerdctl contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz, OCIcrypt, IPFS, ... 项目地址: https://gitcode.com/gh_mirrors/ne/nerdctl 点击查看 免费下载 Tigron 是 nerdctl 仓…

2026/9/24 17:10:18 阅读更多 →
VoltAgent × Vercel AI SDK:`@voltagent/vercel-ai` Provider 从 0.1.1 到 1.0.0 的演进与实现解析

VoltAgent × Vercel AI SDK:`@voltagent/vercel-ai` Provider 从 0.1.1 到 1.0.0 的演进与实现解析

VoltAgent Vercel AI SDK:voltagent/vercel-ai Provider 从 0.1.1 到 1.0.0 的演进与实现解析 【免费下载链接】voltagent AI Agent Engineering Platform built on an Open Source TypeScript AI Agent Framework 项目地址: https://gitcode.com/gh_mirrors/vo/…

2026/9/24 17:10:17 阅读更多 →

最新新闻

【Coze】【视频】治愈系老爷爷工作流

【Coze】【视频】治愈系老爷爷工作流

今天给大家演示一个 老爷爷语录视频自动生成工作流。该工作流通过大语言模型和图像生成模型的协作,自动完成从文本语录生成、格式化处理、配图生成,再到视频合成和音频配乐的完整流程。结合效果展示,用户只需提供简单的输入,就能得到带有温馨画面和背景音乐的成品视频,大幅…

2026/9/24 18:27:12 阅读更多 →
基于SpringBoot的美食推荐系统实战:协同过滤算法与部署解析

基于SpringBoot的美食推荐系统实战:协同过滤算法与部署解析

每年到这个时间段,我的私信里总是涌入同一类问题:SpringBoot学完了但没项目练手怎么办?课程设计选什么题能不撞车又拿高分?面试时项目经历讲不出亮点怎么办?今天就把我打磨过很多遍的一个实战项目——基于SpringBoot的…

2026/9/24 18:27:12 阅读更多 →
快速排序实战笔记:从分治原理到代码优化与边界排查

快速排序实战笔记:从分治原理到代码优化与边界排查

如果你和我一样,是靠刷 LeetCode 硬啃基础算法过来的,那“快速排序”这四个字你绝对不陌生。很多人在基础算法集训里把它当成一道“背模板题”——敲一遍快排代码、跑通几个用例,就觉得自己会了。但真到了手撕代码、处理大数据量、甚至面试被…

2026/9/24 18:27:12 阅读更多 →
从原理到实战:搭建轻量级沙箱环境与隔离技术解析

从原理到实战:搭建轻量级沙箱环境与隔离技术解析

说到沙箱技术,很多人的第一印象可能是留档取证或者安全分析人员的神秘工具,但把它放到日常软件工程里,它其实就是一个“能让你胆大心细地跑不受信任代码”的基础设施。我最早接触沙箱,是因为要分析一系列可疑的 Office 文档&#…

2026/9/24 18:27:12 阅读更多 →
【Coze】【视频】小人国风格动画工作流

【Coze】【视频】小人国风格动画工作流

今天给大家演示一个 微观小人国场景构建与多模态生成的 Coze 工作流。这个工作流的设计目标,是将用户输入的主题转化为成体系的微观生活场景,再通过大模型生成文本、图像与视频内容,最终形成可用于创作与展示的多模态成果。从场景文本构思,到文生图提示词,再到批量图像生成…

2026/9/24 18:27:12 阅读更多 →
MinioUtil工具类设计实战:Java对象存储封装与踩坑指南

MinioUtil工具类设计实战:Java对象存储封装与踩坑指南

做后端开发这几年,文件存储始终是个绕不开的话题。早期我接触过FastDFS,也折腾过自建FTP,后来云厂商的对象存储也用了一阵子,但版权费用和灵活性总让人不太舒服。直到在一个内部管理系统里遇到Minio,我才发现这个S3兼容…

2026/9/24 18:26:12 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →