跳到內容

自訂提示詞

yaku 內建一套經過調校的翻譯系統提示詞。如果你想完全掌控 LLM 指令,可以整個替換成自己的提示詞。

Terminal window
yaku --to zh-TW --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-TW --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 的清理器會攔截常見的模式)。