विषय पर बढ़ें

API संदर्भ

Claudin.io एक OpenAI-संगत API है। यदि आपने OpenAI API का उपयोग किया है, तो यहाँ सब कुछ परिचित लगेगा — बस Claudin.io के बेस URL की ओर इंगित करें और claudinio मॉडल का उपयोग करें।

बेस URL

https://api.claudin.io

OpenAI-शैली के रूट /v1 के अंतर्गत होते हैं।

प्रमाणीकरण

हर अनुरोध के साथ अपनी API कुंजी भेजें, किसी भी हेडर के रूप में:

Authorization: Bearer YOUR_API_KEY
x-api-key: YOUR_API_KEY

मॉडल

मॉडल आईडी संदर्भ विंडो
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 त्रुटि संरचना का अनुसरण करती हैं:

{ "error": { "message": "…", "type": "…", "code": "…" } }
स्थिति अर्थ क्या करें
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 पर पुनः प्रयास करें।