Tutorial
Ungültiger OpenAI API key: Fehlerbehebung bei 401, Umgebungsvariablen und Projektkonfiguration
OpenAI 401, 403 und 429 unterscheiden, Umgebungsvariablen sowie Organisations- und Projekteinstellungen prüfen und Zugangsdaten mit einer schreibgeschützten Anfrage verifizieren.
TL;DR
Wenn OpenAI einen 401 mit der Meldung zurückgibt, dass der Schlüssel falsch sei, prüfe zuerst die Zugangsdaten, die Laufzeitvariablen sowie die Organisations- oder Projektkonfiguration. Bei 429 prüft man anhand des Fehlercodes die Rate, das Guthaben oder das Nutzungslimit. Auch bei 403 muss der konkrete Grund gelesen werden.
Vor dem Ausführen des Python-Beispiels in derselben Python-Umgebung python -m pip install requests ausführen.
Zuerst den Fehlertyp unterscheiden
| Antwort | Prüfrichtung |
|---|---|
| 401, Meldung Incorrect API key | Vollständiger Schlüssel, Schreibweise, Widerrufsstatus und Zugehörigkeit |
| 401, andere Authentifizierungshinweise | Konkrete Ursachen wie Organisationsmitgliedschaft, Berechtigungen oder IP-Einschränkungen |
| 403 | Grund in der Antwort lesen, einschließlich regionaler oder sonstiger Zugriffsbeschränkungen |
| 429 | Zwischen Ratenbegrenzung, Guthaben und Organisations- bzw. Projekt-Nutzungslimit unterscheiden |
Die Gültigkeit eines Schlüssels nicht allein am Präfix sk- festmachen. Vollständige Zugangsdaten, Zieldomain und Kontokonfiguration müssen alle passen.
Laufzeitumgebung in fünf Schritten prüfen
- Prüfen, ob OpenAI oder eine kompatible Plattform aufgerufen wird; jede Plattform verwendet ihren eigenen Schlüssel.
OPENAI_API_KEYdes tatsächlichen Prozesses prüfen und leere Werte, Platzhalter sowie falsches Kopieren ausschließen.- Die Ladepriorität der Umgebungsvariablen prüfen; Werte der Deployment-Plattform können die lokale
.envüberschreiben. - Prüfen, ob der Schlüssel widerrufen wurde und zu welcher Organisation und welchem Projekt er gehört. Falls Organisations- oder Projekt-Request-Header bewusst gesetzt wurden, deren Übereinstimmung bestätigen; nicht blind Request-Header hinzufügen.
- Nach dem Neuladen der Laufzeitumgebung eine schreibgeschützte Prüfung durchführen. Bei anhaltenden Fehlern die Request-ID der Antwort notieren und den Kontoverantwortlichen kontaktieren.
Lokale Prüfung ohne Ausgabe der Zugangsdaten
import os
name = "OPENAI_API_KEY"
key = os.environ.get(name, "")
print({
"variable": name,
"present": bool(key),
"length": len(key),
"has_whitespace": any(c.isspace() for c in key),
"wrapped_in_quotes": len(key) >= 2 and key[0] == key[-1] and key[0] in (chr(34), chr(39)),
})
Keine Debug-Logs verwenden, die vollständige Request-Header ausgeben, und den Schlüssel nicht in Hexadezimal umwandeln und in ein Ticket einfügen; auch das sind weiterhin vollständige Zugangsdaten.
Schreibgeschützte Validierungsanfrage
Den folgenden Code in der Serverumgebung ausführen. Er liest die Modellliste und übermittelt keine Inhaltserzeugung. Eingeschränkte Schlüssel können dennoch wegen unzureichender Leserechte abgelehnt werden; nicht jede Nicht-200-Antwort bedeutet einen beschädigten Schlüssel.
import os
import re
import requests
key = os.environ.get("OPENAI_API_KEY", "")
if not key or any(ord(c) < 33 or ord(c) > 126 for c in key) or any(c in key for c in (chr(34), chr(39))):
raise SystemExit("Check the key environment variable: empty, whitespace, control characters, or quotes")
try:
response = requests.get(
"https://api.openai.com/v1/models",
headers={"Authorization": f"Bearer {key}"},
timeout=30,
)
except requests.RequestException as exc:
raise SystemExit("Request failed: " + type(exc).__name__) from None
print("HTTP", response.status_code)
if response.ok:
print("Model list received")
else:
try:
body = response.json()
error = body.get("error", {})
message = str(error.get("message") or body.get("message") or "")
message = message.replace(key, "[REDACTED]")
message = re.sub(r"sk-[A-Za-z0-9_*.-]+", "[REDACTED]", message)
print("code:", error.get("code") or body.get("error_code"))
print("type:", error.get("type"))
print("message:", message)
print("request_id:", error.get("request_id") or response.headers.get("x-request-id"))
except ValueError:
print("Non-JSON response; check the base URL and network path")
Was beim Wechsel zu HiAPI zu prüfen ist
Bei der Nutzung von HiAPI den Schlüssel durch HIAPI_API_KEY ersetzen, als Base URL die HiAPI-Adresse verwenden und den Anfrage-Einstiegspunkt gemäß der Modellseite wählen. Zuerst die HiAPI-Authentifizierungsanleitung und den Leitfaden zur Schnittstellenauswahl lesen.
Die beiden Anfragen müssen unabhängig voneinander die Zugangsdaten der jeweiligen Plattform verwenden; den OpenAI-Schlüssel nicht an HiAPI senden, um eine sogenannte „isolierte Verifizierung“ durchzuführen.
Häufige Fragen
Ist ein Schlüssel allein wegen des korrekten Präfix immer nutzbar?
Das lässt sich nicht allein am Präfix beurteilen. Auch den vollständigen Wert, den Widerrufsstatus und die Kontokonfiguration prüfen.
Sollte man bei einem 401 sofort Guthaben aufladen?
Zuerst die in der Antwort genannte Authentifizierungsursache beheben; Fehler zu Guthaben oder Nutzungslimit erfordern eine gesonderte Behandlung anhand des jeweiligen Fehlercodes.
Müssen alle Anfragen Organisations- und Projekt-Request-Header enthalten?
Nicht blind hinzufügen. In Fällen mit mehreren Organisationen oder älteren Benutzerschlüsseln muss der Kontext korrekt gewählt werden; bereits gesetzte Request-Header müssen zu den verwendeten Zugangsdaten passen.
Kann ein HiAPI-Schlüssel direkt OpenAI-Anfragen stellen?
Nein, sie sind nicht austauschbar. HiAPI und OpenAI verwalten ihre Zugangsdaten jeweils selbst; Domain und Schlüssel müssen zusammenpassen.
Ähnliche Artikel
Alle Artikel ansehen →-
Tutorial
Recraft Creative Upscale Praxisbeispiele: Landschaften und Aquarell hochskalieren
Betrachten Sie die Texturveränderungen bei Holzhütte, See und Aquarellstadt, unterscheiden Sie vollständige Ergebnisse von Vorschauen und prüfen Sie neu gezeichnete Details.
-
Tutorial
Kling 4.0 Prompt-Sammlung: 6 Szenen zum direkten Kopieren für deine Videos
E-Commerce-Produkt, Food, Reise-Landschaft, Alltagsszene, leere Szene mit Ton und Bild-zu-Video – jede Szene mit echtem Ergebnisvideo, vollständigem Prompt und Ein-Klick-Vorausfüll-Link.
-
Tutorial
Wie verwende ich Kandinsky 6.0 Pro? In 5 Minuten zum ersten Video
3 Schritte zum Online-Testen, 3 Schritte zur API-Integration, inklusive direkt ausführbarem curl und Python, Bild-zu-Video-JSON, vierteiliger Prompt-Struktur und Hinweisen vor dem Go-live.