Skip to content

Fournisseurs et modèles LLM

Chaque pipeline de traduction — translate-ui, translate-docs, translate-json et translate-svg — envoie du texte à un LLM via le même client indépendant du fournisseur. Avant que l'une de ces commandes ne puisse s'exécuter, configurez au moins un fournisseur dans ai-i18n-tools.config.json et définissez la clé API correspondante dans votre environnement ou .env (préréglages intégrés sauf Ollama). init écrit un bloc de démarrage provider / providers ; vous devez toujours fournir les informations d'identification pour le préréglage actif.

Vous configurez quel point de terminaison d'API appeler et quels modèles essayer une seule fois dans la configuration ; toutes les commandes de traduction partagent cette configuration et le même cache SQLite.

La CLI résout le fournisseur actif à partir de la clé provider de niveau supérieur (ou de la seule entrée dans providers lorsqu'un seul est configuré). Chaque bloc de fournisseur répertorie une chaîne de secours translationModels ordonnée ; les préréglages intégrés héritent automatiquement de baseUrl et de la variable d'environnement de clé API (les remplacer par fournisseur si nécessaire).

Fournisseurs intégrés

Les clés de fournisseur prédéfinies n'ont besoin que de translationModels — l'URL de base et la variable d'environnement de clé API sont renseignées automatiquement :

FournisseurURL de baseVariable d'environnement de la clé 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(aucun)

Pour toute clé non prédéfinie, définissez explicitement baseUrl et apiKeyEnv dans la configuration.

Définissez la clé API du fournisseur actif dans votre environnement ou votre fichier .env. La CLI charge automatiquement .env depuis le répertoire de travail sans écraser les variables déjà définies dans le shell. Voir Variables d'environnement.

Chaîne de secours du modèle

translationModels est une liste ordonnée, pas un choix unique. La CLI essaie le premier modèle ; en cas d'échec de la requête ou de l'analyse, elle passe à l'entrée suivante. Configurez plusieurs modèles afin qu'une panne transitoire ou un modèle qui a des difficultés avec une locale ne bloque pas l'exécution complète.

Niveaux de résolution (dédupliqués, ordre préservé) :

PipelineOrdre
UI (translate-ui, pluriels, proofread-ui)localeModels(locale)uiModelstranslationModels
Documents, JSON, SVGlocaleModels(locale)translationModels

La liste facultative providers.<active>.uiModels est une liste réservée à l'interface utilisateur, essayée après toute surcharge par locale correspondante et avant la chaîne globale translationModels. L'providers.<active>.localeModels facultatif mappe une locale BCP-47 aux modèles essayés en premier pour cette locale dans chaque pipeline (pt-br correspond à pt-BR). Lorsqu'aucune entrée localeModels ne correspond, seuls les niveaux spécifiques au pipeline s'appliquent.

Les différents fournisseurs et modèles varient en coût, en vitesse et en qualité selon les langues. Considérez la liste par défaut de npx ai-i18n-tools init comme un point de départ — étendez-la lorsqu'une locale produit constamment de mauvais résultats, ou ajoutez une entrée localeModels pour cette locale. Valeurs par défaut complètes et justification : Configuration — provider et providers.

Chaînes d'interface utilisateur : le uiModels facultatif vous permet d'acheminer le translate-ui, la génération au pluriel et le proofread-ui via des modèles premium avant la chaîne translationModels globale — utile car le texte de l'interface utilisateur est court mais destiné à l'utilisateur.

Paramètres régionaux asiatiques : les entrées localeModels facultatives pour ja, ko, zh-Hans et zh-Hant sont d'abord essayées dans chaque pipeline ; les modèles tels que z-ai/glm-5.2 et minimax/minimax-m2.7 sont souvent plus performants sur les scripts CJK que les solutions de repli à usage général.

Exemple de configuration (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" ] }
      ]
    }
  }
}

Valider et comparer les modèles

Avant de modifier translationModels, confirmez que chaque ID est toujours disponible sur le fournisseur actif :

bash
npx ai-i18n-tools check-models

check-models appelle le point de terminaison GET /models du fournisseur, valide chaque identifiant de translationModels, uiModels et localeModels, signale les identifiants manquants ou ayant dépassé expiration_date, et quitte avec un code non nul si un identifiant configuré est invalide. Lorsque le fournisseur renvoie des prix (OpenRouter le fait), il affiche également le coût estimé en USD par million de jetons.

Parcourir le catalogue complet annoncé par un fournisseur :

bash
npx ai-i18n-tools list-models

Évaluez les modèles configurés sur un échantillon de traduction réel — chaque ID unique de translationModels, uiModels et localeModels s'exécute de manière isolée afin que vous puissiez comparer le temps réel, l'utilisation des jetons et le coût :

bash
npx ai-i18n-tools bench-models

Remplacez le texte de l'échantillon, les locales ou la liste de modèles :

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

Détails de la commande : Référence CLI.

Plusieurs fournisseurs

Lorsque plusieurs fournisseurs sont configurés, définissez la clé provider de niveau supérieur pour sélectionner le fournisseur par défaut. Changez par exécution sans modifier la configuration :

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

Chaque bloc de fournisseur peut définir son propre translationModels, les uiModels et localeModels facultatifs, maxTokens, temperature et requestTimeoutMs. Un bloc openrouter de niveau supérieur hérité est toujours accepté et migré automatiquement vers providers.openrouter au chargement.

Exemple exécutable avec quatre fournisseurs sur le même document : examples/multi-provider.

Références supplémentaires

Publié sous licence MIT.