रेट लिमिट त्रुटियां ('Too Many Requests', ‘Rate limit reached’) आपके संगठन की रेट लिमिट तक पहुंचने के कारण होती हैं, जो प्रति मिनट सबमिट किए जा सकने वाले अनुरोधों और टोकन की अधिकतम संख्या होती है. अगर सीमा पूरी हो जाती है, तो संगठन रेट लिमिट रीसेट होने तक अनुरोध सफलतापूर्वक सबमिट नहीं कर सकता. त्रुटि संदेश ऐसा दिखता है:
tokens per min पर organization org-exampleorgid123 में gpt-3.5-turbo के लिए रेट लिमिट पहुंच गई।
सीमा: 10000.000000 / min. वर्तमान: 10020.000000 / min. हम इन त्रुटियों को एक्सपोनेंशियल बैकऑफ़ का उपयोग करके संभालने की सलाह देते हैं. एक्सपोनेंशियल बैकऑफ़ का मतलब है कि रेट लिमिट त्रुटि आने पर थोड़े समय के लिए रुकना, फिर असफल अनुरोध को दोबारा आज़माना. अगर अनुरोध फिर भी असफल रहता है, तो रुकने की अवधि बढ़ा दी जाती है और प्रक्रिया दोहराई जाती है. यह तब तक जारी रहता है जब तक अनुरोध सफल न हो जाए या रीट्राई की अधिकतम संख्या पूरी न हो जाए.
क्योंकि असफल अनुरोध आपकी प्रति-मिनट सीमा में गिने जाते हैं, इसलिए किसी अनुरोध को लगातार दोबारा भेजना काम नहीं करेगा. रेट लिमिट कम समयावधियों पर भी लागू हो सकती हैं - उदाहरण के लिए, 60 RPM सीमा के लिए प्रति सेकंड 1 अनुरोध - यानी कम समय में अधिक संख्या में अनुरोधों के बर्स्ट भी रेट लिमिट त्रुटियों का कारण बन सकते हैं. एक्सपोनेंशियल बैकऑफ़ अनुरोधों के बीच अंतराल रखकर इन त्रुटियों की आवृत्ति को कम करने में अच्छी तरह काम करता है.
Python में, एक्सपोनेंशियल बैकऑफ़ समाधान ऐसा दिख सकता है:
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 लाइब्रेरी एक तृतीय-पक्ष टूल है. हम अपने सभी ग्राहकों को प्रोत्साहित करते हैं कि वे अपने प्रोजेक्ट के लिए किसी भी बाहरी कोड को सत्यापित करते समय अपनी ओर से पूरी जांच-पड़ताल करें.)
अगर एक्सपोनेंशियल बैकऑफ़ लागू करने के बाद भी यह त्रुटि आती है, तो आपको अपना उपयोग टियर बढ़ाना पड़ सकता है. आप अपनी मौजूदा रेट लिमिट देख सकते हैं और अपनी रेट लिमिट बढ़ाने के लिए अपने खाते की सेटिंग के लिमिट सेक्शन में अपना ट्रस्ट टियर बढ़ाने का तरीका देख सकते हैं.
