DE ▾
API-Schlüssel erhalten

LLM Inference APIAnleitung

Fehlerbehebung bei häufigen AI-Chat-API-Fehlern

Das Debuggen einer KI-Chat-API-Integration scheitert oft an falsch konfigurierten Headern, missverstandenen Token-Limits oder unsachgemäßer Streaming-Handhabung. Dieser Leitfaden behandelt die häufigsten Implementierungsfehler, die Entwickler bei der Integration von OpenAI-kompatiblen Endpunkten erleben, und stellt sicher, dass dein Code in der Produktion zuverlässig läuft.

Aktualisiert:

Wichtige Punkte

  1. Berechnen Sie die Token-Nutzung immer basierend auf dem Tokenizer des spezifischen Modells, nicht nur an der Zeichenzahl, um Kontextfenster-Überläufe zu vermeiden.
  2. Behandeln Sie Streaming-Fehler, indem Sie den HTTP-Statuscode prüfen, bevor Sie den JSON-Stream parsen, da Netzwerkabbrüche dazu führen können, dass Streams in einem inkonsistenten Zustand verbleiben.
  3. Stellen Sie sicher, dass Ihre Anforderungsheader strikt mit der API-Spezifikation übereinstimmen, insbesondere die Felder Content-Type und Authorization, um stille 400- oder 401-Fehler zu verhindern.
  4. Implementieren Sie sofort Backoff-Strategien für das Ratenlimit, da das Überschreiten von 300 Anfragen pro Minute zu 429-Fehlern führt, die Ihre Anwendung anhalten.

Verständnis von Kontextfenstern

Einer der häufigsten Gründe für API-Ausfälle ist das Überschreiten des Kontextfensters. Das Kontextfenster definiert die Gesamtzahl der Token, die in einer einzelnen Anfrage erlaubt sind, einschließlich sowohl des Eingabe-Prompts als auch der generierten Vervollständigung. Wenn dieses Limit erreicht ist, lehnt die API die Anfrage mit einem Fehler ab, der oft anzeigt, dass die Sequenz zu lang ist.

Entwickler verwechseln oft die Zeichenanzahl mit der Token-Anzahl. Ein einzelnes Wort kann mehrere Token darstellen, abhängig vom Tokenizer. Zum Beispiel ermöglicht ein Kontextfenster mit 100.000 Token, wie es unser Inferenz-API bietet, eine umfangreiche Gesprächsverlauf oder die Verarbeitung großer Dokumente, aber es ist nicht unendlich.

  • Token-Nutzung überwachen: Verwende den offiziellen Tokenizer für dein Modell, um Token genau zu zählen, bevor du eine Anfrage sendest.
  • Intelligent kürzen: Wenn du das Limit überschreitest, entferne die ältesten Nachrichten aus dem Gesprächsverlauf, anstatt die neuesten.
  • Overhead berücksichtigen: Lege Token für die Antwort des Modells zurück. Wenn dein Prompt 63.000 Token verbraucht, bleiben dir nur noch 1.000 Token für die Vervollständigung.

Die Nichtverwaltung dieses Limits führt zu abgebrochenen Verbindungen oder unvollständigen Antworten. Überprüfe deine Token-Anzahlen immer anhand der Modell-Dokumentation, bevor du in die Produktion gehst.

Handling von Streaming-Fehlern

Streaming-Antworten über Server-Sent Events (SSE) sind wichtig für eine gute Benutzererfahrung, bringen aber Komplexität bei der Fehlerbehandlung mit sich. Im Gegensatz zu Standard-JSON-Antworten kann ein Stream mitten in der Übertragung unterbrochen werden. Bei einem Netzwerkfehler kann dein Client teilweise Daten empfangen, was den Stream in einen undefinierten Zustand versetzt.

Bei der Implementierung eines Stream-Consumers musst du den Lebenszyklus des Streams sorgfältig handhaben. Prüfe den HTTP-Statuscode, bevor du versuchst, den Stream zu parsen. Wenn die Verbindung abbricht, solltest du den Fehler protokollieren und entscheiden, ob du ihn wiederholst oder eine Nachricht an den Benutzer ausgibst.

Stelle außerdem sicher, dass dein Client den Streamende-Marker korrekt verarbeitet. Einige Bibliotheken erwarten ein bestimmtes Schließungsereignis, während andere sich auf das Schließen der Verbindung verlassen. Dies zu missverstehen, kann zu hängenden Prozessen oder Speicherlecks führen.

Implementiere immer einen Timeout für deine Stream-Anfragen. Wenn die API innerhalb einer angemessenen Zeit keine Antwort sendet, brich die Anfrage ab, um Ressourcen freizugeben. Dies ist entscheidend für die Stabilität in Umgebungen mit hoher Parallelität.

Token-Zählung und Grenzwerte

