Skip to content

Provedores e modelos de LLM ​

Cada pipeline de tradução — translate-ui, translate-docs, translate-json e translate-svg — envia texto para um LLM através do mesmo cliente agnóstico de provedor. Antes que qualquer um desses comandos possa ser executado, configure pelo menos um provedor em ai-i18n-tools.config.json e defina a chave de API correspondente em seu ambiente ou .env (predefinições integradas, exceto Ollama). init escreve um bloco inicial provider / providers; você ainda deve fornecer credenciais para a predefinição ativa.

Você configura qual endpoint de API chamar e quais modelos tentar uma vez na configuração; todos os comandos de tradução compartilham essa configuração e o mesmo cache SQLite.

A CLI resolve o provedor ativo a partir da chave provider de nível superior (ou da única entrada em providers quando apenas um está configurado). Cada bloco de provedor lista uma cadeia de fallback translationModels ordenada; predefinições incorporadas herdam baseUrl e a variável de ambiente da chave de API automaticamente (substitua-as por provedor quando necessário).

Provedores integrados ​

As chaves de provedor predefinidas precisam apenas de translationModels — URL base e variável de ambiente da chave de API são preenchidas automaticamente:

ProvedorURL BaseVariável de ambiente da chave de API
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(nenhum)

Para qualquer chave não predefinida, defina baseUrl e apiKeyEnv explicitamente na configuração.

Defina a chave de API do provedor ativo em seu ambiente ou arquivo .env. A CLI carrega automaticamente .env do diretório de trabalho sem substituir variáveis já definidas no shell. Consulte Variáveis de ambiente.

Cadeia de fallback de modelo ​

translationModels é uma lista ordenada, não uma escolha única. A CLI tenta o primeiro modelo; se houver falha na solicitação, análise ou script incorreto, ela passa para a próxima entrada. Configure vários modelos para que uma interrupção transitória ou um modelo que tenha dificuldades com um local (por exemplo, hindi romanizado em vez de devanágari) não bloqueie toda a execução. A saída romanizada é rejeitada para locais de script nativo; um local que deve permanecer romanizado deve ser configurado com uma subtag -Latn explícita (por exemplo, hi-Latn).

Camadas de resolução (deduplicadas, ordem preservada):

PipelineOrdem
UI (translate-ui, plurais, proofread-ui)localeModels(locale) → uiModels → translationModels
Documentos, JSON, SVGlocaleModels(locale) → translationModels

O providers.<active>.uiModels opcional é uma lista exclusiva da UI tentada após qualquer substituição por localidade e antes da cadeia global translationModels. O providers.<active>.localeModels opcional mapeia uma localidade BCP-47 para modelos tentados primeiro para essa localidade em cada pipeline (pt-br corresponde a pt-BR). Quando nenhuma entrada de localeModels corresponde, apenas as camadas específicas do pipeline se aplicam.

Diferentes provedores e modelos variam em custo, velocidade e qualidade entre os idiomas. Trate a lista padrão de npx ai-i18n-tools init como um ponto de partida — expanda-a quando uma localidade produzir resultados consistentemente ruins ou adicione uma entrada de localeModels para essa localidade. Padrões completos e justificativa: Configuração — provider e providers.

Strings de UI: o uiModels opcional permite rotear translate-ui, geração plural e proofread-ui por meio de modelos premium antes da cadeia global de translationModels — útil porque o texto da UI é curto, mas voltado para o usuário.

Localidades asiáticas: entradas opcionais de localeModels para ja, ko, zh-Hans e zh-Hant são testadas primeiro em cada pipeline; modelos como z-ai/glm-5.3 e minimax/minimax-m2.7 geralmente apresentam melhor desempenho em scripts CJK do que os fallbacks de uso geral.

Configuração de exemplo (OpenRouter). translationModels e uiModels são as listas que este repositório usa em ai-i18n-tools.config.json. localeModels é um complemento opcional recomendado para localidades CJK; este repositório não o define.

json
{
  "provider": "openrouter",
  "providers": {
    "openrouter": {
      "translationModels": [
        "qwen/qwen3.7-max",
        "~anthropic/claude-sonnet-latest",
        "openai/gpt-5.4",
        "google/gemini-3.5-flash",
        "tencent/hy-mt2-30b-a3b",
        "mistralai/mistral-large",
        "openai/gpt-4o-mini",
        "cohere/command-r-plus-08-2024",
        "qwen/qwen-2.5-72b-instruct"  
      ],
      "uiModels": [
        "~anthropic/claude-sonnet-latest",
        "openai/gpt-5.4"
      ],
      "localeModels": [
        { "locale": "ja",      "models": [ "z-ai/glm-5.3", "minimax/minimax-m2.7" ] },
        { "locale": "ko",      "models": [ "z-ai/glm-5.3", "minimax/minimax-m2.7" ] },
        { "locale": "zh-Hans", "models": [ "z-ai/glm-5.3", "minimax/minimax-m2.7" ] },
        { "locale": "zh-Hant", "models": [ "z-ai/glm-5.3", "minimax/minimax-m2.7" ] }
      ]
    }
  }
}

Validar e comparar modelos ​

Antes de alterar translationModels, confirme se cada ID ainda está disponível no provedor ativo:

bash
npx ai-i18n-tools check-models

check-models chama o endpoint GET /models do provedor, valida cada id de translationModels, uiModels e localeModels, relata ids que estão ausentes ou após expiration_date e encerra com erro (non-zero) quando qualquer id configurado é inválido. Quando o provedor retorna preços (como o OpenRouter), ele também mostra o valor estimado em USD por 1 milhão de tokens.

Navegue pelo catálogo completo anunciado por um provedor:

bash
npx ai-i18n-tools list-models

Compare modelos configurados em uma amostra de tradução real — cada ID exclusivo de translationModels, uiModels e localeModels é executado isoladamente para que você possa comparar o tempo real, o uso de tokens e o custo:

bash
npx ai-i18n-tools bench-models

Substitua o texto de exemplo, os locais ou a lista de modelos:

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

Detalhes do comando: referência da CLI.

Vários provedores ​

Quando mais de um provedor estiver configurado, defina a chave provider de nível superior para selecionar o padrão. Alterne por execução sem editar a configuração:

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

Cada bloco de provedor pode definir seu próprio translationModels, uiModels e localeModels opcionais, maxTokens, temperature e requestTimeout (segundos) ou requestTimeoutMs. Um tempo limite no provedor substitui o requestTimeout / requestTimeoutMs de nível superior. Um bloco openrouter de nível superior legado ainda é aceito e migrado automaticamente para providers.openrouter no carregamento.

pricing e modelPricing opcionais definem o valor em USD por 1.000.000 de tokens (inputPerMTokens e outputPerMTokens) quando o provedor omite usage.cost. pricing é o padrão para todo o provedor; uma entrada modelPricing o substitui para um ID de modelo. O OpenRouter já retorna um custo por chamada, portanto, deixe ambos indefinidos nesse provedor. Um custo informado pelo provedor é mantido exatamente como retornado. O valor é incluído no resumo da tradução, em usage e em Uso e custos.

Exemplo executável com quatro provedores no mesmo documento, incluindo taxas de exemplo: examples/multi-provider.

Referência adicional ​

Lançado sob a Licença MIT.