跳转到内容

配置

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 base URL 覆盖。常用于 OpenAI 兼容提供商。
hosted-urlstringhttps://api.yakulang.com托管服务 API 端点。认证端点会自动推导(移除 api. 前缀)。
promptstring自定义系统提示词文件路径。应用至每次翻译。
~/.config/yaku/config.yaml
api-key: AIzaSy...your-gemini-key
default-target: zh-CN
backend: gemini
model: gemini-2.5-flash
Terminal window
# 设置一个值
yaku config set default-target zh-CN
# 读取一个值(仅从文件读取,忽略环境变量)
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-CN
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-CN "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-CN "Hello"
yaku --backend openai --to zh-CN "Hello"

同一个设置在多处指定时,优先顺序最高的来源胜出:

  1. 命令行选项(最高)— 例如 --to ja
  2. 环境变量 — 例如 YAKU_DEFAULT_TARGET=ja
  3. 配置文件~/.config/yaku/config.yaml
  4. 内置默认值(最低)

示例: 如果配置文件中有 default-target: zh-CN,但你执行 yaku --to ja,目标语言就是 ja

  • 缺少配置文件: yaku 使用内置默认值,不会报错。
  • YAML 语法错误: yaku 在 stderr 记录警告,然后以默认值继续执行。
  • 未知的配置键: yaku config set 会拒绝不在上方列表中的键。
  • 无效的配置值: yaku config set 会验证值。backend 必须是 hostedgeminiopenaianthropic 其中之一。default-target 必须是有效的 BCP 47 语言代码。