API संदर्भ¶
Claudin.io एक OpenAI-संगत API है। यदि आपने OpenAI API का उपयोग किया है, तो यहाँ सब कुछ परिचित लगेगा — बस Claudin.io के बेस URL की ओर इंगित करें और claudinio मॉडल का उपयोग करें।
बेस URL¶
OpenAI-शैली के रूट /v1 के अंतर्गत होते हैं।
प्रमाणीकरण¶
हर अनुरोध के साथ अपनी API कुंजी भेजें, किसी भी हेडर के रूप में:
मॉडल¶
| मॉडल आईडी | संदर्भ विंडो |
|---|---|
claudinio |
256K टोकन |
हर जगह claudinio का उपयोग करें। (कुछ क्लाइंट provider/model रूप की अपेक्षा करते हैं — उनके लिए, claudinio/claudinio का उपयोग करें।)
एंडपॉइंट¶
| विधि और पथ | विवरण |
|---|---|
POST /v1/chat/completions |
Chat completions — प्राथमिक एंडपॉइंट |
POST /v1/completions |
लेगेसी टेक्स्ट completions |
POST /v1/messages |
Anthropic Messages प्रारूप |
POST /v1/responses |
Responses API (Codex) |
POST /v1/embeddings |
टेक्स्ट embeddings |
GET /v1/models |
उपलब्ध मॉडल सूचीबद्ध करें |
Chat completions¶
curl https://api.claudin.io/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "claudinio",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Write a haiku about proxies."}
],
"temperature": 0.7
}'
मानक OpenAI पैरामीटर समर्थित हैं: messages, temperature, top_p, max_tokens, stream, stop, tools / tool_choice (function calling), response_format, इत्यादि। दो की सीमाएँ हैं जिन्हें भेजने से पहले जानना उचित है: max_tokens एक न्यूनतम और अधिकतम सीमा के बीच क्लैंप किया जाता है, और n का मान 1 होना चाहिए।
max_tokens और रीज़निंग¶
Claudinio मॉडल उत्तर देने से पहले तर्क करते हैं, और रीज़निंग टोकन max_tokens में गिने जाते हैं — यही बजट आंतरिक चिंतन-श्रृंखला (chain-of-thought) और दृश्यमान उत्तर दोनों को कवर करता है। इसलिए छोटा max_tokens लगभग पूरी तरह से रीज़निंग पर खर्च हो सकता है, जिससे उत्तर वाक्य के बीच में कटा रह जाता है।
इसे रोकने के लिए, 32000 से कम मानों को स्वतः बढ़ाकर 32000 कर दिया जाता है। दूसरी ओर, 393216 से अधिक मानों को घटाकर 393216 कर दिया जाता है — जो मॉडलों द्वारा स्वीकार्य अधिकतम है — क्योंकि इससे बड़ी संख्या को "जितना चाहें उतना" मानने के बजाय सीधे अस्वीकार कर दिया जाता है। इन दोनों के बीच का कोई भी मान यथावत पारित होता है, और पैरामीटर को छोड़ देना हमेशा ठीक रहता है।
max_tokens एक सीमा (ceiling) है, आरक्षण नहीं: आपसे केवल वास्तव में उत्पन्न टोकनों के लिए शुल्क लिया जाता है, इसलिए उदार मान की कोई अतिरिक्त लागत नहीं होती।
यदि आप संरचित आउटपुट (JSON, XML, कठोर प्रारूप) को पार्स करते हैं, तो पार्स करने से पहले finish_reason जाँचें — "length" का अर्थ है कि प्रतिक्रिया टोकन सीमा तक पहुँच गई है और अधूरी है, इसलिए पार्स विफलता एक दोषपूर्ण-मॉडल समस्या के बजाय अपेक्षित है:
choice = response.choices[0]
if choice.finish_reason == "length":
... # truncated — retry with a larger max_tokens
data = json.loads(choice.message.content)
एकाधिक completions (n)¶
केवल n = 1 समर्थित है। n को 1 से अधिक भेजने पर 400 लौटता है, साथ में "code": "unsupported_parameter"; पैरामीटर को छोड़ देना हमेशा सुरक्षित है।
Claudinio मॉडल उत्तर देने से पहले तर्क करते हैं, और रीज़निंग प्रक्रिया विचार की एक ही श्रृंखला उत्पन्न करती है — इसे कई स्वतंत्र उम्मीदवारों में विभाजित करने का कोई सस्ता तरीका नहीं है, इसलिए अपस्ट्रीम भी कोई प्रदान नहीं करते। यदि आप एक से अधिक उम्मीदवार चाहते हैं, तो अनुरोध को एक से अधिक बार भेजें (अधिक temperature आपको विविधता देता है), और ध्यान रखें कि प्रत्येक का शुल्क अलग से लिया जाता है।
हम n > 1 को चुपचाप एक ही विकल्प लौटाने के बजाय अस्वीकार करते हैं: जो क्लाइंट चार माँगता है और एक पाता है, वह आमतौर पर बाद में, अपने ही कोड के भीतर, हमारी ओर से कारण बताने वाली कोई त्रुटि न मिलने पर, विफल हो जाता है।
स्ट्रीमिंग¶
"stream": true सेट करें ताकि OpenAI स्ट्रीमिंग प्रारूप में सर्वर-भेजी गई घटनाएँ (server-sent events) प्राप्त हों (data: {...} चंक्स data: [DONE] द्वारा समाप्त होते हैं)।
टूल / function calling¶
claudinio टूल कॉल का समर्थन करता है। tools पास करें और प्रतिक्रिया से tool_calls पढ़ें, बिल्कुल OpenAI API की तरह। यही इसे Claude Code, Kilo, और Cursor जैसे एजेंटिक एडिटरों के भीतर काम करने योग्य बनाता है।
मल्टीमॉडल इनपुट¶
claudinio एक टेक्स्ट मॉडल है, लेकिन Claudin.io छवियों, ऑडियो और वीडियो ब्लॉकों को पारदर्शी रूप से संभालता है: यदि आप उन्हें भेजते हैं, तो प्रॉक्सी उन्हें मॉडल के देखने से पहले टेक्स्ट विवरणों/प्रतिलेखों में बदल देता है। आपको कुछ विशेष करने की आवश्यकता नहीं है — मानक OpenAI कंटेंट ब्लॉक भेजें और यह बस काम कर जाता है।
त्रुटियाँ¶
त्रुटियाँ OpenAI त्रुटि संरचना का अनुसरण करती हैं:
| स्थिति | अर्थ | क्या करें |
|---|---|---|
401 |
अमान्य या अनुपस्थित API कुंजी | कुंजी और प्रमाणीकरण हेडर जाँचें |
403 |
एंडपॉइंट की अनुमति नहीं है | समर्थित /v1/* पथों में से एक का उपयोग करें |
402 |
कोई सक्रिय सदस्यता नहीं | सदस्यता लें — पुनः प्रयास करने से लाभ नहीं होगा |
429 |
बजट सीमा पूर्ण या दर-सीमित | विंडो रीसेट की प्रतीक्षा करें (Retry-After हेडर देखें) या अपग्रेड करें |
400 |
दोषपूर्ण अनुरोध | अपना JSON / पैरामीटर जाँचें — max_tokens और n देखें |
5xx |
अपस्ट्रीम/प्रदाता व्यवधान | बैकऑफ़ के साथ पुनः प्रयास करें |
प्रदाता विवरण जानबूझकर छिपाए जाते हैं
त्रुटि संदेशों को साफ़ (sanitized) किया जाता है ताकि वे अंतर्निहित मॉडल प्रदाता को उजागर न करें। आपको हमेशा Claudin.io-ब्रांडेड, OpenAI-आकार की त्रुटियाँ दिखाई देंगी।
बजट सीमा तक पहुँचना¶
जब आप वर्तमान विंडो की व्यय सुरक्षा समाप्त कर देते हैं, तो अनुरोध 429 लौटाते हैं, साथ में Retry-After हेडर होता है जो विंडो रीसेट होने तक के सेकंड बताता है। आपका डैशबोर्ड सटीक रीसेट समय और शेष बजट दिखाता है। तुरंत पुनः प्रयास करने के बजाय उस हेडर के अनुसार प्रतीक्षा करें। विंडो कैसे काम करती हैं, यह जानने के लिए योजनाएँ और सीमाएँ देखें।
429 के बजाय एक संदेश¶
कुछ ही खातों पर हम इसी स्थिति के लिए एक अलग उत्तर आज़मा रहे हैं। त्रुटि के बजाय अनुरोध पूरा होता है और उत्तर स्वयं बताता है कि सीमा पूरी हो गई है और वह कब रीसेट होगी। हम माप रहे हैं कि क्या इस तरह जानकारी लोगों तक उस त्रुटि से अधिक भरोसे के साथ पहुँचती है जिसे उनका एजेंट चुपचाप निगल जाता है — और क्या स्पष्ट रूप से बताए जाने पर वे अपने काम के अनुरूप प्लान पर जाना पसंद करते हैं।
यदि आप ऑटोमेशन बना रहे हैं, तो 2xx को "काम हो गया" न पढ़ें। जो उत्तर कहे कि
सीमा पूरी हो गई है, उसे सीमा पूरी होना ही मानें और विंडो रीसेट होने तक रुकें। ऊपर
दिया 429 अब भी डिफ़ॉल्ट व्यवहार है और लगभग हर खाते को वही मिलता है।
दर सीमा¶
Claudin.io सामान्य उपयोग को कठोरता से अवरुद्ध नहीं करता। दुरुपयोग करने वाली अनुरोध दरों को अस्वीकार करने के बजाय धीमा किया जाता है (एक पारदर्शी थ्रॉटल), इसलिए सही व्यवहार करने वाले क्लाइंट कभी दंडित नहीं होते। व्यवहार में आपको कुछ भी करने की आवश्यकता नहीं है — बस दुर्लभ 429 पर पुनः प्रयास करें।