Die Token-Zählung dient nicht nur dazu, innerhalb des Kontextfensters zu bleiben, sondern auch dem Kostenmanagement. Jedes Token hat einen bestimmten Preis, und eine Fehlkalkulation der Nutzung kann zu unerwarteten Rechnungen führen. Obwohl unsere Preise transparent sind und Token-Preise für Input und Output ausweisen, musst du die Nutzung dennoch genau verfolgen.

Die meisten Entwickler verwenden eine Bibliothek zur Token-Zählung, aber es ist kritisch, den richtigen Tokenizer für das verwendete Modell zu verwenden. Verschiedene Modelle verwenden verschiedene Tokenizer, und die Verwendung des falschen kann zu erheblichen Diskrepanzen bei den gezählten Token führen. Ein auf englischen Text trainierter Tokenizer kann beispielsweise Interpunktion anders behandeln als einer, der auf Code trainiert wurde.

Behalte deine Nutzungslimits im Auge. Unsere API erlaubt 300 Anfragen pro Minute pro Schlüssel. Wenn du dieses Limit überschreitest, erhältst du einen 429-Fehler „Zu viele Anfragen“. Die Implementierung eines einfachen Zählers in deiner Anwendung kann dir helfen, innerhalb dieser Grenzen zu bleiben und Dienstunterbrechungen zu vermeiden.

Denke daran, dass Token-Anzahlen zwischen verschiedenen Implementierungen desselben Tokenizers leicht variieren können. Teste deine Token-Zählungslogik immer mit einigen bekannten Eingaben, um die Konsistenz zu gewährleisten.

Fallstricke bei der Header-Konfiguration

Headers sind die Konfigurationsebene deiner API-Anfragen. Eine falsche Konfiguration ist eine häufige Ursache für 400 Bad Request- oder 401 Unauthorized-Fehler. Die zwei wichtigsten Headers sind Content-Type und Authorization.

Der Content-Type-Header muss auf application/json gesetzt werden. Wenn er fehlt oder falsch ist, kann die API deinen Anfragekörper möglicherweise nicht korrekt parsen. Der Authorization-Header muss deinen API-Schlüssel im Format Bearer YOUR_API_KEY enthalten. Ein häufiger Fehler ist das Vergessen des Bearer-Präfixes, was zu einem Authentifizierungsfehler führt.

  • Auf Tippfehler prüfen: Stelle sicher, dass dein API-Schlüssel korrekt kopiert wurde, einschließlich aller Leerzeichen oder Zeilenumbrüche am Ende.
  • Header überprüfen: Verwende ein Tool wie curl oder Postman, um die gesendeten Header zu inspizieren.
  • Achte auf die Groß- und Kleinschreibung: Einige APIs sind bei Header-Namen sensitiv, obwohl die meisten modernen APIs dies nicht sind.

Überprüfe deine Header immer, bevor du eine Anfrage sendest. Ein kleiner Fehler in einem Header kann dazu führen, dass die gesamte Anfrage fehlschlägt, was zu Verwirrung und verschwendeter Debugging-Zeit führt.

Ratenlimit-Verwaltung

Ratenlimits dienen der fairen Nutzung und der Verhinderung von Missbrauch. Unsere API erlaubt 300 Anfragen pro Minute pro Schlüssel. Wenn du dieses Limit überschreitest, erhältst du einen 429 Too Many Requests-Fehler. Dieser Fehler enthält einen Retry-After-Header, der angibt, wie lange du warten solltest, bevor du eine weitere Anfrage stellst.

Um Ratenlimits effektiv zu verwalten, implementiere eine Backoff-Strategie. Warte anstatt sofortiger Wiederholungen einen Zeitraum, der mit jeder Wiederholung exponentiell ansteigt. Dies verhindert, dass deine Anwendung die API zu Stoßzeiten überlastet.

Überwache deine Nutzungsmetriken. Die meisten APIs bieten ein Dashboard oder einen API-Endpunkt zur Verfolgung des Anfragevolumens. Nutze diese Daten, um das Anfrageverhalten deiner Anwendung zu optimieren. Wenn du zu viele kleine Anfragen stellst, überlege, diese zu bündeln.

Denke daran, dass Ratenlimits pro Schlüssel und nicht pro Konto gelten. Wenn du mehrere Schlüssel hast, hat jeder Schlüssel sein eigenes Limit. Plane die Verteilung deiner Schlüssel entsprechend, um unerwartete Limits nicht zu überschreiten.

Interpretation von Fehlercodes

Das Verständnis von Fehlercodes ist entscheidend für das Debugging. Die häufigsten Fehler, denen du begegnen wirst, sind 400 Ungültige Anfrage, 401 Nicht autorisiert, 429 Zu viele Anfragen und 500 Interner Serverfehler.

  • 400 Ungültige Anfrage: Dies deutet normalerweise auf ein Problem mit dem Anfragekörper hin, wie fehlende Felder oder ungültiges JSON. Prüfe die Fehlermeldung, um Details darüber zu erhalten, welches Feld falsch ist.
  • 401 Unauthorized: Dies deutet auf ein Problem mit deinem API-Schlüssel hin. Überprüfe, ob der Schlüssel korrekt ist und nicht widerrufen wurde.
  • 429 Too Many Requests: Dies bedeutet, dass du das Ratenlimit überschritten hast. Implementiere eine Backoff-Strategie, um dies angemessen zu behandeln.
  • 500 Internal Server Error: Dies deutet auf ein Problem auf Serverseite hin. Wiederhole die Anfrage nach einer kurzen Verzögerung.

