Ollama API: सामान्य गलतियों का ट्राबलशूटिंग
ollama API स्थानीय या होस्टेड मॉडल को थर्ड-पार्टी टूल्स से कनेक्ट करने के लिए मानक इंटरफेस है, लेकिन कई डेवलपर्स स्थानीय इनफरेंस से रिमोट एंडपॉइंट पर स्विच करते समय दीवारों से टकराते हैं। यह गाइड सटीक कॉन्फ़िगरेशन त्रुटियों, टोकन सीमाओं और स्ट्रीमिंग क्विक्स को तोड़ देती है जो इंटीग्रेशन को तोड़ देती हैं।
अंतिम अद्यतन
सारांश
- अधिकतर इंटीग्रेशन विफलताएं गलत बेस यूआरएल या रिमोट एंडपॉइंट्स को स्थानीय ओलामा से बदलते समय गैर-मौजूद ऑथेंटिकेशन हेडर्स से आती हैं।
- 100k कॉन्टेक्स्ट विंडो इनपुट और आउटपुट टोकन दोनों को शामिल करता है, जो लंबी बातचीत के लिए उपलब्ध स्थान को काफी कम कर देता है।
- स्ट्रीमिंग प्रतिक्रियाओं को सही ढंग से SSE चंक्स को पार्स करने की आवश्यकता होती है, क्योंकि टोकन उपयोग मेटाडेटा केवल अंतिम चंक में दिखाई देता है।
- फंक्शन कॉलिंग और JSON मोड कठोर स्कीमा सत्यापन की आवश्यकता होती है, अन्यथा मॉडल खराब JSON लौटाएगा।
फ्री क्रेडिट्स के साथ शुरू करें
ईमेल और पासवर्ड का उपयोग करके अपनी कुंजी तुरंत प्राप्त करें।
कुंजी बनाएं100k संदर्भ विंडो को समझना
प्रत्येक खंड की पहली वाक्य उस शीर्षक में पूछे गए प्रश्न का उत्तर देता है।
100,000 टोकन का संदर्भ विंडो विशाल लगता है, लेकिन यह इनपुट प्रॉम्प्ट और आउटपुट कंप्लीशन के बीच बराबर बांटा जाता है। जब आप एक लंबे सिस्टम प्रॉम्प्ट के साथ एक लंबे संवाद इतिहास भेजते हैं, तो आप उस बजट को उम्मीद से तेजी से खर्च करते हैं। कई डेवलपर्स मानते हैं कि लिमिट केवल इनपुट पर लागू होती है, जिससे मॉडल अपनी छत तक पहुंचने पर ट्रंकेटेड प्रतिक्रियाएं या साइलेंट फेलियर आती हैं।
एक परिदृश्य पर विचार करें जहां आप 50,000-टोकन वाले दस्तावेज़ को संदर्भ के रूप में पास करते हैं। आपके पास वास्तविक जनरेशन के लिए केवल 50,000 टोकन शेष हैं। यदि आप इस संतुलन का सावधानीपूर्वक प्रबंधन नहीं करते हैं, तो मॉडल वाक्य के बीच में कट जाएगा। प्रत्येक अनुरोध में भेजे गए कुल टोकन गण की निगरानी करें ताकि अप्रत्याशित ट्रंकेशन से बचा जा सके।
अधिकतम टोकन बनाम डिफ़ॉल्ट आउटपुट लंबाई
हर खंड को अपने शीर्षक में प्रश्न का उत्तर देना चाहिए।
जब तक आप कोई सीमा निर्दिष्ट नहीं करते, अधिकांश APIs एक modest आउटपुट लंबाई को डिफ़ॉल्ट मानते हैं, अक्सर लगभग 2,048 टोकन। यह डिफ़ॉल्ट छोटे क्वेरी के लिए उपयोगी है लेकिन कोड जनरेशन या लंबे-प्रकार की राइटिंग के लिए विनाशकारी है। यदि आपको मॉडल से एक पूर्ण स्क्रिप्ट या विस्तृत विश्लेषण उत्पन्न करने की आवश्यकता है, तो आपको स्पष्ट रूप से max_tokens पैरामीटर सेट करना होगा।
इस मान को बहुत अधिक सेट करने से विलंबता और लागत पर भी प्रभाव पड़ सकता है। आप हर जनरेट किए गए टोकन के लिए भुगतान कर रहे हैं, चाहे वह उपयोगी हो या नहीं। एक व्यावहारिक दृष्टिकोण यह है कि अपनी उपयोग स्थिति से मेल खाने वाले एक उचित ऊपरी सीमा को सेट करें, न कि इसे डिफ़ॉल्ट या एक मनमाने अनंत पर छोड़ें।
स्ट्रीमिंग SSE चंक्स को सही तरीके से हैंडल करना
स्ट्रीमिंग डेटा हानि से बचने के लिए Server-Sent Events के सावधानीपूर्वक हैंडलिंग की आवश्यकता है।
जब आप स्ट्रीमिंग सक्षम करते हैं, तो API एकल पूर्ण प्रतिक्रिया के बजाय छोटे-छोटे चंक की श्रृंखला लौटाता है। प्रत्येक चंक में टेक्स्ट का डेल्टा होता है, लेकिन महत्वपूर्ण विवरण जैसे टोकन उपयोग आँकड़े अक्सर केवल अंतिम चंक में ही उपस्थित होते हैं। यदि आप बहुत जल्दी पार्सिंग बंद कर देते हैं, तो आपको बिलिंग या रेट-लिमिट ट्रैकिंग के लिए आवश्यक उपयोग डेटा छूट जाता है।
इसके अलावा, स्ट्रीमिंग में त्रुटि हैंडलिंग में जटिलता लाता है। एक नेटवर्क विच्छेद आपको आंशिक टेक्स्ट छोड़ सकता है। आपको एक मजबूत पार्सर की आवश्यकता होती है जो इन टुकड़ों से पूर्ण संदेश को पुनर्स्थापित कर सके। यह विशेष रूप से उन UI घटकों के साथ एकीकरण के सत्य है जो रियल-टाइम में टेक्स्ट को रेंडर करते हैं।
फंक्शन कॉलिंग टूल परिभाषा त्रुटियां
फंक्शन कॉलिंग तब विफल हो जाता है जब टूल स्कीमा मॉडल की उम्मीदों से मेल नहीं खाते।
मॉडल टूल परिभाषाओं के लिए एक विशिष्ट JSON संरचना की उम्मीद करता है। यदि आप आवश्यक फ़ील्ड्स छोड़ देते हैं या गलत प्रकार का उपयोग करते हैं, तो मॉडल टूल को पूरी तरह से नज़रअंदाज़ कर सकता है या एक खराब प्रतिक्रिया दे सकता है। यह एजेंट्स बनाने वाले डेवलपर्स के लिए एक आम समस्या है जिन्हें बाहरी API के साथ इंटरैक्ट करने की आवश्यकता होती है।
अनुरोध भेजने से पहले API दस्तावेज़ीकरण के खिलाफ अपने टूल स्कीमा को सत्यापित करें। छोटी विचलन, जैसे पैरामीटर के लिए स्ट्रिंग के बजाय एक पूर्णांक का उपयोग करना, फ़ंक्शन कॉल को तोड़ सकते हैं। इसका डीबगिंग कच्चे JSON प्रतिक्रिया को निरीक्षण करने की आवश्यकता है कि क्या मॉडल ने टूल को कॉल करने का प्रयास किया था या नहीं।
JSON मोड प्रतिक्रिया प्रारूप मुद्दे
JSON मोड मॉडल को वैध JSON आउटपुट करने के लिए मजबूर करता है, लेकिन यह अभी भी कल्पना कर सकता है।
जब आप response_format को json_object पर सेट करते हैं, तो मॉडल को केवल JSON आउटपुट करने के लिए बाध्य किया जाता है। हालांकि, इसका मतलब यह नहीं है कि सामग्री सार्थक रूप से सही है। मॉडल मान्य JSON सिंटैक्स लेकिन गलत कुंजियों या अनुपस्थित फ़ील्ड्स के साथ उत्पन्न कर सकता है। आपको डेटा का उपयोग करने से पहले संरचना को मान्य करने के लिए एक पार्सर की अभी भी आवश्यकता होती है।
आगे, JSON मोड कभी-कभी मॉडल की रचनात्मकता या लचीलेपन को कम कर सकता है। यदि आपका प्रॉम्प्ट बहुत जटिल है, तो मॉडल कठोर JSON संरचना में कथा को फिट करने में संघर्ष कर सकता है। इस मोड का उपयोग मुख्य रूप से संरचित डेटा निष्कर्षण या फ़ंक्शन तर्कों के लिए करें जहां स्थिरता सूक्ष्मता से अधिक महत्वपूर्ण है।
रेट लिमिटिंग और समवर्ती अनुरोध
रेट लिमिट्स प्रति API कुंजी पर लागू होते हैं, न कि प्रति उपयोगकर्ता या IP पता।
अधिकांश APIs प्रति मिनट अनुरोधों और समवर्ती कनेक्शन पर एक सीमा लगाते हैं। यदि आप इन सीमाओं को पार करते हैं, तो आपको 429 Too Many Requests त्रुटि मिलेगी। यह उन एप्लिकेशन के लिए महत्वपूर्ण है जो उपयोगकर्ता अनुरोधों को संभालने के लिए कई थ्रेड्स या प्रक्रियाएं स्पॉन करती हैं। एक ही कुंजी सीमित संख्या में समानांतर अनुरोधों को ही संभाल सकती है।
इसे प्रबंधित करने के लिए, अपने क्लाइंट कोड में एक्सपोनेंशियल बैकऑफ़ लागू करें। जब आपको 429 त्रुटि मिले, तो पुनः प्रयास करने से पहले एक छोटे समय के लिए प्रतीक्षा करें। यह सर्वर पर अत्यधिक भार डालने से बचाता है और एक सुचारू उपयोगकर्ता अनुभव सुनिश्चित करता है। अपनी प्रतीक्षा समय को अनुकूलित करने के लिए हमेशा पुनः प्रयास-बाद (retry-after) मानों के लिए प्रतिक्रिया हेडर की जाँच करें।
API Key Replacement Behavior
एक API कुंजी को पुनर्जनरेट करने से पिछली कुंजी तुरंत अमान्य हो जाती है।
कुछ प्लेटफॉर्म खाते प्रति केवल एक सक्रिय कुंजी की अनुमति देते हैं। यदि आप एक नई कुंजी उत्पन्न करते हैं, तो पुरानी कुंजी तुरंत काम करना बंद कर देती है। यदि आपके पास पुरानी कुंजी का उपयोग करने वाले कई सेवाएं या स्क्रिप्ट हैं, तो इससे विघटन हो सकता है। रोटेट करने से पहले अपनी कुंजी के सभी उदाहरणों को हमेशा अपडेट करें।
यह व्यवस्था सुरक्षा के लिए डिज़ाइन की गई है, यह सुनिश्ित करती है कि लीकी गई कुंजी अनिश्चित काल तक उपयोग नहीं की जा सकती। हालांकि, इसमें वितरित प्रणालियों में सावधानीपूर्ण प्रबंधन की आवश्यकता होती है। अपनी कुंजी को स्टोर करने के लिए एनवायरनमेंट वेरिएबल्स या सीक्रेट मैनेजर का उपयोग करें, जिससे अपडेट आसान और कम त्रुटि-प्रone हो जाएं।
अनुरोध बॉडी आकार सीमाएँ
बड़े पेलोड 8 MB अनुरोध बॉडी सीमा से अधिक हो सकते हैं।
जब base64 के रूप में एन्कोडेड लंबे दस्तावेज़ या छवियाँ भेजी जाती हैं, तो अनुरोध बॉडी तेज़ी से बढ़ सकती है। यदि आप आकार सीमा से अधिक हो जाते हैं, तो सर्वर अनुरोध को 413 Payload Too Large त्रुटि के साथ अस्वीकार कर देगा। यह एक कठोर सीमा है जिसे कई मामलों में अपने प्लान अपग्रेड करके नहीं बढ़ाया जा सकता है।
इससे बचने के लिए, अपने इनपुट को कंप्रेस करें या बड़े दस्तावेजों को छोटे चंक में विभाजित करें। आप छवियों के लिए एक अधिक कुशल एन्कोडिंग विधि भी उपयोग कर सकते हैं। विशेष रूप से मीडिया-समृद्ध सामग्री के साथ काम करते समय, अपने अनुरोधों के आकार की निगरानी जरूर करें।
अक्सर पूछे जाने वाले प्रश्न
क्या अनकैप्ड LLL मानक मॉडलों की तरह ही पैरामीटर का समर्थन करता है?
हाँ, अनकैप्ड इंजन temperature, top_p और स्टॉप सीक्वेंस जैसे मानक पैरामीटर का समर्थन करता है। इसे मानक मॉडल्स के लिए ड्रॉप-इन रिप्लेसमेंट के रूप में डिज़ाइन किया गया है, इसलिए आप वही क्लाइंट कोड और पैरामीटर उपयोग कर सकते हैं जिनसे आप पहले से परिचित हैं।
क्या Ollama API key प्रोडक्शन उपयोग के लिए सुरक्षित है?
API कुंजी आपके प्रीपेड क्रेडिट और उपयोग सीमाओं से जुड़ी है। यह सुरक्षित है जब तक आप इसे निजी रखते हैं। हम अपने प्रशिक्षण के लिए आपके प्रॉम्प्ट का उपयोग नहीं करते हैं, और कुंजी को तुरंत प्रतिस्थापित किया जा सकता है यदि वह संक्रमित हो जाए। सुनिश्चित करें कि इसे एनवायरनमेंट वेरिएबल्स में सहेजें, न कि अपने स्रोत कोड में।
क्या मैं इस uncensored AI मॉडल का उपयोग कॉमर्शियल प्रोजेक्ट्स के लिए कर सकता हूँ?
हाँ, आप उत्पन्न टेक्स्ट का व्यावसायिक उद्देश्यों के लिए उपयोग कर सकते हैं। मॉडल असीमित उपयोग के लिए ट्यून्ड है, जिसमें वयस्क सामग्री शामिल है, जब तक कि इसमें किशोर शामिल न हों। टोकन उपयोग शुल्कों के अलावा कोई अतिरिक्त लाइसेंस शुल्क नहीं है।
जब अनसेंसर ollama मॉडल अमान्य JSON लौटाए तो त्रुटियों को कैसे हैंडल करें?
एक रीट्राई लिमिट के साथ एक पुनः प्रयास तंत्र लागू करें। यदि मॉडल अमान्य JSON लौटाता है, तो आप कम तापमान मान के साथ अनुरोध को फिर से प्रयास कर सकते हैं ताकि अधिक निर्धारक आउटपुट को प्रोत्साहित किया जा सके। अपने एप्लिकेशन में डेटा का उपयोग करने से पहले हमेशा JSON संरचना की सत्यापन करें।
सेकंडों में अपना API key प्राप्त करें
रजिस्टर करें, कुंजी कॉपी करें, एंडपॉइंट URL अपडेट करें। बस इतना ही करना है।