Zum Inhalt springen
Kostenlos registrieren
Codex

Codex-Provider: model_provider, Base URL und wire_api

Konfiguriere einen eigenen Codex-Provider mit model_provider, Base URL, wire_api, API Key und Model ID und behebe Provider-, 401- und 404-Fehler. Im Detail.

Kurzantwort

model_provider teilt Codex CLI mit, welchen Provider es verwenden soll. Sein Wert muss mit einer unter [model_providers.<id>] definierten Provider-ID übereinstimmen.

base_url ist der API-Endpunkt, an den Modell-Requests gesendet werden. Für einen OpenAI-kompatiblen Provider verweist er normalerweise auf einen Endpunkt im /v1-Stil.

wire_api legt das Anfrageprotokoll fest. Aktuelles Codex unterstützt nur responses und verwendet es auch ohne diese Einstellung.

Wann das wichtig ist

  • Du konfigurierst einen eigenen OpenAI-kompatiblen Provider
  • Codex meldet, dass der Provider nicht gefunden wird, oder Modell-Requests schlagen fehl
  • Du bist nicht sicher, worin sich model_provider von model unterscheidet
  • Du setzt BetterToken, OpenAI oder einen anderen Provider in einer config.toml ein
  • Du musst Base URL, API Key und Model ID voneinander trennen

Beziehungen der Felder

FeldZweck
model_providerWählt die aktive Provider-ID aus
[model_providers.<id>]Definiert die detaillierte Konfiguration eines Providers
nameAnzeigename für den Provider
base_urlAPI-Stammendpunkt
wire_apiAnfrageprotokoll des Providers; aktuell wird nur responses unterstützt.
modelStandard-Model-ID für das Hauptmodell
review_modelModell für Code-Review-Abläufe wie /review

Dateien finden und sichern

Wenn du ein eigenes CODEX_HOME festgelegt hast, bearbeite dort config.toml und auth.json. Andernfalls nutze ~/.codex unter macOS / Linux oder %USERPROFILE%\.codex unter Windows. CLI und App müssen dasselbe Verzeichnis nutzen. WSL hat ein eigenes Benutzerverzeichnis.

Beende Codex vor dem Bearbeiten vollständig. Sichere beide Dateien an einem privaten Ort. Lege fehlende Dateien an. Ersetze bestehende Einstellungen, ohne Schlüssel oder Tabellen zu duplizieren; behalte andere Einstellungen bei.

Empfohlenes Muster

config.toml bearbeiten

Diese Anleitung verwendet die benutzerweite config.toml. Oberste Schlüssel stehen vor allen TOML-Tabellen, nicht in [projects."<path>"]; diese Tabelle enthält den trust_level des Projekts. Provider-ID und Tabellenname müssen übereinstimmen. Bei Dateiauthentifizierung env_key und experimental_bearer_token aus dem ausgewählten Provider entfernen.

model_provider = "bettertoken"
model = "gpt-6-astra"
cli_auth_credentials_store = "file"
[model_providers.bettertoken]
name = "BetterToken"
base_url = "https://bettertoken.ai/v1"
wire_api = "responses"
requires_openai_auth = true
supports_websockets = false

Das Beispiel nutzt GPT-6 Astra (gpt-6-astra). Kopiere für ein anderes Modell die vollständige ID aus der model plaza und ersetze model. GPT, Kimi und GLM nutzen dieselbe Dateiauthentifizierung; die automatische Einrichtung ist für GPT verfügbar.

auth.json bearbeiten

auth.json befindet sich im selben Verzeichnis wie config.toml. Falls auth.json nicht existiert, erstelle die Datei in diesem Verzeichnis. Trage das folgende JSON als Dateiinhalt ein, ersetze YOUR_API_KEY durch deinen BetterToken API Key und speichere die Datei.

{
"auth_mode": "apikey",
"OPENAI_API_KEY": "YOUR_API_KEY"
}

Konfigurationsparameter

