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:
| Anbieter | Basis-URL | API-Schlüssel-Umgebungsvariable |
|---|---|---|
openrouter | https://openrouter.ai/api/v1 | OPENROUTER_API_KEY |
openai | https://api.openai.com/v1 | OPENAI_API_KEY |
anthropic | https://api.anthropic.com/v1 | ANTHROPIC_API_KEY |
gemini | https://generativelanguage.googleapis.com/v1beta/openai | GOOGLE_API_KEY |
deepseek | https://api.deepseek.com | DEEPSEEK_API_KEY |
cerebras | https://api.cerebras.ai/v1 | CEREBRAS_API_KEY |
groq | https://api.groq.com/openai/v1 | GROQ_API_KEY |
mistral | https://api.mistral.ai/v1 | MISTRAL_API_KEY |
xai | https://api.x.ai/v1 | XAI_API_KEY |
nvidia | https://integrate.api.nvidia.com/v1 | NVIDIA_API_KEY |
alibaba | https://dashscope-intl.aliyuncs.com/compatible-mode/v1 | ALIBABA_API_KEY |
apifun | https://api.apikey.fun/v1 | APIFUN_API_KEY |
ollama | http://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):
| Pipeline | Reihenfolge |
|---|---|
UI (translate-ui, Pluralformen, proofread-ui) | localeModels(locale) → uiModels → translationModels |
| Dokumente, JSON, SVG | localeModels(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.
{
"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:
npx ai-i18n-tools check-modelscheck-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:
npx ai-i18n-tools list-modelsKonfigurieren 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:
npx ai-i18n-tools bench-modelsÜberschreiben Sie den Beispieltext, die Gebietsschemas oder die Modellliste:
npx ai-i18n-tools bench-models --text "Hello world" --source en --target de --model openai/gpt-4o-mini,anthropic/claude-3-haikuBefehlsdetails: 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:
npx ai-i18n-tools translate-docs -P anthropic
npx ai-i18n-tools bench-models -P deepseekJeder 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
- Konfiguration —
providerundproviders— Preset-Tabelle, benutzerdefinierte Endpunkte, Request-Timeouts, Kostensätze, OpenRouter-spezifisches Verhalten. - Architektur — LLM-Client — wie Modell-Fallback, Batching und Kostenreporting intern funktionieren.
- Umgebungsvariablen — Umgebungsvariablen für API-Schlüssel und Base-URL-Overrides.