Artfical AI / API
API anahtarı alın tAI'yi Aç
Referans

Hatalar

Her endpoint'teki her hata, aynı zarf (envelope) yapısına ve 2xx olmayan bir HTTP durum koduna sahip bir JSON gövdesi olarak döner.

Hata zarfı

{
  "error": {
    "message": "Human-readable description of what went wrong",
    "type": "invalid_request_error"
  }
}

Bu, OpenAI'nin kendi API'sinin kullandığı zarfla aynıdır, bu yüzden mevcut bir OpenAI uyumlu istemciye karşı yazılmış hata işleme kodu değişiklik yapılmadan çalışmaya devam etmelidir: önce HTTP durum koduna bakın, geliştirici için gösterilmeye veya loglanmaya değer bir mesaj için error.message'ı okuyun. error.type, serbest metin mesajını ayrıştırmadan dallanma mantığı (yeniden dene ya da deneme, yeni bir API anahtarı iste ya da bekleyip tekrar dene) için kullanışlı, kararlı ve makine tarafından kontrol edilebilir bir kategoridir.

Durum kodları ve türler

DurumTürAnlamı
400invalid_request_errorİsteğin kendisi hatalı biçimlendirilmiş: tanınmayan bir model, eksik veya boş bir messages dizisi, desteklenmeyen bir role sahip bir mesaj ya da hatalı biçimlendirilmiş bir tools tanımı. İsteği düzeltin; hiçbir şeyi değiştirmeden yeniden denemek her seferinde aynı şekilde başarısız olur.
401authentication_errorAuthorization başlığı eksik, hatalı biçimlendirilmiş, ya da anahtar geçersiz, süresi dolmuş veya iptal edilmiş. Bkz. Kimlik Doğrulama.
429rate_limit_errorBu anahtar üzerinde kısa bir zaman aralığında çok fazla istek. Sınır ve doğru şekilde nasıl yavaşlanacağı için Hız Sınırları'na bakın.
500api_errorİsteğinizle ilgisi olmayan, beklenmedik bir sunucu taraflı hata. Nadirdir; kısa bir bekleme ile yeniden denemek güvenlidir.
503api_errorServis geçici olarak isteği tamamlayamıyor; genellikle isteğinizle ilgili bir sorun değil, tAI'nin kendi üretim altyapısındaki geçici bir sorundur. Yeniden denemek güvenlidir.

Birkaç örnek

Bilinmeyen bir model:

HTTP/1.1 400 Bad Request

{"error": {"message": "Unknown model: 'tai-4.9'. See https://docs.artfical.com/tai/en for the current list.", "type": "invalid_request_error"}}

Geçersiz veya süresi dolmuş bir anahtar:

HTTP/1.1 401 Unauthorized

{"error": {"message": "Invalid API key.", "type": "authentication_error"}}

Geçici bir servis sorunu:

HTTP/1.1 503 Service Unavailable

{"error": {"message": "The AI service is temporarily unavailable. Please retry.", "type": "api_error"}}

Akış sırasında hatalar

Bir streaming yanıtı başladıktan sonra (bağlantı açık ve chunk'lar gelmeye başladıktan sonra), akışın başında HTTP durumu ve başlıklar zaten 200 olarak gönderildiğinden, bir hata artık 2xx olmayan bir durumla normal bir JSON hata gövdesi olarak bildirilemez. Bunun yerine, akış sırasında oluşan bir hata, bağlantının basitçe kopması yerine görünür bir içerik chunk'ı (genellikle kısa, köşeli parantez içinde bir bildirim) ve ardından normal bir bitiş chunk'ı ile [DONE] olarak gösterilir. Tam yapı ve akışın her iki durumda da neden temiz bir şekilde sonlanacağının garantisi için Aktarım'a bakın.

Yeniden denemeye değer olanlar

Genel bir kural olarak: 400 ve 401 hataları isteğin veya anahtarın kendisiyle ilgili bir sorunu tanımlar ve aynı şekilde yeniden denemek her seferinde aynı şekilde başarısız olur, bu yüzden önce altta yatan sorunu düzeltin. 429, 500 ve 503'ün hepsini yeniden denemek güvenlidir, tercihen sıkı bir döngüde tekrar denemek yerine kısa bir gecikme ve toplam deneme sayısına bir üst sınırla; 429'dan doğru şekilde nasıl yavaşlanacağı için özellikle Hız Sınırları'na bakın.