Krótka odpowiedź
Jakie błędy może zwracać LLMwithCrypto API i czy są płatne?
API odpowiada na błędy statusem HTTP i treścią w stylu OpenAI: {"error": {"message", "type", "param", "code"}}. LLMwithCrypto używa 400 dla złego zapytania, 401 dla złego klucza, 402, gdy kredyty nie mogą zapłacić, 404 dla nieznanego modelu, 429 dla rate limit oraz 500 lub 503 po naszej stronie. Zapytanie, które kończy się błędem, nic nie kosztuje, zgodnie z dokumentacją z 23 października 2026.
Jakie błędy istnieją?
Żaden błąd nie zużywa kredytów. code to stabilna wartość do testowania w kodzie; message jest dla ludzi i może się zmienić.
| HTTP | code | Przyczyna | Ponowić? |
|---|---|---|---|
| 400 | invalid_parameter | Brakuje wymaganego pola albo wartość jest poza zakresem lub złego typu | Nie: popraw zapytanie |
| 400 | context_length_exceeded | Wiadomości plus max_tokens nie mieszczą się w oknie kontekstu modelu | Nie: skróć dane wejściowe lub zmniejsz max_tokens |
| 400 | unsupported_parameter | Pole, którego ten model nie obsługuje, takie jak response_format w modelu bez trybu JSON | Nie: usuń je lub zmień model |
| 401 | invalid_api_key | Klucz API brakuje, jest błędnie wpisany lub unieważniony | Nie: sprawdź klucz |
| 402 | insufficient_balance | Pozostałe saldo nie pokrywa tego wywołania | Nie: kup pakiet kredytów |
| 404 | model_not_found | Identyfikatora model nie ma na naszej liście | Nie: użyj identyfikatora z GET /api/v1/models |
| 429 | rate_limit_exceeded | Więcej zapytań lub tokenów na minutę, niż pozwala konto | Tak, po przerwie |
| 500 | server_error | Coś zawiodło po naszej stronie | Tak, z backoffem |
| 503 | model_overloaded | Model jest chwilowo na granicy wydajności | Tak, z backoffem albo spróbuj innego modelu |
{
"error": {
"message": "The model `gpt-4o` does not exist or is not available to your key.",
"type": "invalid_request_error",
"param": "model",
"code": "model_not_found"
}
}
Dlaczego dostaję 404 dla gpt-4o lub claude?
Ponieważ te modele nie są tu sprzedawane. Nie sprzedajemy dostępu do GPT, Claude, Gemini ani Grok: ich twórcy zabraniają odsprzedaży dostępu do API bez ich zgody, a my jej nie mamy. Kod pisany pod OpenAI API często wymienia model w kilku miejscach; przeszukaj projekt pod starym name i zastąp go identyfikatorem ze strony modeli, na przykład deepseek-v4-pro lub gpt-oss-120b.
Kiedy mój kod powinien ponawiać?
Ponawiaj 429, 500 i 503 oraz błędy sieci, takie jak timeout czy zerwane połączenie. Nigdy nie ponawiaj 400, 401, 402 ani 404: to samo zapytanie zawiedzie tak samo.
Odczekaj przed każdą kolejną próbą. Gdy odpowiedź ma nagłówek Retry-After, odczekaj tyle sekund; w przeciwnym razie podwajaj pauzę za każdym razem (1, 2, 4, 8 sekund…) i dodaj trochę losowego czasu, żeby wiele workerów nie ponawiało w rytmie. Odpuść po kilku próbach i zaloguj błąd. SDK OpenAI same ponawiają; poniższy przykład to wyłącza, żeby pokazać logikę w całości.
import os
import random
import time
from openai import APIConnectionError, APIStatusError, OpenAI
client = OpenAI(
base_url="https://llmwithcrypto.com/api/v1",
api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
max_retries=0,
)
RETRY = {429, 500, 503}
def chat(messages, model="deepseek-v4-pro", attempts=5):
for attempt in range(attempts):
try:
return client.chat.completions.create(model=model, messages=messages, max_tokens=500)
except APIStatusError as err:
if err.status_code not in RETRY or attempt == attempts - 1:
raise
wait = err.response.headers.get("retry-after")
delay = float(wait) if wait else min(30, 2**attempt) + random.random()
except APIConnectionError:
if attempt == attempts - 1:
raise
delay = min(30, 2**attempt) + random.random()
time.sleep(delay)
Co robić przy 402 insufficient_balance?
Doładuj. Wywołanie nie zostało obciążone, a nic innego na koncie się nie zmienia: Twoje klucze znów działają, gdy tylko pojawi się saldo. Gdy Twoje doładowanie kryptowalutą zostanie potwierdzone i kupisz pack kredytów, Twój klucz API czeka w dashboardzie.
Żeby uniknąć niespodzianek na produkcji, od czasu do czasu odczytuj GET https://llmwithcrypto.com/api/v1/credits i ustaw alert poniżej wybranego progu; strona modeli i kredytów pokazuje wywołanie. Kredyty nie mają daty ważności: to, czego nie wydasz w tym miesiącu, nadal będzie tam w przyszłym roku, więc większy pakiet kupiony wcześniej nic nie kosztuje dodatkowo.
Jak trzymać się poniżej rate limit?
Każde konto ma limit zapytań i tokenów na minutę, widoczny w dashboardzie; poproś support, a można go podnieść.
- Ogranicz współbieżność. Uruchamiaj stałą liczbę zapytań równolegle, zamiast wysyłać całą partię naraz.
- Ogranicz output. Limity tokenów liczą też to, co pisze model, więc rozsądny
max_tokensutrzymuje więcej zapytań w limicie. - Rozłóż partie. Przy dużych zadaniach offline rozłóż zapytania na całą minutę, zamiast wysyłać je seriami.
Błędy: najczęstsze pytania
Czy płacę za nieudane wywołanie?
Nie. Płacisz za token z salda: tokeny wejściowe i wyjściowe są liczone przez tokenizer danego modelu i rozliczane według ceny tego modelu za 1M tokenów. Wywołanie zakończone błędem nic nie kosztuje.
Gdzie sprawdzę, czy jest awaria?
Na stronie statusu. Seria błędów 500 lub 503 na kilku modelach zwykle oznacza incydent po naszej stronie; napisz na [email protected], jeśli się utrzymuje.
Czy mogę zobaczyć, które zapytanie zawiodło?
Nie po naszej stronie. Nie przechowujemy Twoich promptów ani odpowiedzi modelu: gdy odpowiedź zostanie wysłana, jej tekst znika. Każde wywołanie zostawia jedną linię logu z czasem, kontem, modelem i liczbą tokenów, usuwaną po 30 dniach. Zaloguj błąd code i własny identyfikator zapytania w swojej aplikacji.