跳到內容

設定

yaku 將設定儲存在一個 YAML 檔案中。使用以下指令找到檔案位置:

~/.config/yaku/config.yaml
yaku config path

當你首次執行 yaku config set 時,檔案會自動建立。你也可以直接編輯它——yaku 會保留註解和格式。

欄位類型預設值說明
api-keystring自備 API 後端(Gemini、OpenAI、Anthropic)的 LLM API key。
default-targetstring預設目標語言。設定後可省略 --to
backendstringhostedLLM 後端:hostedgeminiopenaianthropic。設定時會驗證。
modelstringbackend 預設值覆蓋模型名稱(例如 gemini-2.5-flashgpt-4o-mini)。
api-basestring任何自備 API 後端的 API base URL 覆寫。常用於 OpenAI 相容供應商。
hosted-urlstringhttps://api.yakulang.com託管服務 API 端點。認證端點會自動推導(移除 api. 前綴)。
promptstring自訂系統提示詞檔案路徑。套用至每次翻譯。
~/.config/yaku/config.yaml
api-key: AIzaSy...your-gemini-key
default-target: zh-TW
backend: gemini
model: gemini-2.5-flash
Terminal window
# 設定一個值
yaku config set default-target zh-TW
# 讀取一個值(僅從檔案讀取,忽略環境變數)
yaku config get default-target
# 找到設定檔
yaku config path

環境變數會覆蓋設定檔的值。這在 CI/CD、容器或切換專案時很有用。

變數覆蓋的設定欄位範例
YAKU_API_KEYapi-keyexport YAKU_API_KEY=AIza...
YAKU_DEFAULT_TARGETdefault-targetexport YAKU_DEFAULT_TARGET=zh-TW
YAKU_BACKENDbackendexport YAKU_BACKEND=openai
YAKU_MODELmodelexport YAKU_MODEL=gpt-4o
YAKU_API_BASEapi-baseexport YAKU_API_BASE=https://api.groq.com/openai/v1
YAKU_HOSTED_URLhosted-urlexport YAKU_HOSTED_URL=https://api.staging.yakulang.com

YAKU_* 環境變數被設定時——即使是空字串——它會覆蓋對應的設定檔值。這能防止 key 來源失敗時產生靜默回退:

Terminal window
# 明確設為空 → 覆蓋設定檔,key 變成空的
YAKU_API_KEY="" yaku --backend gemini --to zh-TW "test"
# Error: YAKU_API_KEY is set but empty (check your key source).

YAKU_API_KEY 完全未設定(甚至沒有設為空字串),且設定檔中也沒有 api-key 時,yaku 會根據解析後的後端(包含 --backend 選項)檢查以下後端專屬的環境變數:

後端回退變數
geminiGOOGLE_API_KEY
openaiOPENAI_API_KEY
anthropicANTHROPIC_API_KEY

這表示你可以直接使用其他工具(如 Google Cloud SDK 或 OpenAI CLI)已有的環境變數,不需額外設定。搭配 --backend 即可在不同供應商之間自由切換:

Terminal window
export GOOGLE_API_KEY=your-gemini-key
export OPENAI_API_KEY=your-openai-key
yaku --backend gemini --to zh-TW "Hello"
yaku --backend openai --to zh-TW "Hello"

同一個設定在多處指定時,優先順序最高的來源勝出:

  1. 命令列選項(最高)— 例如 --to ja
  2. 環境變數 — 例如 YAKU_DEFAULT_TARGET=ja
  3. 設定檔~/.config/yaku/config.yaml
  4. 內建預設值(最低)

範例: 如果設定檔中有 default-target: zh-TW,但你執行 yaku --to ja,目標語言就是 ja

  • 缺少設定檔: yaku 使用內建預設值,不會報錯。
  • YAML 語法錯誤: yaku 在 stderr 記錄警告,然後以預設值繼續執行。
  • 未知的設定鍵: yaku config set 會拒絕不在上方列表中的鍵。
  • 無效的設定值: yaku config set 會驗證值。backend 必須是 hostedgeminiopenaianthropic 其中之一。default-target 必須是有效的 BCP 47 語言代碼。