Skip to content

LLM-Anbieter und -Modelle ​

Jede Übersetzungspipeline – translate-ui, translate-docs, translate-json und translate-svg – sendet Text über denselben anbieterunabhängigen Client an ein LLM. Bevor einer dieser Befehle ausgeführt werden kann, konfigurieren Sie mindestens einen Anbieter in ai-i18n-tools.config.json und legen Sie den passenden API-Schlüssel in Ihrer Umgebung oder in .env fest (integrierte Voreinstellungen außer Ollama). init schreibt einen Startblock provider / providers; Sie müssen weiterhin Anmeldeinformationen für die aktive Voreinstellung angeben.

Sie konfigurieren einmal in der Konfiguration, welchen API-Endpunkt aufgerufen werden soll und welche Modelle ausprobiert werden sollen; alle Übersetzungsbefehle teilen sich diese Einrichtung und denselben SQLite-Cache.

Die CLI löst den aktiven Anbieter aus dem übergeordneten Schlüssel provider (oder dem einzigen Eintrag in providers, wenn nur einer konfiguriert ist). Jeder Anbieterblock listet eine geordnete translationModels-Fallback-Kette auf; integrierte Voreinstellungen erben baseUrl und die API-Schlüssel-Umgebungsvariable automatisch (überschreiben Sie diese bei Bedarf pro Anbieter).

Integrierte Anbieter ​

Voreingestellte Anbieterschlüssel benötigen nur translationModels – Basis-URL und API-Schlüssel-Umgebungsvariable werden automatisch ausgefüllt:

AnbieterBasis-URLAPI-Schlüssel-Umgebungsvariable
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(keine)

Für jeden nicht voreingestellten Schlüssel legen Sie baseUrl und apiKeyEnv explizit in der Konfiguration fest.

Legen Sie den API-Schlüssel des aktiven Anbieters in Ihrer Umgebung oder in der Datei .env fest. Die CLI lädt .env automatisch aus dem Arbeitsverzeichnis, ohne bereits in der Shell festgelegte Variablen zu überschreiben. Siehe Umgebungsvariablen.

Modell-Fallback-Kette ​

translationModels ist eine geordnete Liste, keine Einzelwahl. Die CLI versucht das erste Modell; bei Anforderung, Analyse oder Fehlern bei falschen Skripten wechselt sie zum nächsten Eintrag. Konfigurieren Sie mehrere Modelle, damit ein vorübergehender Ausfall oder ein Modell, das mit einer Sprache Schwierigkeiten hat (z. B. romanisiertes Hindi anstelle von Devanagari), den gesamten Lauf nicht blockiert. Romanisierte Ausgabe wird für Sprachen mit nativer Schrift abgelehnt; eine Sprache, die romanisiert bleiben soll, muss mit einem expliziten -Latn-Untertag (z. B. hi-Latn) konfiguriert werden.

Auflösungsstufen (dedupliziert, Reihenfolge beibehalten):

PipelineReihenfolge
UI (translate-ui, Pluralformen, proofread-ui)localeModels(locale) → uiModels → translationModels
Dokumente, JSON, SVGlocaleModels(locale) → translationModels

Die optionale providers.<active>.uiModels ist eine reine UI-Liste, die nach jeder passenden pro-lokalen Überschreibung und vor der globalen translationModels-Kette versucht wird. Die optionale providers.<active>.localeModels ordnet einem BCP-47-Gebietsschema Modelle zu, die zuerst für dieses Gebietsschema in jeder Pipeline versucht werden (pt-br entspricht pt-BR). Wenn kein localeModels-Eintrag übereinstimmt, gelten nur die pipelinespezifischen Stufen.

Verschiedene Anbieter und Modelle variieren in Kosten, Geschwindigkeit und Qualität über Sprachen hinweg. Betrachten Sie die Standardliste von npx ai-i18n-tools init als Ausgangspunkt – erweitern Sie sie, wenn ein Gebietsschema durchweg schlechte Ergebnisse liefert, oder fügen Sie einen localeModels-Eintrag für dieses Gebietsschema hinzu. Vollständige Standardwerte und Begründung: Konfiguration – provider und providers.

