API kısıtlamayı yönetme

API hız sınırlaması, bulut API'lerini kullanan uygulamalar oluştururken sık karşılaşılan bir sorundur. Bunu işlemek için kullanabileceğiniz teknikler şunlardır:

  • Hız sınırlamayı kullanın. Kullandığınız API hız sınırlamayı destekliyorsa, uygulamanızın API sınırlarını aşmadığından emin olmak için API'nin gönderdiği hız sınırlama bilgilerini kullanın.
  • Retry-After üst bilgilerini işle. Bazı API'ler, bir istek kısıtlandığında yanıtlarında bir Retry-After başlık gönderir. Kısıtlanırsanız ve yanıtta Retry-After üst bilgisi varsa, başka bir istek göndermeden önce belirtilen süreyi bekleyin.
  • Üstel geri alma uygulayın. Kullandığınız API, Retry-After başlığı göndermiyorsa rastgele değişimli üstel backoff algoritması uygulayın. Her başarısız istekten sonra, yeniden denemeden önce iki kat daha uzun bekleyin ve birkaç denemeden sonra durun. Daha uzun süre beklemek API üzerindeki yükü azaltmanıza yardımcı olur ve sonraki isteklerinizin başarılı olma olasılığını artırır.
  • Ne zaman yeniden denenmemesi gerektiğini bilin. Kısıtlama benzeri bazı hatalar, kotanızın veya kredilerinizin tükendiği anlamına gelir, örneğin OpenAI'nin credit_balance_exhausted. Bunları yeniden denemek işe yaramaz, bu nedenle durun ve kullanıcıya bildirin.
  • Daha önce alınan verileri önbelleğe alma. Özellikle aynı verileri döndürme olasılığı olan istekler için API'den gelen yanıtları önbelleğe alın. Önbelleğe alma, API'ye yapılan çağrı sayısını azaltmanıza ve hız sınırları içinde kalmanıza yardımcı olur.
  • İstekleri sıraya al İstek hızını yönetmek ve API'nin hız sınırlarının aşılmadığından emin olmak için giden API istekleri için bir kuyruk uygulayın.
  • API çağrılarını iyileştirme. Yalnızca ihtiyacınız olan verileri getirin ve API destekliyorsa toplu iş isteklerini kullanın. Optimizasyon, istek sayısını azaltmanıza ve istek hızı sınırları içinde kalmanıza yardımcı olur.
  • Kullanıcıya neler olduğunu gösterin. "Meşgul, 5 saniye içinde yeniden denenecek" ifadesi, hiç bitmeyen bir spinner göstermekten daha iyidir.

Uygulamanızda bu teknikleri uyguladıktan sonra hız sınırlamasını düzgün şekilde işlediğini test edin. Çalıştırmayı hiç görmediğiniz yeniden deneme mantığı, işe yaradığını bilmediğiniz yeniden deneme mantığıdır. Bunu test etme yollarının karşılaştırması için bkz. Uygulamanızın kısıtlamayı nasıl işlediğini test etme.

Uygulamanızda deneyin

Dev Proxy seçtiğiniz API'ler için hız sınırlama yanıtlarını döndürürken uygulamanız gerçek URL'leri çağırmaya devam eder ve Retry-After süresi dolmadan önce uygulamanızın yeniden deneme yaptığını bildirir. Hazır ayarlar GitHub (github-rate-limiting), OpenAI (openai-throttling), Anthropic (anthropic-throttling) ve Microsoft Graph OneDrive ile SharePoint uç noktaları (microsoft-graph-rate-limiting) için kullanılabilir:

devproxy config get openai-throttling
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json"

Geliştirme Proxy'sini yüklemek için bkz. Dev Proxy'yi ayarlama.

Sonraki adım