Wichtigste Erkenntnisse
- Context windows combine prompt and completion, so long histories drain limits faster than expected.
- Beim Streaming müssen SSE-Ereignisse sorgfältig verarbeitet werden, um beschädigtes JSON oder verlorene Tokens zu vermeiden.
- JSON mode demands strict schema adherence; malformed responses cause silent parsing failures.
- Prepaid-Crypto-Abrechnung bedeutet, dass Fehler kostenlos sind, aber die Token-Zählung muss präzise sein, um Überraschungen zu vermeiden.
Warum Ihr API-Schlüssel abgelehnt werden könnte
API-Schlüssel werden abgelehnt, wenn der Client fehlerhafte Header sendet oder die Limits des Anforderungstextes überschreitet. Der Server validiert den Authentifizierungsheader, bevor er die Logik verarbeitet. Wenn der Header fehlt oder zusätzliche Leerzeichen enthält, schlägt die Anforderung sofort fehl.
Eine weitere häufige Ursache ist das Senden eines Payloads, das das 8-MB-Body-Größenlimit überschreitet. Große Context Windows mit vielen Nachrichten können diesen Schwellenwert leicht überschreiten. Überprüfen Sie die Länge Ihres Nachrichtenarrays und die Token-Anzahl, bevor Sie senden.
- Stellen Sie sicher, dass der Authorization-Header das 'Bearer'-Präfix korrekt verwendet.
- Verify the request body size stays under 8 MB.
- Stellen Sie sicher, dass der API-Schlüssel aktiv und nicht abgelaufen ist.
Verständnis der Context-Window-Beschränkungen
Das Context Window umfasst sowohl den Eingabe-Prompt als auch die generierte Antwort. Unsere API unterstützt ein 100.000-Token-Context Window, aber Sie müssen beide Seiten berücksichtigen. Wenn Sie 80.000 Tokens an Kontext senden, bleiben Ihnen nur noch 20.000 Tokens für die Antwort.
Die meisten Modelle haben standardmäßig eine kleine Begrenzung für die Token-Ausgabe, wenn Sie max_tokens nicht angeben. Dies kann lange Antworten unerwartet abschneiden. Legen Sie max_tokens nur dann auf Ihre gewünschte Länge fest, wenn Sie eine Obergrenze wünschen. Beachten Sie, dass die Begrenzung für die gesamte Anfrage gilt, nicht nur für den Prompt.
Streamingunterbrechungen korrekt behandeln
Das Streaming über Server-Sent Events (SSE) erfordert eine robuste Fehlerbehandlung. Wenn die Verbindung abbricht, können Sie das letzte Token oder die Nutzungsmetadaten verlieren. Puffern Sie immer eingehende Chunks und stellen Sie die vollständige Antwort auf der Client-Seite wieder her.
Die Token-Nutzungsdaten werden normalerweise im letzten Chunk des Streams gesendet. Wenn Sie die Verbindung vorzeitig schließen, könnten Sie die genaue Token-Anzahl verpassen. Dies beeinträchtigt die Abrechnungsgenauigkeit in Prepaid-Systemen. Implementieren Sie einen Wiederholungsmechanismus mit exponentiellem Backoff, um vorübergehende Netzwerkprobleme zu behandeln.
Verwenden Sie einen dedizierten Streaming-Client, der die SSE-Parsing automatisch verarbeitet. Dies reduziert das Risiko von Parsing-Fehlern und stellt sicher, dass Sie alle Daten erfassen.
Fehler beim Parsen des JSON-Modus
Bei Verwendung von response_format: {"type": "json_object"} muss das Modell gültiges JSON zurückgeben. Jede Abweichung führt zu Parsing-Fehlern in Ihrer Anwendung. Stellen Sie sicher, dass Ihre Prompt das Modell explizit anweist, nur JSON auszugeben.
Manchmal fügt das Modell Markdown-Codeblöcke um das JSON ein, was strenge Parser beschädigt. Entfernen Sie die -Wrapper vor dem Parsen. Überprüfen Sie zudem die JSON-Struktur auf der Clientseite, bevor Sie die Daten verwenden.
Verwenden Sie eine Schema-Validierungsbibliothek, um Fehler frühzeitig zu erkennen. Dies verhindert Abstürze, wenn das Modell unerwartete Schlüssel oder Typen zurückgibt.
Überraschungen bei der Tokenzählung und Abrechnung
Die Prepaid-Abrechnung berechnet nur die tatsächliche Token-Nutzung. Fehler und Ablehnungen sind kostenlos, was ein erheblicher Vorteil gegenüber Abomodellen ist. Die Token-Zählung kann jedoch schwierig sein, wenn Sie den gesamten Kontext nicht berücksichtigen.
Jede Nachricht im Gesprächsverlauf zählt zum Eingabe-Token-Limit. Lange Unterhaltungen lassen Ihre prepaid-Guthaben schneller schwinden, als Sie erwarten würden. Überwachen Sie Ihre Nutzung regelmäßig, um zu vermeiden, dass Ihnen die Guthaben während einer Sitzung ausgehen.
Richten Sie Benachrichtigungen für niedrige Guthabenstände ein. So stellen Sie sicher, dass Sie aufladen können, bevor Ihre Anfragen fehlschlagen. Denken Sie daran, dass Guthaben niemals verfallen, sodass Sie jederzeit aufladen können, wenn es Ihnen passt.
Vermeidung von weichen Ablehnungen bei NSFW-Prompts
Weiche Ablehnungen treten auf, wenn das Modell zögert oder eine teilweise Antwort anstelle einer direkten Antwort liefert. Dies geschieht häufig bei kontroversen oder erwachsenen Themen. Selbst bei einem unzensierten Modell können bestimmte Auslöser zu Zögern führen.
Passen Sie den temperature-Parameter an, um die Zufälligkeit zu reduzieren. Eine niedrigere Temperatur macht das Modell deterministischer und weniger anfällig für vorsichtige Formulierungen. Stellen Sie außerdem sicher, dass Ihre Eingabe klar und direkt ist. Vermeiden Sie mehrdeutige Formulierungen, die das Modell verwirren könnten.
Wenn Sie häufig weiche Ablehnungen erleben, versuchen Sie, die Eingabeaufforderung leicht umzuformulieren. Kleine Änderungen in der Formulierung können oft die Zögerlichkeit umgehen und eine direkte Antwort liefern.
Rate-Limit-Spitzen und Backoff-Strategien
Die API erlaubt 300 Anfragen pro Minute und 8 gleichzeitige Anfragen pro Schlüssel. Verkehrsspitzen können diese Grenzen schnell erreichen. Implementieren Sie exponentielles Backoff, um Rate-Limit-Fehler gracefully zu behandeln.
Wenn Sie einen 429-Statuscode erhalten, warten Sie, bevor Sie es erneut versuchen. Beginnen Sie mit einer kurzen Verzögerung und erhöhen Sie diese bei jedem erneuten Versuch. Dies verhindert, dass der Server während Spitzenzeiten überlastet wird.
Überwachen Sie Ihre Anfragrate und passen Sie die Parallelitätsstufen entsprechend an. Wenn Sie viele gleichzeitige Anfragen stellen, sollten Sie diese über die Zeit verteilen. Dies gewährleistet einen gleichmäßigen Durchsatz, ohne dass Limits erreicht werden.
Strukturen der Function-Calling-Payloads
Function Calling erfordert eine bestimmte Payload-Struktur. Definieren Sie Ihre Funktionen im tools-Parameter und legen Sie die tool_choice fest. Das Modell gibt einen Funktionsaufruf zurück, wenn es dies als die angemessene Antwort einstuft.
Stellen Sie sicher, dass Ihre Funktionsdefinitionen korrekt und vollständig sind. Fehlende Parameter oder falsche Typen können dazu führen, dass das Modell ungültige Aufrufe generiert. Überprüfen Sie die Funktionsaufrufargumente immer, bevor Sie sie ausführen.
Verwenden Sie den Parameter tool_choice, um zu steuern, wann das Modell Funktionen aufruft. Sie können einen Funktionsaufruf erzwingen, das Modell entscheiden lassen oder das Funktionsaufrufen vollständig deaktivieren. Dies ermöglicht eine detaillierte Steuerung des Modellverhaltens.
Debugging von 400- vs. 500-Fehlern
400-Fehler deuten auf Probleme auf Client-Seite hin, z. B. ungültiges JSON oder fehlende Parameter. 500-Fehler deuten auf Probleme auf Server-Seite hin, wie interne Fehler oder Timeouts. Die Unterscheidung zwischen beiden hilft dir, schneller zu debuggen.
Bei 400-Fehlern prüfen Sie die im Antworttext angegebene Fehlermeldung. Sie weist in der Regel direkt auf das Problem hin. Bei 500-Fehlern versuchen Sie die Anfrage nach einer kurzen Wartezeit erneut. Tritt der Fehler weiterhin auf, kontaktieren Sie den Support mit der Request-ID.
Protokollieren Sie sowohl die Anforderungs- als auch die Antwortdetails für jeden Fehler. Dies hilft dabei, Muster und wiederkehrende Probleme zu identifizieren. Nutzen Sie einen Logging-Dienst, um Fehler über die Zeit hinweg zu verfolgen und Ihre API-Integration zu verbessern.