UI-Strings: Optionale uiModels ermöglicht es Ihnen, translate-ui, Pluralgenerierung und proofread-ui über Premium-Modelle zu leiten, bevor die globale translationModels-Kette greift – nützlich, da UI-Texte kurz, aber benutzerorientiert sind.

Asiatische Locales: Optionale localeModels-Einträge für ja, ko, zh-Hans und zh-Hant werden in jeder Pipeline zuerst getestet; Modelle wie z-ai/glm-5.3 und minimax/minimax-m2.7 liefern bei CJK-Schriften oft bessere Ergebnisse als allgemeine Fallbacks.

Beispielkonfiguration (OpenRouter). translationModels und uiModels sind die Listen, die dieses Repository in ai-i18n-tools.config.json verwendet. localeModels ist eine optionale, empfohlene Erweiterung für CJK-Locales; dieses Repository definiert sie nicht.

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" ] }
      ]
    }
  }
}

Modelle validieren und vergleichen ​

Bevor Sie translationModels ändern, bestätigen Sie, dass jede ID noch beim aktiven Anbieter verfügbar ist:

bash
npx ai-i18n-tools check-models

check-models ruft den GET /models-Endpunkt des Anbieters auf, validiert jede ID von translationModels, uiModels und localeModels, meldet fehlende oder über expiration_date liegende IDs und beendet den Vorgang mit einem von Null verschiedenen Wert, wenn eine konfigurierte ID ungültig ist. Wenn der Anbieter Preise zurückgibt (OpenRouter tut dies), zeigt er auch geschätzte USD pro 1 Million Token an.

Durchsuchen Sie den vollständigen Katalog, der von einem Anbieter beworben wird:

bash
npx ai-i18n-tools list-models

Konfigurieren Sie Modelle anhand eines echten Übersetzungsbeispiels – jede eindeutige ID von translationModels, uiModels und localeModels wird isoliert ausgeführt, sodass Sie die tatsächliche Zeit, die Token-Nutzung und die Kosten vergleichen können:

bash
npx ai-i18n-tools bench-models

Überschreiben Sie den Beispieltext, die Gebietsschemas oder die Modellliste:

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

Befehlsdetails: CLI-Referenz.

Mehrere Anbieter ​

Wenn mehr als ein Anbieter konfiguriert ist, legen Sie den übergeordneten Schlüssel provider fest, um den Standard auszuwählen. Wechseln Sie pro Lauf, ohne die Konfiguration zu bearbeiten:

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

Jeder Provider-Block kann seine eigenen translationModels, optionalen uiModels und localeModels, maxTokens, temperature und requestTimeout (Sekunden) oder requestTimeoutMs definieren. Ein Timeout für den Provider überschreibt das übergeordnete requestTimeout / requestTimeoutMs. Ein veralteter übergeordneter openrouter-Block wird weiterhin akzeptiert und beim Laden automatisch zu providers.openrouter migriert.

Optionale pricing und modelPricing legen USD pro 1.000.000 Tokens (inputPerMTokens und outputPerMTokens) fest, wenn der Anbieter usage.cost weglässt. pricing ist der anbieterweite Standardwert; ein modelPricing-Eintrag überschreibt diesen für eine Modell-ID. OpenRouter gibt bereits die Kosten pro Aufruf zurück, lassen Sie daher beide bei diesem Anbieter leer. Ein vom Anbieter gemeldeter Kostenbetrag wird unverändert übernommen. Der Betrag ist in der Übersetzungszusammenfassung, usage und Nutzung & Kosten enthalten.

Ausführbares Beispiel mit vier Anbietern für dasselbe Dokument, inklusive Beispieltarifen: examples/multi-provider.

Weitere Referenzen ​

Veröffentlicht unter der MIT-Lizenz.