मुख्य बातें
- Context windows combine prompt and completion, so long histories drain limits faster than expected.
- स्ट्रीमिंग के दौरान SSE इवेंट्स को सावधानी से हैंडल करना आवश्यक है ताकि खराब JSON या खोए हुए टोकन से बचा जा सके।
- JSON mode demands strict schema adherence; malformed responses cause silent parsing failures.
- प्रीपेड क्रिप्टो बिलिंग का अर्थ है कि त्रुटियाँ मुफ्त हैं, लेकिन आश्चर्य से बचने के लिए टोकन गणना सटीक होनी चाहिए।
आपका API कुंजी अस्वीकृत क्यों हो सकता है
जब क्लाइंट गलत फ़ॉर्मेट वाले हेडर भेजता है या रिक्वेस्ट बॉडी की सीमा पार करता है, तो API कीज़ अस्वीकार हो जाती हैं। सर्वर किसी भी लॉजिक को चलाने से पहले ऑथेंटिकेशन हेडर की जाँच करता है। अगर हेडर गायब है या उसमें अतिरिक्त स्पेस है, तो रिक्वेस्ट तुरंत विफल हो जाती है।
एक अन्य सामान्य कारण 8 MB बॉडी साइज सीमा से अधिक पेलोड भेजना है। कई संदेशों वाले बड़े कॉन्टेक्स्ट विंडो इस सीमा को आसानी से पार कर सकते हैं। भेजने से पहले अपने संदेश सरणी की लंबाई और टोकन गणना की जाँच करें।
- सुनिश्चित करें कि Authorization हेडर में 'Bearer' प्रीफिक्स सही ढंग से उपयोग किया गया है।
- Verify the request body size stays under 8 MB.
- सुनिश्चित करें कि API कुंजी सक्रिय है और समाप्त नहीं हुई है।
संदर्भ विंडो सीमाओं को समझना
संदर्भ विंडो में इनपुट प्रॉम्प्ट और उत्पन्न की गई पूर्णता दोनों शामिल हैं। हमारा API 100,000 टोकन विंडो का समर्थन करता है, लेकिन आपको दोनों पक्षों का ध्यान रखना होगा। यदि आप 80,000 टोकन संदर्भ भेजते हैं, तो प्रतिक्रिया के लिए केवल 20,000 शेष रह जाते हैं।
अगर आप max_tokens निर्दिष्ट नहीं करते हैं, तो अधिकांश मॉडल एक छोटे आउटपुट सीमा को डिफ़ॉल्ट रूप से उपयोग करते हैं। इससे लंबे जवाब अचानक कट सकते हैं। केवल तभी max_tokens को अपनी इच्छित लंबाई पर सेट करें जब आप एक सीमा चाहते हैं। याद रखें कि यह सीमा केवल प्रॉम्प्ट पर नहीं, बल्कि कुल अनुरोध पर लागू होती है।
स्ट्रीमिंग अंतरालों को सही ढंग से संभालना
सर्वर-सेंट इवेंट्स (SSE) के माध्यम से स्ट्रीमिंग के लिए मजबूत त्रुटि हैंडलिंग की आवश्यकता होती है। यदि कनेक्शन टूट जाता है, तो आप अंतिम टोकन या उपयोग मेटाडेटा खो सकते हैं। हमेशा आने वाले चंक को बफर करें और क्लाइंट साइड पर पूर्ण प्रतिक्रिया को पुनर्निर्मित करें।
टोकन उपयोग डेटा आमतौर पर स्ट्रीम के अंतिम चंक में भेजा जाता है। यदि आप कनेक्शन को जल्दी बंद कर देते हैं, तो आपको सटीक टोकन गणना छूट सकती है। इससे प्रीपेड सिस्टम में बिलिंग की सटीकता प्रभावित होती है। ट्रांजिएंट नेटवर्क समस्याओं को संभालने के लिए एक्सपोनेंशियल बैकऑफ़ के साथ रीट्राई मैकेनिज्म लागू करें।
एक समर्पित स्ट्रीमिंग क्लाइंट का उपयोग करें जो SSE पarsing को स्वचालित रूप से संभालता है। इससे पarsing त्रुटियों का जोखिम कम होता है और यह सुनिश्चित होता है कि आप सभी डेटा प्राप्त कर सकें।
JSON मोड पarsing त्रुटियाँ
जब response_format: {"type": "json_object"} का उपयोग किया जाता है, तो मॉडल को वैध JSON लौड़ना चाहिए। कोई भी विचलन आपके एप्लिकेशन में पार्सिंग त्रुटियां पैदा करता है। सुनिश्चित करें कि आपका प्रॉम्प्ट मॉडल को स्पष्ट रूप से केवल JSON आउटपुट करने का निर्देश दे।
कभी-कभी मॉडल JSON के चारों ओर मार्कडाउन कोड ब्लॉक शामिल करता है, जिससे सख्त पार्सर टूट जाते हैं। पार्स करने से पहले रैपर्स हटा दें। डेटा का उपयोग करने से पहले क्लाइंट साइड पर JSON संरचना की जाँच भी करें।
त्रुटियों को शीघ्रता से पकड़ने के लिए एक स्कीमा सत्यापन लाइब्रेरी का उपयोग करें। यह मॉडल द्वारा अप्रत्याशित कुंजियों या प्रकारों लौटने पर क्रैश होने से रोकता है।
टोकन गिनती और बिलिंग में हैरानियाँ
प्रीपेड बिलिंग केवल वास्तविक टोकन उपयोग के लिए शुल्क लेता है। त्रुटियाँ और अस्वीकृतियाँ मुफ्त हैं, जो सब्सक्रिप्शन मॉडलों की तुलना में एक महत्वपूर्ण लाभ है। हालाँकि, यदि आप पूरे संदर्भ को ध्यान में नहीं रखते हैं, तो टोकन गिनती मुश्किल हो सकती है।
संवाद इतिहास में प्रत्येक संदेश इनपुट टोकन सीमा में गिना जाता है। लंबी बातचीत आपकी पूर्व-भुगतान क्रेडिट को अपेक्षा से तेज़ी से खत्म कर देती है। सत्र के बीच में क्रेडिट खत्म होने से बचने के लिए अपनी उपयोग स्थिति की नियमित निगरानी करें।
क्रेडिट बैलेंस कम होने पर अलर्ट सेट करें। इससे आपकी रिक्वेस्ट फेल होने से पहले आप टॉप-अप कर सकते हैं। याद रखें कि क्रेडिट कभी भी एक्सपायर नहीं होते हैं, इसलिए आप जब भी सुविधा हो टॉप-अप कर सकते हैं।
NSFW प्रॉम्प्ट्स में नरम अस्वीकृतियों से बचना
सॉफ्ट रिफ्यूज़ल तब होता है जब मॉडल हिचकिचाता है या सीधे जवाब देने के बजाय आंशिक जवाब देता है। यह अक्सर विवादास्पद या वयस्क विषयों के साथ होता है। एक अनसेंसर्ड मॉडल में भी, कुछ ट्रिगर्स हिचकिचाहट का कारण बन सकते हैं।
temperature पैरामीटर को समायोजित करें ताकि यादृच्छिकता कम हो। कम तापमान मॉडल को अधिक निर्धारक बनाता है और उसे कम संभावना के साथ झुकने की अनुमति देता है। साथ ही, सुनिश्चित करें कि आपका प्रॉम्प्ट स्पष्ट और प्रत्यक्ष हो। ऐसी अस्पष्ट भाषा से बचें जो मॉडल को भ्रमित कर सकती है।
यदि आपको बार-बार नरम अस्वीकृतियाँ मिलती हैं, तो प्रॉम्प्ट को थोड़ा बदलकर देखें। शब्दों में छोटे बदलाव अक्सर संदेह को दूर करके सीधा जवाब दिलवा सकते हैं।
रेट लिमिट स्पाइक्स और बैकऑफ़ रणनीतियाँ
API प्रति मिनट 300 अनुरोध और प्रति कुंजी 8 समवर्ती अनुरोधों की अनुमति देता है। ट्रैफिक में अचानक वृद्धि इन सीमाओं को जल्दी ही प्रभावित कर सकती है। दर सीमा त्रुटियों को सहजता से संभालने के लिए एक्सपोनेंशियल बैकऑफ़ लागू करें।
जब आपको 429 स्टेटस कोड मिलता है, तो पुनः प्रयास करने से पहले प्रतीक्षा करें। एक छोटी विलंबता के साथ शुरू करें और प्रत्येक पुनः प्रयास के साथ उसे बढ़ाएं। इससे पीक समय के दौरान सर्वर पर अत्यधिक भार पड़ने से बचा जाता है।
अपने अनुरोध दर की निगरानी करें और उसी अनुसार अपनी सह-संचालन स्तरों को समायोजित करें। यदि आप कई एक साथ अनुरोध भेज रहे हैं, तो उन्हें समय के साथ फैलाने पर विचार करें। यह सीमाओं को पार किए बिना स्थिर थ्रूपुट सुनिश्चित करता है।
फंक्शन कॉलिंग पेलोड संरचनाएं
फंक्शन कॉलिंग के लिए एक विशिष्ट पेलोड संरचना की आवश्यकता होती है। अपने फंक्शनों को tools पैरामीटर में परिभाषित करें और tool_choice निर्दिष्ट करें। यदि मॉडल यह निर्धारित करता है कि यह उचित प्रतिक्रिया है, तो यह फंक्शन कॉल लौटाएगा।
सुनिश्चित करें कि आपके फ़ंक्शन परिभाषाएँ सटीक और पूर्ण हैं। गायर पैरामीटर या गलत प्रकार मॉडल को अमान्य कॉल जनरेट करने का कारण बन सकते हैं। इन्हें निष्पादित करने से पहले हमेशा फ़ंक्शन कॉल तर्कों की जाँच करें।
tool_choice पैरामीटर का उपयोग करें ताकि मॉडल फ़ंक्शन को कब कॉल करे, इस पर नियंत्रण रख सकें। आप फ़ंक्शन कॉल को ज़बरदस्ती करवा सकते हैं, मॉडल को निर्णय लेने दे सकते हैं, या फ़ंक्शन कॉलिंग को पूरी तरह बंद कर सकते हैं। इससे आपको मॉडल के व्यवहार पर बारीक नियंत्रण मिलता है।
400 और 500 त्रुटियों का निदान
400 त्रुटियाँ क्लाइंट-साइड समस्याओं को इंगित करती हैं, जैसे अमान्य JSON या गायत पैरामीटर। 500 त्रुटियाँ सर्वर-साइड समस्याओं को सुझाती हैं, जैसे आंतरिक त्रुटियाँ या टाइमआउट। इन दोनों में अंतर करना आपको तेज़ी से डीबग करने में मदद करता है।
400 त्रुटियों के लिए, प्रतिक्रिया में प्रदान की गई त्रुटि संदेश की जाँच करें। यह आमतौर पर समस्या की ओर सीधे इशारा करता है। 500 त्रुटियों के लिए, एक छोटी देरी के बाद अनुरोध को पुनः प्रयास करें। यदि त्रुटि बनी रहती है, तो अनुरोध ID के साथ सहायता से संपर्क करें।
प्रत्येक त्रुटि के लिए अनुरोध और प्रतिक्रिया विवरण लॉग करें। इससे पैटर्न और बार-बार होने वाली समस्याओं की पहचान करने में मदद मिलती है। त्रुटियों को समय के साथ ट्रैक करने और अपनी API इंटीग्रेशन को बेहतर बनाने के लिए एक लॉगिंग सेवा का उपयोग करें।