Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir bakışta
Hedef: Uygulamanızın OpenAI hız sınırı ve aşırı yükleme hatalarını nasıl işlediğini test edin
Süre: 10 dakika
Eklentiler:GenericRandomErrorPlugin, RetryAfterPlugin
Önkoşullar:Geliştirme Ara Sunucusunu Ayarlama
Uygulamanız geliştirme aşamasında çalışıyor, ardından ile 429 Too Many Requestsüretimde başarısız oluyor. OpenAI hız sınırları, kuruluşunuzun kullanım katmanına, modelinize ve aynı kuruluşu kullanan diğer herkese bağlıdır, bu nedenle bunlara bilerek güvenilir bir şekilde ulaşamazsınız. Geliştirme Proxy'si, OpenAI API'sinin döndürdüğü hataları döndürür, böylece kullanıcılarınızdan önce uygulamanızın ne yaptığını görebilirsiniz.
OpenAI'nin ne döndürdüğüne bakın
Her OpenAI hatası "yeniden deneyin" anlamına gelmez. Uygulamanızın bunları birbirinden ayırt etmesi gerekir.
| Statü | error.code |
Ne anlama gelir? | Uygulamanızın yapması gerekenler |
|---|---|---|---|
| 429 | rate_limit_exceeded |
Dakika başına istek (RPM) veya dakika başına belirteç (TPM) sınırınıza ulaştınız. | Üst bilgide gösterilen süre dolunca yeniden deneyin. |
| 429 | slow_down |
Sınırlarınız dahilinde olsanız bile istek oranınız çok hızlı arttı. |
Retry-After için bekleyin, istek oranınızı azaltın ve aşamalı olarak artırın. |
| 429 | credit_balance_exhausted |
Kuruluşunuzun ön ödemeli kredisi kalmadı. | Yeniden denemeyin. Yeniden denemek erişimi geri yüklemez. Kullanıcıya bildirin veya bir yöneticiyi uyarın. |
| 503 | server_is_overloaded |
Model şu anda yeterli kapasiteye sahip değil. | Varsa Retry-After bekleyin, ardından artan gecikmelerle yeniden deneyin. |
Listenin tamamı için OpenAI belgelerindeki Hata kodları bölümüne bakın.
Important
429 satırdaki 3 hatanın tümü aynı durum kodunu kullanır. Uygulamanız her 429'da bir yeniden denerse, asla düzelmeyen faturalama hatalarını yeniden denemeye devam eder. Ne yapacağınıza karar vermek için error.code öğesini kontrol edin.
OpenAI SDK'sının sizin için ne yaptığını öğrenin
Python ve JavaScript için resmi OpenAI SDK'ları üstel geri alma ile varsayılan olarak 2 kez 408, 409, 429 ve 5xx yanıtlarını ve bağlantı hatalarını yeniden dener. Bunu Python ve maxRetries JavaScript'teki seçeneğiyle max_retries değiştirebilirsiniz.
SDK yeniden denemeleri kısa süreli ani artışları kapsar. Uygulamanızın yine de yeniden denemeler bittiğinde ne olacağına ve yeniden denemenin düzeltmediği hataların nasıl işleneceğini belirlemesi gerekir. Python'de 429 RateLimitError istisnasını oluşturur ve 503 InternalServerError istisnasını oluşturur, bu nedenle her ikisini de halledin.
Tip
Hata işleme kodunuzun tam olarak ne aldığını görmek için, test sırasında maxRetries: 0 (Python) veya max_retries=0 (JavaScript) ayarlayın. Ardından SDK yeniden denemelerini tekrar etkinleştirin.
OpenAI istek sınırlarını simüle etme
Dev Proxy, tablodaki OpenAI hatalarıyla ilgili bir ön ayara sahiptir. İndirin:
devproxy config get openai-throttling
Dev Proxy'yi hazır ayarla başlatın:
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json"
Ön ayar, https://api.openai.com/* adresine yapılan isteklerin %90'ında tablodan rastgele bir hatayla başarısız olur. Hız sınırlama yanıtları için Retry-After üst bilgisini ayarlar ve uygulamanızın API'yi yeniden çağırmadan önce bu kadar uzun süre bekleyip beklemediğini denetlemek için RetryAfterPlugin'i kullanır.
Uygulamanızın isteklerini Dev Proxy aracılığıyla gönderdiğinden ve Dev Proxy sertifikasına güvendiğinden emin olun. Node.js için bkz. Node.js uygulamalarıyla Geliştirme Proxy'si kullanma. Diğer çalışma zamanları için bkz. Dev Proxy sorunlarını giderme.
Uygulamanızı çalıştırın ve aşağıdakileri denetleyin:
- Bir
rate_limit_exceededveyaslow_downhatasından sonra uygulamanızRetry-Aftersüresini bekler. API'yi çok erken çağırırsa Dev Proxy bunu bildirir ve isteği kısıtlar. - Bir
credit_balance_exhaustedhatadan sonra uygulamanız API'yi çağırmayı durdurur ve net bir ileti gösterir. - Bir
server_is_overloadedhatadan sonra uygulamanız gecikmeli olarak yeniden dener ve yeniden denemeler bittiğinde geri döner veya yığın izlemesi yerine net bir ileti gösterir. - Uygulamanız yaptığınız işi kaybetmez. Örneğin, uzun bir sohbet veya toplu işlem, hata oluştuktan sonra da devam eder.
İsteklerin ne sıklıkta başarısız olduğunu değiştirmek için --failure-rate seçeneğini kullanın. Örneğin, her isteği başarısız kılmak için:
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json" --failure-rate 100
Azure OpenAI ve diğer sağlayıcılar için belirteç sınırlarının simülasyonunu gerçekleştirme
Ön ayar, uygulamanızın kaç belirteç kullandığından bağımsız olarak rastgele hatalar döndürür. İstekleri gerçek belirteç kullanımına göre kısıtlamak, örneğin uzun bir konuşma TPM sınırınızı aştığında ne olduğunu görmek için LanguageModelRateLimitingPlugin kullanın. Azure OpenAI ve yerel modeller de dahil olmak üzere OpenAI uyumlu tüm API'lerle çalışır. Daha fazla bilgi için bkz. Dil modeli belirteci sınırlarını test etme.
Sonraki adım
Belirteç tabanlı sınırları nasıl simüle edeceğinizi öğrenin.
Ayrıca bkz.
- Uygulamamı dil modeli hatalarıyla test et - Beklenmeyen dil modeli yanıtlarının benzetimini yapın
- OpenAI API hatalarını simüle etme - Kendi OpenAI hata dosyanızı oluşturma
- Uygulamamın hız sınırlamayı düzgün işlediğini test etme - Herhangi bir API'de hız sınırlama
- Ön ayarları kullanın - Ön ayarlarla çalışma
- RetryAfterPlugin - Yeniden deneme davranışını doğrulama