Skip to content

LLM 提供商和模型

每个翻译流水线 —— translate-uitranslate-docstranslate-jsontranslate-svg —— 都通过同一个与提供商无关的客户端将文本发送给 LLM。在这些命令运行之前,请在 ai-i18n-tools.config.json 中配置至少一个提供商,并在您的环境或 .env 中设置匹配的API 密钥(内置预设 Ollama 除外)。init 会写入一个初始的 provider / providers 块;您仍需为当前使用的预设提供凭据。

您只需在配置中设置一次要调用的 API 端点要尝试的模型;所有翻译命令都会共享该设置以及同一个 SQLite 缓存。

CLI从顶级provider键(或providers中唯一配置的条目)解析活动提供商。每个提供商块都列出了一个有序的translationModels回退链;内置预设自动继承baseUrl和API密钥环境变量(必要时可为每个提供商覆盖它们)。

内置提供商

预设提供商键只需要translationModels——基本URL和API密钥环境变量会自动填充:

提供商基本 URLAPI 密钥环境变量
openrouterhttps://openrouter.ai/api/v1OPENROUTER_API_KEY
openaihttps://api.openai.com/v1OPENAI_API_KEY
anthropichttps://api.anthropic.com/v1ANTHROPIC_API_KEY
geminihttps://generativelanguage.googleapis.com/v1beta/openaiGOOGLE_API_KEY
deepseekhttps://api.deepseek.comDEEPSEEK_API_KEY
cerebrashttps://api.cerebras.ai/v1CEREBRAS_API_KEY
groqhttps://api.groq.com/openai/v1GROQ_API_KEY
mistralhttps://api.mistral.ai/v1MISTRAL_API_KEY
xaihttps://api.x.ai/v1XAI_API_KEY
nvidiahttps://integrate.api.nvidia.com/v1NVIDIA_API_KEY
alibabahttps://dashscope-intl.aliyuncs.com/compatible-mode/v1ALIBABA_API_KEY
apifunhttps://api.apikey.fun/v1APIFUN_API_KEY
ollamahttp://localhost:11434/v1(无)

对于任何非预设键,请在配置中明确设置baseUrlapiKeyEnv

在您的环境或.env文件中设置活动提供商的API密钥。CLI会自动从工作目录加载.env,而不会覆盖shell中已设置的变量。请参阅环境变量

模型回退链

translationModels有序列表,而不是单一选择。CLI会尝试第一个模型;如果请求或解析失败,它会移到下一个条目。配置多个模型,这样瞬时中断或某个模型在特定区域设置下表现不佳时,就不会阻碍整个运行。

分辨率层级(去重,保留顺序):

管道顺序
UI (translate-ui, 复数, proofread-ui)localeModels(locale)uiModelstranslationModels
文档,JSON,SVGlocaleModels(locale)translationModels

可选的 providers.<active>.uiModels 是一个仅在 UI 中使用的列表,在任何匹配的每种语言覆盖项之后和全局 translationModels 链之前尝试。可选的 providers.<active>.localeModels 将 BCP-47 语言环境映射到每个管道中为该语言环境首先尝试的模型(pt-br 匹配 pt-BR)。当没有 localeModels 条目匹配时,仅应用特定管道的层级。

不同的提供商和模型在不同语言的成本、速度和质量上有所不同。将 npx ai-i18n-tools init 提供的默认列表视为起点——当某个语言环境始终产生较差结果时,扩展该列表,或为该语言环境添加一个 localeModels 条目。完整的默认值和理由:配置 — providerproviders

UI 字符串: 可选的 uiModels 允许你在全局 translationModels 链之前,将 translate-ui、复数生成和 proofread-ui 路由到高级模型——这很有用,因为 UI 文案简短但面向用户。

亚洲区域设置: 针对 jakozh-Hanszh-Hant 的可选 localeModels 条目会在每个流水线中优先尝试;像 z-ai/glm-5.2minimax/minimax-m2.7 这样的模型在 CJK 脚本上的表现通常优于通用后备模型。

配置示例(OpenRouter):

json
{
  "provider": "openrouter",
  "providers": {
    "openrouter": {
      "translationModels": [
        "google/gemini-2.5-flash",
        "meta-llama/llama-3.3-70b-instruct",
        "openai/gpt-4o-mini",
        "google/gemma-4-26b-a4b-it",
        "anthropic/claude-3-haiku",
        "z-ai/glm-5.2",
        "google/gemini-3-flash-preview",
        "~anthropic/claude-sonnet-latest"
      ],
      "uiModels": [
        "~anthropic/claude-sonnet-latest",
        "z-ai/glm-5.2"
      ],
      "localeModels": [
        { "locale": "ja",      "models": [ "z-ai/glm-5.2", "minimax/minimax-m2.7" ] },
        { "locale": "ko",      "models": [ "z-ai/glm-5.2", "minimax/minimax-m2.7" ] },
        { "locale": "zh-Hans", "models": [ "z-ai/glm-5.2", "minimax/minimax-m2.7" ] },
        { "locale": "zh-Hant", "models": [ "z-ai/glm-5.2", "minimax/minimax-m2.7" ] }
      ]
    }
  }
}

验证和比较模型

在更改translationModels之前,请确认每个ID在活动提供商上仍然可用:

bash
npx ai-i18n-tools check-models

check-models 调用提供者的 GET /models 端点,验证来自 translationModelsuiModelslocaleModels 的每个 id,报告缺失或超过 expiration_date 的 id,并在任何配置的 id 无效时以非零值退出。当提供者返回定价(OpenRouter 会这样做)时,它还会显示每 1M 个 token 的估计 USD。

浏览提供商宣传的完整目录:

bash
npx ai-i18n-tools list-models

在真实翻译样本上对已配置的模型进行基准测试 — translationModelsuiModelslocaleModels 中的每个唯一 id 都会独立运行,以便你比较实际耗时、token 用量和成本:

bash
npx ai-i18n-tools bench-models

覆盖示例文本、区域设置或模型列表:

bash
npx ai-i18n-tools bench-models --text "Hello world" --source en --target de --model openai/gpt-4o-mini,anthropic/claude-3-haiku

命令详情:CLI 参考

多个提供商

当配置了多个提供商时,设置顶级provider键以选择默认提供商。无需编辑配置即可在每次运行中切换:

bash
npx ai-i18n-tools translate-docs -P anthropic
npx ai-i18n-tools bench-models -P deepseek

每个提供商块可以定义自己的 translationModels,可选的 uiModelslocaleModelsmaxTokenstemperaturerequestTimeoutMs。仍然接受旧版顶级 openrouter 块,并在加载时自动迁移到 providers.openrouter

在同一文档中使用四个提供程序的运行示例:examples/multi-provider

更多参考

基于 MIT 许可证发布。