Konto
Fel och felkoder
Alla felkoder som api14-gatewayen returnerar i OpenAI:s felformat, vad varje kod betyder och hur du hanterar fel i din kod.
Fel använder OpenAI:s felformat, så de officiella SDK:erna gör om dem till sina vanliga undantag (APIError, RateLimitError, AuthenticationError och så vidare). Förgrena på code; message är en läsbar förklaring på engelska.
{
"error": {
"message": "This request may cost up to $0.0123 but your balance is $0.0040. Add funds at /pricing.",
"type": "insufficient_quota",
"code": "insufficient_balance"
}
}
Misslyckade anrop debiteras inte. Alla svar med en 4xx- eller 5xx-status kostar ingenting.
Gatewayens felkoder
| Status | code | type | Betydelse |
|---|---|---|---|
| 400 | model_required | invalid_request_error | Fältet model saknas. |
| 400 | invalid_json | invalid_request_error | Bodyn är inte ett JSON-objekt. |
| 400 | invalid_body | invalid_request_error | Multipart-bodyn kunde inte läsas. |
| 400 | max_tokens_too_large | invalid_request_error | Ett testanrop från playground bad om för många utdata-tokens. |
| 401 | invalid_api_key | authentication_error | Nyckeln saknas, är felformaterad eller har återkallats. |
| 402 | insufficient_balance | insufficient_quota | Ditt USD-saldo är $0 eller lägre än den uppskattade maxkostnaden för anropet (indata, utdatagräns, bilder eller videolängd). Anropet skickas inte. |
| 403 | model_not_allowed | permission_error | Nyckelns lista över tillåtna modeller innehåller inte den här modellen. |
| 403 | plan_required | permission_error | Din plan omfattar inte den här modellkategorin. |
| 404 | model_not_found | not_found_error | Modell-id:t är okänt, inaktiverat eller borttaget. |
| 404 | not_found | not_found_error | Okänd endpoint, eller ett videojobb eller en generering som inte är din. |
| 413 | payload_too_large | invalid_request_error | Anropets body överskrider storleksgränsen (25 MB som standard). |
| 429 | rate_limited | rate_limit_error | Antalet anrop per minut har överskridits. Skickas med Retry-After: 60. |
| 429 | daily_limit_reached | rate_limit_error | Nyckeln har nått sin dagliga utgiftsgräns i USD. |
| 409 | idempotency_conflict | api_error | En förfrågan med denna Idempotency-Key har redan skickats. Använd en ny nyckel för en annan förfrågan. Hastighetsgränser. |
| 403 | site_not_allowed | permission_error | Endast widgets: sidans webbplats finns inte bland dina tillåtna widgetwebbplatser. Widgets. |
| 429 | widget_daily_limit | rate_limit_error | Endast widgets: widgeten, eller alla widgets tillsammans, har nått den dagliga utgiftsgränsen i USD. |
| 429 | visitor_daily_limit | rate_limit_error | Endast widgets: besökaren har nått den dagliga gränsen för förfrågningar i widgetinställningarna. |
| 502 | upstream_unavailable | api_error | Leverantören uppströms gick inte att nå. |
| 4xx/502 | content_unavailable | varierar | En videos innehåll kunde inte hämtas än (statusen speglar uppströms, 502 om ingen finns). |
| 503 | maintenance | service_unavailable | Underhållsläge, genererings-endpoints är pausade, GET-endpoints fungerar fortfarande. |
| 503 | not_configured | service_unavailable | Gatewayen är inte konfigurerad än. |
Fel från uppströms
Fel som returneras av leverantören uppströms, till exempel en ogiltig parameter för en viss modell, överskriden kontextlängd, en vägran på grund av innehållspolicy eller en leverantörs egen 429, skickas vidare med sin ursprungliga statuskod och samma { error: {... } }-format.
Vad du ska göra
| Status | Försöka igen? | Åtgärd |
|---|---|---|
| 400 | Nej | Rätta anropets body. |
| 401 | Nej | Kontrollera nyckeln och headern Authorization: Bearer. Se Autentisering. |
| 402 | Nej | Fyll på saldot eller slå på automatisk påfyllning. |
| 403 | Nej | Använd en tillåten modell, ändra nyckelns lista över tillåtna modeller eller uppgradera din plan. |
| 404 | Nej | Kontrollera modell-id:t på modellsidan. |
| 413 | Nej | Skicka en mindre body, eller skicka filer via URL i stället för base64. |
| 429 | Senare | rate_limited: vänta enligt Retry-After. daily_limit_reached: vänta till nästa UTC-dygn eller höj nyckelns gräns. Se Hastighetsgränser. |
| 502 | Ja | Försök igen med backoff, eller lägg till reservmodeller. |
| 503 | Ja | Försök igen senare. |
Hantera fel i koden
import OpenAI from 'openai'
const client = new OpenAI({ baseURL: 'https://api14.com/api/v1', apiKey: process.env.API14_API_KEY })
try {
await client.chat.completions.create({ model: 'openai/gpt-5-mini', messages: [{ role: 'user', content: 'Hi' }] })
} catch (err) {
if (err instanceof OpenAI.APIError) {
console.error(err.status, err.code, err.message)
if (err.code === 'insufficient_balance') {
// prompt the user to add funds
}
} else {
throw err
}
}
from openai import OpenAI, APIStatusError
client = OpenAI(base_url="https://api14.com/api/v1", api_key="sk-api14-...")
try:
client.chat.completions.create(model="openai/gpt-5-mini", messages=[{"role": "user", "content": "Hi"}])
except APIStatusError as e:
print(e.status_code, e.code, e.message)
Fel som uppstår efter att en ström har startat kommer inuti strömmen. Se Streaming.