ParameterZweck und PositionStandardwerte und Beispiele
model_providerBenutzerkonfiguration, oberste Ebene; wählt die unten definierte ID.Standard: openai; hier bettertoken.
modelOberste Ebene; vollständige Model ID aus dem Modellplatz.Beispiel: gpt-6-astra; bei Bedarf ersetzen.
cli_auth_credentials_storeOberste Ebene; Speicher für Anmeldedaten.Hier file: liest auth.json im selben Verzeichnis.
nameProvider-Tabelle; nur der Anzeigename.BetterToken ist keine Model ID.
base_urlProvider-Tabelle; Base URL der Modell-API.https://bettertoken.ai/v1 verwenden; Codex ergänzt /responses.
wire_apiProvider-Tabelle; Anfrageprotokoll.Nur responses wird aktuell unterstützt und ist der Standard.
requires_openai_authProvider-Tabelle; OpenAI-Authentifizierung und Anmeldespeicher.Standard: false; hier true. Kein Schalter zum Erhalten von Anmeldedateien.
supports_websocketsProvider-Tabelle; Unterstützung für Responses WebSocket.Standard: false; hier bleibt HTTP/SSE aktiv.
auth_modeIn auth.json; Authentifizierungsmodus.Hier apikey; ersetzt die offizielle ChatGPT-Authentifizierung.
OPENAI_API_KEYIn auth.json; Schlüssel für API-Authentifizierung.YOUR_API_KEY durch den BetterToken API Key ersetzen.

Die Dateiauthentifizierung hier wechselt in den API-Key-Modus. Für den offiziellen Account verwende Anmeldung beibehalten; die Modi nicht mischen. Entscheidend ist das Authentifizierungsziel, nicht CLI, App oder Extension.

Optionale Anpassungen

Diese drei Einstellungen sind optional und für die Verbindung nicht erforderlich. Bei Bedarf in die vorhandene Tabelle [model_providers.bettertoken] einfügen; keine doppelte Tabelle erstellen.

request_max_retries = 4
stream_max_retries = 8
stream_idle_timeout_ms = 300000
ParameterZweck und PositionStandardwerte und Beispiele
request_max_retriesProvider-Tabelle; maximale Wiederholungen einer HTTP-Anfrage.Standard: 4; je nach Verbindung anpassen.
stream_max_retriesProvider-Tabelle; Verbindungswiederholungen nach Stream-Abbruch.Standard: 5; 8 ist ein optionaler benutzerdefinierter Wert.
stream_idle_timeout_msProvider-Tabelle; Stream-Inaktivitätslimit in Millisekunden.Standard: 300000; keine Gesamtdauer für die Aufgabe.

Konfigurationsebenen und alte Schlüssel

Modell- und Denkeinstellungen gehören nicht in [projects."<path>"]. Ein projektspezifisches Modell kann auf oberster Ebene der .codex/config.toml eines vertrauenswürdigen Projekts stehen; Provider und Authentifizierung bleiben in der Benutzerkonfiguration. Aktuelle Profile verwenden NAME.config.toml unter CODEX_HOME, ausgewählt mit codex --profile NAME, statt alter [profiles.NAME]-Tabellen oder des obersten profile-Schlüssels.

Neu starten und prüfen

Speichere beide Dateien. Starte eine neue Codex-CLI-Sitzung direkt im Terminal:

Terminal-Fenster
codex

Beende Codex App einschließlich der Hintergrundprozesse vollständig. Öffne die App erneut und erstelle eine neue lokale Aufgabe. Sende in jedem verwendeten Client eine kurze Anfrage. Eine normale Antwort bestätigt die Verbindung dieses Clients.

Fehlerbehebung

Prüfe bei 401, 403 oder einer Anmeldeaufforderung das aktive Verzeichnis, den Key in auth.json, auth_mode = apikey, cli_auth_credentials_store = file und requires_openai_auth = true. Prüfe bei Provider- oder Modellfehlern die passende Provider-ID, https://bettertoken.ai/v1, wire_api = responses und die Modellverfügbarkeit. Wenn Änderungen nicht greifen, prüfe Konfigurationsüberschreibungen und stelle sicher, dass CLI und App dasselbe CODEX_HOME nutzen.

Verwandte Dokumentation

Referenzen