自定义提示词
yaku 内置一套经过调优的翻译系统提示词。如果你想完全掌控 LLM 指令,可以整个替换成自己的提示词。
单次命令覆盖
Section titled “单次命令覆盖”yaku --to zh-CN --prompt my-prompt.txt "Hello, world"文件内容会作为系统提示词发送。yaku 原封不动地读取文件——没有模板变量,也不会合并。
yaku config set prompt /path/to/my-prompt.txt此设置会应用到所有翻译,直到你清除它:
yaku config set prompt ""命令行上的 --prompt 选项优先于配置文件的值。
编写自定义提示词
Section titled “编写自定义提示词”你的提示词会替换 yaku 的整个系统提示词。所有指令由你负责。至少需要包含:
- 指示只输出翻译结果(不加解释或注释)
- 指示保留段落结构和换行
- 目标语言(yaku 仍会将文字作为用户消息发送)
示例提示词文件
Section titled “示例提示词文件”You are a professional translator specializing in software documentation.
Translate the user's input to the target language.
Rules:- Output ONLY the translated text. No explanations, no wrapping quotes.- Preserve paragraph structure and line breaks exactly.- Keep code identifiers (variables, functions, file paths) in English.- Keep brand names (GitHub, Docker, Kubernetes) unchanged.- Use formal, precise language appropriate for technical documentation.保存为 my-prompt.txt 并使用:
yaku --to zh-CN --prompt my-prompt.txt -f docs.en.md哪些功能会被禁用
Section titled “哪些功能会被禁用”使用 --prompt 时,以下内置行为会被禁用:
- 内置翻译规则 — 8 条基础提示词不会被包含。
- 润色模式提示词 —
--mode polish不会生效,因为自定义提示词替换了一切。 - 格式专属规则 — Markdown 保留规则不会被附加(但 JSON/YAML 提取仍然有效——见下方)。
- 上下文注入 —
--context不会生效。
以下功能在自定义提示词下仍然有效:
- 术语表 — 翻译条目(词汇 → 翻译)和保留原文(
~)规则都会生效。术语表指令会附加在你的自定义提示词内容之后。使用--no-glossary可禁用。 - JSON/YAML 提取 — 结构化格式处理是预处理步骤,非提示词层面。
- 输出清理 — LLM 杂讯清除会对所有输出执行。
- 领域专属语气 — 为法律、医学或营销内容量身打造提示词。
- 严格输出格式 — 强制执行默认提示词未涵盖的特定格式规则。
- 实验 — 测试不同的提示策略,找出最适合你内容的方式。
- 从内置提示词出发。 阅读 yaku 的源码(
internal/prompt/system.go)查看默认规则,再据此修改。 - 先用短文字测试。 在处理大型文件前,先确认你的提示词能产出干净的输出。
- 保留”只输出翻译”规则。 没有这条规则,LLM 倾向加入解释,污染输出(不过 yaku 的清理器会拦截常见的模式)。