Protokolliere immer den Antwortkörper des Fehlers. Er enthält oft wertvolle Informationen darüber, was schiefgelaufen ist, wie das spezifische Feld, das den Fehler verursacht hat. Dies kann dir Stunden an Debugging-Zeit sparen.

Anfragekörper optimieren

Der Anfragekörper ist der Kern deiner API-Interaktion. Seine Optimierung kann die Leistung verbessern und die Kosten senken. Ein häufiger Fehler ist das Senden zu vieler Daten in einer einzigen Anfrage. Wenn dein Prompt zu groß ist, kannst du das Kontextfenster überschreiten oder höhere Kosten verursachen.

Strukturiere dein JSON sorgfältig. Stelle sicher, dass alle erforderlichen Felder vorhanden sind und optionale Felder nur bei Bedarf enthalten sind. Wenn du beispielsweise kein Streaming benötigst, füge den Parameter stream nicht hinzu. Dies reduziert die Payload-Größe und vereinfacht die Antwort.

Verwende Tools wie curl oder Postman, um deine Anfragekörper zu testen. So kannst du überprüfen, ob das JSON gültig ist und die API es korrekt interpretiert. Außerdem hilft dir das dabei, unnötige Daten zu identifizieren, die gesendet werden.

Berücksichtige schließlich das Cachen von Antworten für identische Anfragen. Wenn du denselben Prompt mehrmals sendest, kannst du die Antwort lokal speichern und die API-Anfrage erneut vermeiden. Dies kann die Latenz und die Kosten für wiederkehrende Aufgaben erheblich reduzieren.

Debugging von Function Calling

Function Calling ermöglicht es dem Modell, Funktionen basierend auf der Benutzereingabe auszuführen. Das Debugging von Function Calling kann herausfordernd sein, da es mehrere Schritte umfasst: Senden der Anfrage, Empfangen des Function Calls, Ausführen der Funktion und Senden des Ergebnisses zurück an das Modell.

Stelle sicher, dass deine Funktionsdefinitionen genau sind. Das Schema muss der tatsächlichen Funktionssignatur entsprechen. Wenn das Schema falsch ist, kann das Modell ungültige Argumente generieren, was zu Fehlern führt, wenn du versuchst, die Funktion auszuführen.

Logge die Argumente des Function Calls und die Funktionenausgabe. So kannst du überprüfen, ob das Modell die korrekten Argumente generiert und ob deine Funktion wie erwartet ausgeführt wird. Bei einem Fehler hilft das Log, das Problem zu identifizieren.

Behandle Fehler angemessen. Wenn die Funktionsausführung fehlschlägt, sende eine Fehlermeldung an das Modell, damit es seine Antwort anpassen kann. Dies verbessert die Benutzererfahrung und ermöglicht es dem Modell, sich von Fehlern zu erholen.

Fragen und Antworten

Wie berechne ich die Token-Nutzung für meine API-Anfragen?

Verwende die offiziene Tokenizer-Bibliothek, die für dein spezifisches Modell bereitgestellt wird. Die Zeichenzahl ist kein zuverlässiger Indikator für die Token-Anzahl, da verschiedene Zeichen unterschiedliche Anzahl von Token darstellen können. Die meisten SDKs bieten eine Utility-Funktion zur genauen Zählung von Token.

Was passiert, wenn ich das Ratenlimit überschreite?

Du erhältst einen 429 Too Many Requests-Fehler. Die Antwort enthält einen <code>Retry-After</code>-Header, der angibt, wie lange du warten solltest, bevor du es erneut versuchst. Es wird empfohlen, eine exponentielle Backoff-Strategie zu implementieren, um dies angemessen zu behandeln.

Kann ich jedes OpenAI-kompatible SDK mit dieser API verwenden?

Ja, jedes SDK, das das OpenAI-API-Format unterstützt, kann verwendet werden, indem einfach die Umgebungsvariablen <code>base_url</code> und <code>API_KEY</code> geändert werden. Dies umfasst Python, Node.js und andere beliebte Sprachen.

Wie behandle ich Streaming-Fehler in meiner Anwendung?

Prüfe den HTTP-Statuscode, bevor du den Stream parst. Wenn die Verbindung abbricht, logge den Fehler und entscheide, ob du ihn erneut versuchen oder eine Nachricht an den Benutzer anzeigen möchtest. Implementiere einen Timeout, um hängende Prozesse zu verhindern.

Dein Schlüssel ist nur ein Formular entfernt

Erstelle ein Konto, kopiere den Schlüssel, ändere die Basis-URL. Das ist die gesamte Einrichtung.

API-Schlüssel erhalten