Hesap
Hatalar
api14 ağ geçidinin OpenAI hata yapısında döndürdüğü HTTP durum kodlarını, hata türlerini ve her hatada izlenecek çözüm yolunu bulun.
Hatalar OpenAI hata yapısını kullanır; böylece resmi SDK'lar bunları her zamanki exception'larına (APIError, RateLimitError, AuthenticationError vb.) dönüştürür. Mantığınızı code üzerine kurun; message, İngilizce ve insanlar için yazılmış bir açıklamadır.
{
"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"
}
}
Başarısız istekler ücretlendirilmez. 4xx veya 5xx durum kodlu hiçbir yanıt ücret doğurmaz.
Ağ geçidi hata kodları
| Durum | code | type | Anlamı |
|---|---|---|---|
| 400 | model_required | invalid_request_error | model alanı eksik. |
| 400 | invalid_json | invalid_request_error | Gövde bir JSON nesnesi değil. |
| 400 | invalid_body | invalid_request_error | Multipart gövde okunamadı. |
| 400 | max_tokens_too_large | invalid_request_error | Bir playground deneme isteği çok fazla çıktı token'ı istedi. |
| 401 | invalid_api_key | authentication_error | Anahtar eksik, hatalı biçimlendirilmiş veya iptal edilmiş. |
| 402 | insufficient_balance | insufficient_quota | USD bakiyeniz $0 veya isteğin tahmini en yüksek maliyetinin (girdi, çıktı sınırı, görseller ya da video süresi) altında. İstek gönderilmez. |
| 403 | model_not_allowed | permission_error | Anahtarın model izin listesi bu modeli içermiyor. |
| 403 | plan_required | permission_error | Planınız bu model kategorisini kapsamıyor. |
| 404 | model_not_found | not_found_error | Model kimliği bilinmiyor, devre dışı veya kaldırılmış. |
| 404 | not_found | not_found_error | Bilinmeyen uç nokta ya da size ait olmayan bir video işi veya üretim. |
| 413 | payload_too_large | invalid_request_error | İstek gövdesi boyut sınırını aşıyor (varsayılan 25 MB). |
| 429 | rate_limited | rate_limit_error | Dakikalık istek limiti aşıldı. Retry-After: 60 ile birlikte gelir. |
| 409 | idempotency_conflict | api_error | Bu Idempotency-Key ile bir istek zaten gönderildi. Yeni bir istek için yeni bir anahtar kullanın. Bkz. Hız limitleri. |
| 429 | daily_limit_reached | rate_limit_error | Anahtar günlük USD harcama limitine ulaştı. |
| 403 | site_not_allowed | permission_error | Yalnız widget: sayfanın sitesi izinli widget siteleriniz arasında değil. Bkz. Widget'lar. |
| 429 | widget_daily_limit | rate_limit_error | Yalnız widget: widget ya da bütün widget'lar birlikte günlük USD harcama sınırına ulaştı. |
| 429 | visitor_daily_limit | rate_limit_error | Yalnız widget: bu ziyaretçi Widget denetimlerinde belirlenen günlük istek sınırına ulaştı. |
| 502 | upstream_unavailable | api_error | Upstream sağlayıcıya ulaşılamadı. |
| 4xx/502 | content_unavailable | değişken | Bir videonun içeriği henüz alınamadı (durum kodu upstream'i yansıtır, yoksa 502). |
| 503 | maintenance | service_unavailable | Bakım modu, üretim uç noktaları duraklatıldı, GET uç noktaları çalışmaya devam eder. |
| 503 | not_configured | service_unavailable | Ağ geçidi henüz yapılandırılmadı. |
Upstream hataları
Upstream sağlayıcının döndürdüğü hatalar, örneğin belirli bir model için geçersiz bir parametre, bağlam uzunluğu aşımı, içerik politikası reddi veya sağlayıcının kendi 429 yanıtı, orijinal durum kodları ve aynı { error: {... } } yapısıyla iletilir.
Ne yapmalı
| Durum | Yeniden denensin mi? | Eylem |
|---|---|---|
| 400 | Hayır | İstek gövdesini düzeltin. |
| 401 | Hayır | Anahtarı ve Authorization: Bearer başlığını kontrol edin. Bkz. Kimlik doğrulama. |
| 402 | Hayır | Bakiye ekleyin veya otomatik yüklemeyi açın. |
| 403 | Hayır | İzinli bir model kullanın, anahtarın izin listesini düzenleyin veya planınızı yükseltin. |
| 404 | Hayır | Model kimliğini modeller sayfasından kontrol edin. |
| 413 | Hayır | Daha küçük bir gövde gönderin veya dosyaları base64 yerine URL ile iletin. |
| 429 | Daha sonra | rate_limited: Retry-After süresini bekleyin. daily_limit_reached: bir sonraki UTC gününü bekleyin veya anahtar limitini yükseltin. Bkz. Hız limitleri. |
| 502 | Evet | Backoff ile yeniden deneyin veya model yedekleri ekleyin. |
| 503 | Evet | Daha sonra yeniden deneyin. |
Kodda hataları ele almak
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)
Stream başladıktan sonra oluşan hatalar stream'in içinde gelir. Bkz. Streaming.