Dokumentacja API

Błędy i ponawianie żądań

Rozpoznaj status HTTP lub błąd strumienia i wybierz właściwy kolejny krok.

Zapisz x-request-id, zanim odczytasz treść odpowiedzi. Jeśli strumień się urwie, zachowaj nagłówki HTTP i ewentualne końcowe zdarzenie błędu. W Analytics → Requests sprawdź zapisany wynik i przyczynę błędu; błędy przed uwierzytelnieniem mogą nie mieć wpisu w historii konta.

Struktura błędu

Chat Completions używa struktury zgodnej z OpenAI. Poniższy przykład oznacza brak klucza bramy API lub niepoprawny klucz:

OpenAI error shape
{
  "error": {
    "message": "A valid API key is required",
    "type": "invalid_api_key",
    "param": null,
    "code": "invalid_api_key"
  }
}

Messages zwraca ten sam błąd w strukturze zgodnej z Anthropic:

Anthropic error shape
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "A valid API key is required"
  }
}

Dla HTTP 402 odpowiedzi OpenAI używają insufficient_credits, a odpowiedzi Anthropic — billing_error. Ten status może oznaczać zarówno za mało kredytów, jak i miesięczny limit klucza. Rozróżnisz je po komunikacie wygenerowanym przez bramę. Treść błędu dostawcy jest zastępowana bezpiecznym komunikatem, a nie kopiowana do odpowiedzi.

Status, przyczyna i działanie

StatusTypowa przyczynaCo zrobić
400Niepoprawne pole, nieobsługiwana opcja, zbyt duże wejście lub budżet odpowiedzi ponad limit modeluSprawdź param, jeśli występuje, usuń odrzuconą funkcję albo zmniejsz wejście lub budżet odpowiedzi.
401Brak, niepoprawny lub unieważniony klucz bramy; status może też wystąpić po wyczerpaniu prób wskutek błędu uwierzytelniania dostawcyUżyj zapisanego aktywnego klucza albo utwórz nowy w API Keys. Jeśli inne wywołania z tym kluczem działają, zachowaj ID żądania i sprawdź wpis błędu.
402Za mało dostępnych kredytów lub przekroczenie miesięcznego limitu kluczaSprawdź Credits, aktywne blokady środków i ustawienia API Keys. W razie potrzeby zmniejsz budżet odpowiedzi.
403Model wykluczony przez listę klucza lub filtry routingu kontaZezwól na model w obu miejscach. Żadne z ustawień nie omija drugiego.
404Nieznany model lub nieobsługiwana trasaSkopiuj ID modelu z Marketplace. Użyj jednego z czterech publicznych endpointów.
408Klient przestaje czytać strumień na tyle długo, że połączenie zostaje zamknięteOdbieraj strumień na bieżąco; sprawdź buforowanie klienta lub proxy. Status może być widoczny w historii po zakończeniu połączenia.
409Nie można rozliczyć zużycia lub blokady żądania przy obecnej dostępnej pojemnościPrzed ponowieniem sprawdź Requests i kredyty; jeśli wynik jest niejasny, podaj ID żądania w zgłoszeniu.
413Treść żądania przekracza dopuszczalny rozmiarZmniejsz treść, dane obrazów lub historię rozmowy.
429Limit częstotliwości klucza lub dostawcyUwzględnij Retry-After, jeśli występuje, i ogranicz liczbę równoległych wywołań.
499Klient rozłącza się przed zakończeniemSprawdź anulowanie żądań i limity czasu klienta. To zapisany wynik; rozłączony klient nie otrzyma go jako nowej odpowiedzi HTTP.
500Dostawca lub brama nie może zakończyć żądaniaSprawdź historię przed ograniczoną liczbą ponownych prób; zachowaj ID żądania.
502Niepoprawna odpowiedź dostawcy lub nagle zakończony strumieńSprawdź, czy otrzymałeś część odpowiedzi, i w razie potrzeby ponów żądanie po przerwie.
503Brak odpowiedniej oferty, wyczerpana pojemność, chwilowe przeciążenie lub brak oferty gotowej do obsługi żądaniaSprawdź Marketplace, filtry modeli i limit ceny. Uwzględnij Retry-After, jeśli występuje. Obsługiwane błędy 503 żądań generowania odpowiedzi zawierają Retry-After: 1 przed rozpoczęciem strumienia; nie zakładaj tego dla każdego endpointu.
504Przekroczony czas dostawcy lub całego żądaniaSprawdź, czy korzystałeś ze strumienia i czy pojawiła się część odpowiedzi. W razie potrzeby ponów żądanie z ograniczonym budżetem.
529Przeciążenie dostawcyOdczekaj i spróbuj później; dostępność nie jest gwarantowana.

Dokładny typ błędu zależy od formatu odpowiedzi. Ogólne api_error nie wskazuje kodu błędu konkretnego dostawcy.

Ponawianie strumieni

Przed wysłaniem bajtów odpowiedzi brama może użyć fallbacku, czyli wypróbować inną ofertę — łącznie najwyżej trzy. Gdy odpowiedź już się zacznie, błąd jest zdarzeniem w istniejącym strumieniu, a nie nowym statusem HTTP ani przełączeniem sprzedawcy. Strumień OpenAI przenosi obiekt błędu w zdarzeniu data:, a Anthropic używa event: error.

Traktuj częściowy wynik jako niekompletny. Ponowienie tworzy nowe żądanie i może naliczyć kolejną opłatę. SDK również mogą automatycznie ponawiać wywołania; ogranicz liczbę prób i zapisuj każde ID żądania. Jeśli agent zdążył uruchomić narzędzie zmieniające dane, sprawdź wynik, zanim pozwolisz mu powtórzyć działanie.

Zgłoś problem

Podaj x-request-id, przybliżony czas UTC, ID modelu, nazwę i wersję klienta, endpoint oraz informację o użyciu strumienia. Dołącz bezpieczny komunikat błędu lub przyczynę niepowodzenia i napisz, czy dotarła część odpowiedzi. Nie wysyłaj klucza API, danych dostawcy ani prywatnej treści promptu.

Na tej stronie