跳转到内容

自定义提示词

yaku 内置一套经过调优的翻译系统提示词。如果你想完全掌控 LLM 指令,可以整个替换成自己的提示词。

Terminal window
yaku --to zh-CN --prompt my-prompt.txt "Hello, world"

文件内容会作为系统提示词发送。yaku 原封不动地读取文件——没有模板变量,也不会合并。

Terminal window
yaku config set prompt /path/to/my-prompt.txt

此设置会应用到所有翻译,直到你清除它:

Terminal window
yaku config set prompt ""

命令行上的 --prompt 选项优先于配置文件的值。

你的提示词会替换 yaku 的整个系统提示词。所有指令由你负责。至少需要包含:

  1. 指示只输出翻译结果(不加解释或注释)
  2. 指示保留段落结构和换行
  3. 目标语言(yaku 仍会将文字作为用户消息发送)
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 并使用:

Terminal window
yaku --to zh-CN --prompt my-prompt.txt -f docs.en.md

使用 --prompt 时,以下内置行为会被禁用

  • 内置翻译规则 — 8 条基础提示词不会被包含。
  • 润色模式提示词--mode polish 不会生效,因为自定义提示词替换了一切。
  • 格式专属规则 — Markdown 保留规则不会被附加(但 JSON/YAML 提取仍然有效——见下方)。
  • 上下文注入--context 不会生效。

以下功能在自定义提示词下仍然有效

  • 术语表 — 翻译条目(词汇 → 翻译)和保留原文(~)规则都会生效。术语表指令会附加在你的自定义提示词内容之后。使用 --no-glossary 可禁用。
  • JSON/YAML 提取 — 结构化格式处理是预处理步骤,非提示词层面。
  • 输出清理 — LLM 杂讯清除会对所有输出执行。
  • 领域专属语气 — 为法律、医学或营销内容量身打造提示词。
  • 严格输出格式 — 强制执行默认提示词未涵盖的特定格式规则。
  • 实验 — 测试不同的提示策略,找出最适合你内容的方式。
  • 从内置提示词出发。 阅读 yaku 的源码(internal/prompt/system.go)查看默认规则,再据此修改。
  • 先用短文字测试。 在处理大型文件前,先确认你的提示词能产出干净的输出。
  • 保留”只输出翻译”规则。 没有这条规则,LLM 倾向加入解释,污染输出(不过 yaku 的清理器会拦截常见的模式)。