Api.Airforce
ROZWIĄZYWANIE PROBLEMÓW

Zanim zgłosisz błąd

Większość "błędów" to problemy z konfiguracją, które można naprawić w 60 sekund — najpierw przejdź przez tę listę kontrolną.

Jeśli coś nie działa, najszybszym sposobem sprawdzenia, czy problem leży po Twojej stronie czy naszej, jest wysłanie tego samego żądania z innego narzędzia.

Około 9 na 10 zgłoszeń "API nie działa" okazuje się błędnie skonfigurowanym base URL, nieaktualnym kluczem API, błędną nazwą modelu lub ciałem żądania skopiowanym z tutorialu opartego na wersji SDK sprzed trzech generacji.

Szybki test własny

Skopiuj to polecenie curl do terminala. Zastąp YOUR_KEY swoim kluczem API z Dashboard i uruchom je. Jeśli otrzymasz prawidłową odpowiedź, Twój klucz API, sieć i nasze zaplecze działają poprawnie — cokolwiek jest nie tak, problem leży w kodzie klienta lub środowisku.

cURL

curl https://api.airforce/v1/chat/completions \
  -H "Authorization: Bearer sk-air-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4.1-mini",
    "messages": [{"role": "user", "content": "ping"}]
  }'
ℹ️
Szybki test własny: Nie masz dostępu do terminala? Wklej ten sam model i prompt do Playground z Dashboard — efekt jest identyczny, bez żadnej konfiguracji.

Krok po kroku — lista kontrolna

Czy Twój klucz API jest prawidłowy?

Otwórz Dashboard → API Keys i upewnij się, że klucz odpowiada temu, którego używa Twój kod. Częstą pułapką jest spacja przed prefiksem "sk-air-" wstawiona podczas kopiowania i wklejania.

Objaw: 401 Unauthorized.

Czy base URL jest prawidłowy?

Base URL musi mieć postać https://api.airforce/v1 — nie http, a sufiks /v1 jest wymagany. Tutoriale sprzed wprowadzenia ścieżki v1 przez OpenAI czasem go pomijają.

Objaw: 404 Not Found lub curl zawiesza się.

Czy nazwa modelu jest napisana poprawnie?

Identyfikatory modeli rozróżniają wielkość liter. Odwiedź stronę Models lub wywołaj GET /v1/models, aby potwierdzić dokładny ID. Literówka lub zdeprecjonowany model zwróci czytelny komunikat błędu, a nie "działa, ale źle".

Objaw: 400 unknown_model lub 404 model_not_found.

Czy treść żądania ma właściwą strukturę?

Uzupełnienia czatu używają tablicy messages. Obrazy używają prompt + n. Audio TTS używa input + voice. Wysłanie ciała w formacie czatu do /v1/images/generations zwróci 400 — łatwo to przeoczyć podczas kopiowania fragmentów między dokumentacjami.

Objaw: 400 z nazwą problematycznego pola w treści odpowiedzi.

Czy osiągnąłeś limit żądań lub limit przydziału?

429 = zbyt wiele żądań w tej minucie. 402 = Twój plan lub saldo zostały wyczerpane. Oba stany widoczne są w Dashboard. Żądania w ramach darmowego planu mają osobne limity od żądań w planach płatnych, więc płatny model może odpowiadać normalnie, gdy darmowy jest ograniczany.

Objaw: 429 Too Many Requests lub 402 Payment Required.

Czy model faktycznie działa w tej chwili?

Sprawdź stronę Models — awarie providerów widoczne są jako "degraded" lub "major outage". Jeśli jeden model jest niedostępny, a inne działają, to problem po stronie providera, który obchodzimy w routingu — nie błąd klienta.

Objaw: konkretny model zwraca 5xx, podczas gdy inne działają.

Znaczenie kodów statusu HTTP

Każda odpowiedź z błędem zawiera standardowy kod statusu HTTP. Znajomość znaczenia każdego kodu pozwala zaoszczędzić czas i uniknąć zbędnych zgłoszeń.

400Twoja stronaBad Request — nieprawidłowy JSON, brakujące wymagane pole, nieznany parametr. Popraw treść żądania.
401Twoja stronaUnauthorized — brakujący lub nieprawidłowy klucz API. Sprawdź, czy nagłówek Authorization zawiera prefiks "Bearer ".
402Twoja stronaPayment Required — wyczerpany plan lub puste saldo Pay-as-you-go. Wykup subskrypcję lub doładuj konto.
403Twoja stronaForbidden — Twój plan lub uprawnienia przypisane do klucza nie zezwalają na ten model lub endpoint.
404Twoja stronaNot Found — nieznany endpoint lub ID modelu. Sprawdź ścieżkę URL i pisownię nazwy modelu.
413Twoja stronaPayload Too Large — dane wejściowe przekraczają okno kontekstu modelu. Skróć prompt.
429Twoja stronaToo Many Requests — limit żądań przekroczony (RPM, RPD lub dzienny limit tokenów). Zwolnij tempo lub przejdź na wyższy plan.
500Nasza stronaInternal Server Error — błąd po naszej stronie. Zgłoś go, jeśli utrzymuje się dłużej niż minutę.
502Nasza stronaBad Gateway — zaplecze w trakcie restartu (wdrożenia przeprowadzamy kilka razy dziennie). Poczekaj 5–10 sekund i ponów próbę.
503Nasza stronaService Unavailable — wszystkie upstream providery dla tego modelu są w tej chwili niedostępne. Zgłoś, jeśli problem utrzymuje się dłużej niż kilka minut.
💡
Ogólna zasada: Kody 4xx oznaczają, że klient wysłał żądanie odrzucone przez serwer. Kody 5xx oznaczają, że po naszej stronie wystąpił błąd przy obsłudze prawidłowego żądania. Treść błędu JSON w odpowiedzi zazwyczaj wskazuje pole, które wywołało problem.

Kiedy to naprawdę błąd

Jeśli powyższy test curl działa, ale to samo żądanie wysłane z Twojego kodu już nie — problem tkwi w kliencie (lub bibliotece, której używa). Jeśli sam test kończy się błędem 5xx albo zwraca 4xx z komunikatem, który nie pasuje do Twojego żądania, warto to zgłosić.

Jak skutecznie zgłosić problem

Otwórz zgłoszenie z Dashboard lub napisz na #support na Discord. Dołącz:

  • Pełny kod statusu HTTP i treść odpowiedzi (a jeśli jest dostępny, również nagłówek odpowiedzi cf-ray).
  • Przybliżony znacznik czasu w UTC.
  • Nazwę modelu i wywołany endpoint.
  • Minimalny przykład cURL odtwarzający problem (zamaskuj swój prawdziwy klucz API!).
  • Czy powyższy test własny działa u Ciebie na tym samym kluczu.
ℹ️
Jak skutecznie zgłosić problem: Zgłoszenia zawierające te informacje otrzymują rzeczową odpowiedź od razu. Zgłoszenia bez nich niemal zawsze wymagają kilku wymian wiadomości, zanim będziemy mogli pomóc.

Zapytaj na kanale #support na Discord

Masz problem z konfiguracją lub chcesz darmowy klucz? Zapytaj społeczność na naszym Discordzie.

Dołącz do naszego Discorda