रेट लिमिट त्रुटियां ('बहुत अधिक अनुरोध', ‘रेट लिमिट पहुंच गई’) आपकी संस्था की रेट लिमिट तक पहुंचने के कारण होती हैं, जो प्रति मिनट सबमिट किए जा सकने वाले अनुरोधों और टोकन की अधिकतम संख्या है। यदि लिमिट तक पहुंच जाती है, तो रेट लिमिट रीसेट होने तक संस्था सफलतापूर्वक अनुरोध सबमिट नहीं कर सकती। त्रुटि संदेश ऐसा दिखता है:
tokens per min पर organization org-exampleorgid123 में gpt-3.5-turbo के लिए रेट लिमिट पहुंच गई।
सीमा: 10000.000000 / min. वर्तमान: 10020.000000 / min. हम इन त्रुटियों को exponential backoff का उपयोग करके संभालने की सलाह देते हैं। Exponential backoff का अर्थ है कि रेट लिमिट त्रुटि आने पर थोड़ी देर रुकना, फिर असफल अनुरोध को दोबारा भेजना। यदि अनुरोध फिर भी सफल नहीं होता, तो प्रतीक्षा की अवधि बढ़ाई जाती है और प्रक्रिया दोहराई जाती है। यह तब तक जारी रहता है जब तक अनुरोध सफल न हो जाए या पुनः प्रयासों की अधिकतम संख्या तक न पहुंच जाए।
चूंकि असफल अनुरोध आपकी प्रति-मिनट लिमिट में गिने जाते हैं, इसलिए किसी अनुरोध को लगातार फिर से भेजना काम नहीं करेगा। रेट लिमिट कम अवधियों पर भी लागू हो सकती है - उदाहरण के लिए, 60 RPM लिमिट के लिए 1 अनुरोध प्रति सेकंड - यानी कम समय में अधिक मात्रा वाले अनुरोधों के बर्स्ट भी रेट लिमिट त्रुटियों का कारण बन सकते हैं। Exponential backoff अनुरोधों के बीच अंतर रखकर अच्छी तरह काम करता है, जिससे इन त्रुटियों की आवृत्ति कम होती है।
Python में, exponential backoff समाधान कुछ ऐसा दिख सकता है:
from openai import OpenAI, RateLimitError
import backoff
client = OpenAI()
@backoff.on_exception(backoff.expo, RateLimitError)
def completions_with_backoff(**kwargs):
response = client.completions.create(**kwargs)
return response(कृपया ध्यान दें: backoff लाइब्रेरी एक third-party टूल है। हम अपने सभी ग्राहकों को प्रोत्साहित करते हैं कि वे अपने प्रोजेक्ट्स के लिए किसी भी बाहरी कोड को सत्यापित करते समय उचित जांच-पड़ताल करें।)
यदि exponential backoff लागू करने पर भी यह त्रुटि आती है, तो आपको शायद अपना उपयोग स्तर बढ़ाने की आवश्यकता हो सकती है। आप अपनी वर्तमान रेट लिमिट और रेट लिमिट बढ़ाने के लिए अपना trust tier कैसे बढ़ाएं, यह अपने खाता सेटिंग्स के limits section में देख सकते हैं।
