Ollama API ट्राबलशूटिंग गाइड
यह गाइ समझाती है कि अपने LLM API एंडपॉइंट को सही तरीके से कॉन्फ़िगर, ट्राबलशूट और सुरक्षित कैसे करें, चाहे आप एक लोकल इंस्टेंस चला रहे हों या हमारे uncensored OpenAI-compatible सेवा जैसे एक थर्ड-पार्टी प्रदाता का उपयोग कर रहे हों। हम सामान्य कनेक्शन त्रुटियों, स्ट्रीमिंग कॉन्फ़िगरेशन, और बिलिंग अंकगणित कवर करते हैं ताकि आप अपने कोड को तुरंत काम करने में मदद मिल सके।
अंतिम अद्यतन
सारांश
- पुष्टि करें कि आपका बेस यूआरएल और API कुंजी प्रोवाइडर's दस्तावेज़ीकरण से मेल खाते हैं जटिल कोड को डीबग करने से पहले।
- स्ट्रीमिंग प्रतिक्रियाओं में अप्रत्याशित ट्रंकेशन या बिलिंग ओवरसेज से बचने के लिए स्पष्ट टोकन सीमाएं सेट करें।
- Google लॉगिन या ईमेल/पासवर्ड का उपयोग करें ताकि फोन सत्यापन की देरी के बिना तुरंत कुली जनरेट हो सके।
- डिफ़ॉल्ट पोर्ट्स को बदलकर और अनधिकृत कंप्यूट उपयोग को रोकने के लिए एक्सेस को सीमित करके अपने लोकल एंडपॉइंट को सुरक्षित करें।
ollama API एंडपॉइंट संरचना को समझना
The ollama endpoint एक कठोर RESTful पैटर्न का पालन करता है जो OpenAI API संरचना को दर्शाता है। आप इसे /v1/chat/completions और उपलब्ध मॉडल्स को क्वेरी करने के माध्यम से GET /v1/models. इस मानकीकरण से आपको मौजूदा क्लाइंट कोड को फिर से लिखे बिना अंडरलाइंग मॉडल बदलने की अनुमति मिलती है।
अक्सर डेवलपर्स यह मानते हैं कि एंडपॉइंट डिफ़ॉल्ट रूप से एम्बेडिंग्स या इमेज जनरेशन का समर्थन करता है। ऐसा नहीं है। हमारा होस्टेड सर्विस, उदाहरण के लिए, केवल एक single uncensored मॉडल के साथ टेक्स्ट कंप्लीशन प्रदान करता है। हमेशा जांचें कि GET /v1/models प्रतिक्रिया देखें कि कौन सी क्षमताएं प्रकट की गई हैं। यदि आपको मॉडलों की सूची दिखाई देती है, तो अनुरोध भेजने से पहले उनकी आईडी की पुष्टि करें।
स्थानीय इंस्टेंस का उपयोग करते समय, एंडपॉइंट आमतौर पर चलता है http://localhost:11434. क्लाउड प्रोवाइडर्स के लिए, आप एक कस्टम बेस URL का उपयोग करेंगे। सुनिश्चित करें कि आपका HTTP क्लाइंट हेडर्स को सही तरीके से संभालता है, विशेष रूप से Content-Type: application/json. एक माइनिंग हेडर अक्सर सिलेंट फेल्योर का कारण बनता है जो मॉडल एरर जैसा दिखता है।
मुख्य संरचनात्मक तत्व:
model: विशिष्ट LLM के लिए स्ट्रिंग पहचानकर्ता।messages: भूमिका-आधारित सामग्री वस्तुओं का एक सरणी।stream: एक बूलियन फ्लैग जो सर्वर-सेंट इवेंट्स (SSE) को सक्षम करता है।
आपके ollama API कॉल्स क्यों फेल हो सकते हैं
API कॉल आमतौर पर गलत बेस URL, समाप्त हो चुकी कुंजियों या खराब फॉर्मेट JSON पेलोड के कारण विफल हो जाती हैं। सबसे सामान्य त्रुटि 401 अनऑथोराइज्ड प्रतिक्रिया है, जिसका अर्थ है कि आपकी API कुंजी अनुपलब्ध या अमान्य है। एक बाराह बार होने वाली अन्य समस्या 404 नॉट फाउंड है, जो इंगित करती है कि एंडपॉइंट अनुरोधित पथ या मॉडल ID का समर्थन नहीं करता है।
अपने अनुरोध बॉडी को सावधानी से जांचें। यदि आप एक ऐसा पैरामीटर भेजते हैं जिसका एंडपॉइंट समर्थन नहीं करता है, जैसे कि modalities एक केवल-टेक्स्ट मॉडल के लिए, सर्वर अनुरोध को अस्वीकार कर सकता है। हमारा सेवा, उदाहरण के लिए, इमेज इनपुट का समर्थन नहीं करती। इसे भेजने से तुरंत एक त्रुटि आती है।
नेटवर्क टाइमआउट भी विफलता का कारण बनते हैं। यदि आपका स्थानीय Ollama इंस्टेंस निष्क्रिय है, तो यह मॉडल को VRAM से अनलोड कर सकता है। कोल्ड स्टार्ट के बाद पहले अनुरोध में कई सेकंड लग सकते हैं। समय से पहले डिस्कनेक्शन से बचने के लिए अपने HTTP क्लाइंट में एक उदार टाइमआउट सेट करें।
सामान्य त्रुटि कोड:
400: बैड रिक्वेस्ट (मैल्फॉर्म्ड JSON या अमान्य पैरामीटर)।401: अनअथोराइज्ड (अमान्य या अनुपलब्ध API कुंजी)।429: बहुत सारे अनुरोध (रेट लिमिट पार हो गया)।500: इंटरनल सर्वर एरर (मॉडल लोडिंग विफलता)।
अनसेंसर्ड ollama मॉडल्स को सही ढंग से कॉन्फ़िगर करना
अनसेंसर्ड मॉडल अक्सर अपेक्षित रूप से व्यवहार करने के लिए विशिष्ट पैरामीटर की आवश्यकता करते हैं। मुख्य अंतर system प्रॉम्प्ट। आपको मॉडल को स्पष्ट रूप से मान्यताओं को बायपास करने के लिए निर्देशित करना होगा। एक मजबूत सिस्टम प्रॉम्प्ट के बिना, मॉडल डिफ़ॉल्ट सुरक्षा व्यवहार में वापस आ सकता है।
हमारा एंडपॉइंट मॉडल ID का उपयोग करता है uncensored. आप इस ID के लिए अनुरोध भेजते हैं, और सर्वर अंतर्निहित मॉडल चयन संभालता है। यह मॉडल संस्करणों के प्रबंधन की जटिलता को अमूर्त करता है। आपको यह नहीं जानने की आवश्यकता है कि अंतर्निहित वास्तुकल्पिका Llama-आधारित है या Mistral-आधारित।
को एडजस्ट करें temperature पैरामीटर रचनाशीलता को नियंत्रित करने के लिए। 0.7 का मान संतुलित प्रतिक्रियाओं के लिए एक अच्छा प्रारंभिक बिंदु है। उच्च मान यादृच्छिकता बढ़ाते हैं, जो रचनात्मक लेखन के लिए उपयोगी है लेकिन तथ्यात्मक सटीकता को कम कर सकते हैं। निम्न मान आउटपुट को अधिक निर्धारणात्मक बनाते हैं।
कॉन्फ़िगरेशन टिप्स:
- उपयोग करें
top_pके साथtemperatureबेहतर नियंत्रण के लिए। - सेट करें
stopअनंत लूप से बचने के लिए अनुक्रम। - हमेशा एक
systemभूमिका परिभाषा के लिए संदेश।
स्ट्रीमिंग और टोकन लिमिट्स हैंडल करना
स्ट्रीमिंग प्रतिक्रियाएं सर्वर-सेंट इवेंट्स (SSE) के माध्यम से चंक्स में डेटा लौटाती हैं। प्रत्येक चंक एक आंशिक पूर्णता रखता है। आपको पूर्ण प्रतिक्रिया प्राप्त करने के लिए इन चंक्स को एकत्र करना होगा। हमारी सेवा में अंतिम चंक में टोकन उपयोग सांख्यिकी शामिल होती है, जिससे आपको लागत का रियल-टाइम ट्रैकिंग करने की अनुमति मिलती है।
टोकन सीमाएँ लंबी बातचीत के लिए महत्वपूर्ण हैं। हमारा एंडपॉइंट 100,000 टोकन की संदर्भ विंडो का समर्थन करता है, जो प्रॉम्प्ट और पूर्णता दोनों को मिलाकर। हालाँकि, प्रति अनुरोध अधिकतम आउटपुट 16,000 टोकन है। यदि आप सेट नहीं करते max_tokens, डिफ़ॉल्ट 2,048 टोकन है। इससे लंबे उत्तर अचानक कट सकते हैं।
स्ट्रीमिंग करते समय, नेटवर्क विघटनों को सहजता से संभालें। यदि कनेक्शन टूट जाता है, तो आप अंतिम प्राप्त चंक से फिर से शुरू कर सकते हैं यदि सर्वर इसे समर्थन करता है। अन्यथा, आपको पूरे अनुरोध को फिर से भेजने की आवश्यकता हो सकती है। हमेशा usage field अंतिम चंक में बिलिंग की हैरानी से बचने के लिए।
स्ट्रीमिंग सर्वोत्तम अभ्यास:
- खाली लाइनों को नजरअंदाज करते हुए SSE इवेंट्स को सही ढंग से पार्स करें।
- मेमोरी या बफर में चंक एकत्र करें।
- जांचें
usageobject अंतिम चंक में टोकन काउंट के लिए।
बिलिंग त्रुटियां और टोकन अंकगणित
बिलिंग त्रुटियां अक्सर टोकन की गिनती के तरीके को समझने में गलती से उत्पन्न होती हैं। टोकन इनपुट (प्रॉम्प्ट) और आउटपुट (पूर्णता) दोनों के लिए चार्ज किए जाते हैं। हमारा मूल्य निर्धारण $0.15 प्रति 1M इनपुट टोकन और $0.50 प्रति 1M आउटपुट टोकन है। त्रुटियां और अस्वीकृतियां मुफ्त हैं, जो डिबगिंग के दौरान लागत कम करती हैं।
टोकनाइजर अक्सर 1:1 के साथ अक्षरों से मैप नहीं करते हैं। एक शब्द कई टोकन हो सकता है। यदि आप अक्षर गिनते हुए लागत का अनुमान लगाते हैं, तो आप बिल को कम आंक सकते हैं। अनुरोध भेजने से पहले सटीक गणना प्राप्त करने के लिए अपने क्लाइंट में एक विश्वसनीय टोकनाइजर लाइब्रेरी का उपयोग करें।
क्रेडिट समाप्त नहीं होता है। यदि आप क्रिप्टो के साथ टॉप अप करते हैं, तो बैलेंस तब तक बना रहता है जब तक आप इसे उपयोग नहीं करते। यह दीर्घकालिक परियोजनाओं के लिए उपयोगी है। हालांकि, ध्यान रखें कि प्रत्येक रिक्वेस्ट आपके बैलेंस से टोकन खर्च करती है। यदि आपका बैलेंस कम है, तो बाद की रिक्वेस्ट विफल हो सकती है।
बिलिंग टिप्स:
- हर प्रतिक्रिया में टोकन उपयोग ट्रैक करें।
- कम बैलेंस थ्रेशोल्ड के लिए अलर्ट सेट करें।
- उपयोग करें
max_tokensसंभावित लागतों को कैप करने के लिए।
सुरक्षा और पोर्ट स्कैनिंग समस्याएं
स्थानीय Ollama एंडपॉइंट अक्सर डिफ़ॉल्ट रूप से नेटवर्क पर खुले होते हैं। इससे वे पोर्ट स्कैनरों के लिए संवेदनशील हो जाते हैं जो मुफ्त कंप्यूट खोज रहे होते हैं। यदि आप बिना प्रमाणीकरण के पोर्ट 11434 को एक्सपोज़ करते हैं, तो कोई भी आपके GPU संसाधनों का उपयोग कर सकता है। इससे बिजली के बिल और धीमी प्रदर्शन में वृद्धि हो सकती है।
डिफ़ॉल्ट पोर्ट को बदलकर या ऑथेंटिकेशन के साथ एक रिवर्स प्रॉक्सी का उपयोग करके अपने एंडपॉइंट को सुरक्षित करें। हमारा होस्टेड सर्विस आपके लिए सुरक्षा संभालता है, इसलिए आपको पोर्ट एक्सपोजर की चिंता करने की आवश्यकता नहीं है। आपको केवल अपनी API कुंजी को गोपनीय रखने की आवश्यकता है।
लोकल सेटअप के लिए, विश्वसनीय आईपी पतों तक पहुंच को सीमित करने के लिए एक फायरवॉल का उपयोग करें। आप Ollama की कॉन्फ़िगरेशन फ़ाइल में टोकन-आधारित प्रमाणीकरण भी सक्षम कर सकते हैं। यह अनधिकृत उपयोगकर्ताओं को अनुरोध करने से रोकता है।
सुरक्षा कदम:
- इंटरनेट पर एक्सपोज़ करते समय डिफ़ॉल्ट पोर्ट बदलें।
- HTTPS और auth के साथ एक रिवर्स प्रॉक्सी का उपयोग करें।
- अपने नेटवर्क ट्रैफ़िक की असामान्य गतिविधि के लिए निगरानी करें।
स्थानीय बनाम क्लाउड ollama API उपयोग
स्थानीय उपयोग आपको डेटा गोपनीयता और मॉडल चयन पर पूर्ण नियंत्रण देता है। आप एक साथ कई मॉडल चला सकते हैं और उन्हें तुरंत स्विच कर सकते हैं। हालांकि, आप हार्डवेयर रखरखाव, अपडेट और सुरक्षा के लिए जिम्मेदार हैं। क्लाउड उपयोग इन जिम्मेदारियों को प्रदाता पर स्थानांतरित कर देता है।
हमारा क्लाउड सर्विस एक uncensored मॉडल प्रदान करता है जो असीमित सामग्री जनरेशन के लिए अनुकूलित है। आपको बड़े मॉडल फ़ाइलों को डाउनलोड किए बिना तत्काल एक्सेस मिलता है। ट्रेड-ऑफ यह है कि आपका डेटा हमारे सर्वर से गुजरता है। संवेदनशील डेटा के लिए, लोकल बेहतर हो सकता है।
क्लाउड सेवाओं में अक्सर नेटवर्क राउंड-ट्रिप के कारण उच्च लेटेंसी होती है। स्थानीय इंस्टेंसों में यदि GPU पर्याप्त रूप से तेज है तो लगभग शून्य लेटेंसी होती है। हालांकि, स्थानीय इंस्टेंसों को महत्वपूर्ण VRAM की आवश्यकता होती है। यदि आपकी GPU मेमोरी खत्म हो जाती है, तो मॉडल CPU पर स्विच हो सकता है, जिससे प्रतिक्रियाएं काफी धीमी हो जाती हैं।
तुलना:
- स्थानीय: गोपनीयता, नियंत्रण, हार्डवेयर निर्भरता।
- क्लाउड: सुविधा, स्केलेबिलिटी, डेटा ट्रांसफर।
सामान्य क्लाइंट-साइड गलतियाँ
डेवलपर्स अक्सर रेट लिमिट्स को हैंडल करना भूल जाते हैं। हमारी सेवा प्रति की के लिए प्रति मिनट 300 रिक्वेस्ट्स की अनुमति देती है। यदि आप इससे अधिक करते हैं, तो आपको 429 त्रुटि मिलेगी। इन त्रुटियों को सहजता से हैंडल करने के लिए अपने क्लाइंट में एक्सपोनेंशियल बैकऑफ लागू करें।
एक अन्य गलती stream पैरामीटर सही ढंग से। यदि आप स्ट्रीमिंग की उम्मीद करते हैं लेकिन सेट नहीं करते stream: true, आपको पूरा रिस्पॉन्स मिलने तक प्रतीक्षा करनी पड़ेगी, उसके बाद ही कोई डेटा प्राप्त होगा। इससे आपकी ऐप धीमी लग सकती है।
JSON मोड त्रुटियां भी आम हैं। यदि आप सेट response_format: {type: "json_object"}, मॉडल को वैध JSON लौटना चाहिए। यदि ऐसा नहीं होता है, तो आपका पार्सर विफल हो जाएगा। JSON पार्सिंग त्रुटियों को पकड़ने और पुनः प्रयास करने के लिए त्रुटि हैंडलिंग जोड़ें।
चेकलिस्ट:
- रेट लिमिट हैंडलिंग लागू करें।
- सेट करें
stream: trueरियल-टाइम अपडेट्स के लिए। - JSON मोड का उपयोग करते समय JSON आउटपुट की जाँच करें।
FAQ
अनसेंसर्ड ओलामा एंडपॉइंट के लिए API कुंजी कैसे प्राप्त करें?
आप Google या ईमेल और पासवर्ड से साइन अप करके तुरंत एक API कुंजी जनरेट कर सकते हैं। हमारी सेवा को फोन नंबर की आवश्यकता नहीं है और निर्माण के तुरंत बाद कुंजी प्रदान की जाती है। इससे आपको सेकंडों में अपनी कोड परीक्षण शुरू करने की अनुमति मिलती है।
क्या अनकैप्ड ollama मॉडल इमेज इनपुट का समर्थन करता है?
नहीं, हमारा एंडपॉइंट केवल टेक्स्ट पूर्णताएं सेवा करता है। यह छवि, ऑडियो, या वीडियो इनपुट का समर्थन नहीं करता है। यदि आपको मल्टीमोडल क्षमताओं की आवश्यकता है, तो आपको एक अलग सेवा या स्थानीय मल्टीमोडल मॉडल की आवश्यकता होगी।
यदि रेट लिमिट से अधिक हो जाता हूँ तो क्या होता है?
यदि आप प्रति मिनट 300 अनुरोधों से अधिक हो जाते हैं, तो आपको 429 Too Many Requests त्रुटि प्राप्त होगी। आपकी API कुंजी मान्य रहती है, लेकिन आपको रेट लिमिट विंडो रीसेट होने तक प्रतीक्षा करनी होगी। अपने क्लाइंट में एक्सपोनेन्शियल बैकऑफ़ लागू करने की सलाह दी जाती है।
क्या जब मैं इस API का उपयोग करता हूँ तो मेरे डेटा का उपयोग प्रशिक्षण के लिए किया जाता है?
नहीं, आपके प्रॉम्प्ट्स प्रशिक्षण के लिए उपयोग नहीं किए जाते हैं। हम आपकी गोपनीयता का सम्मान करते हैं और मॉडल सुधार के लिए आपका डेटा संग्रहीत नहीं करते हैं। इससे हमारी सेवा गुप्त या संवेदनशील सामग्री जनरेशन के लिए उपयुक्त बन जाती है।
अपना API key प्राप्त करें
साइन अप करें, कुंजी प्राप्त करें, नई बेस यूआरएल पर पॉइंट करें। हो गया।