कंटेंट पर जाएँ
सारांश

सारांश

API का नक्शा: हर endpoint, अनुरोध और एरर कैसे दिखते हैं, कॉल का भुगतान कैसे होता है, और OpenAI या Anthropic SDK से आने पर क्या जानना चाहिए।

Endpoints

हर endpoint एक बेस URL के नीचे है और HTTPS पर परोसा जाता है।

बेस URL
https://api.shannon-ai.com
एंडपॉइंट फ़ॉर्मेट यह किसलिए है
POST /v1/chat/completions OpenAI Chat Completions बातचीत भेजें, अगला उत्तर पाएँ। स्ट्रीमिंग के साथ या उसके बिना।
POST /v1/messages Anthropic Messages वही, Anthropic SDK के अनुरोध और उत्तर के रूप में।
POST /v1/responses OpenAI Responses वही, Responses के रूप में। endpoint कोई स्टेट नहीं रखता: हर अनुरोध के साथ पूरी बातचीत भेजें।
GET /v1/models OpenAI मॉडल सूची मॉडल की सूची कॉन्टेक्स्ट विंडो, कीमतों और क्षमताओं के साथ। key की ज़रूरत नहीं।
POST /v1/tokenize Shannon API होस्टेड ओपन-वेट मॉडल के लिए किसी टेक्स्ट या चैट अनुरोध के टोकन गिनें। मुफ़्त।
POST /v1/messages/count_tokens Anthropic टोकन गिनती होस्टेड ओपन-वेट मॉडल के लिए Messages अनुरोध के इनपुट टोकन गिनें। मुफ़्त।

टेक्स्ट बनाने वाले तीनों endpoints एक ही मॉडल तक पहुँचते हैं। वह चुनें जिसका फ़ॉर्मेट आपका कोड पहले से इस्तेमाल करता है।

अनुरोध की मूल बातें

हेडर विवरण
Authorization: Bearer <key> आपकी API key। GET /v1/models को छोड़कर हर endpoint पर ज़रूरी, जब तक आप x-api-key न भेजें।
x-api-key: <key> वही key उस हेडर में जो Anthropic SDK भेजते हैं। हर endpoint पर पढ़ी जाती है।
Content-Type: application/json हर POST पर ज़रूरी। इसके बिना उत्तर 415 होता है।
x-request-id: <your id> वैकल्पिक। अनुरोध के लिए आपका अपना id; वह उत्तर के हेडर x-request-id में लौट आता है। इसके बिना API 12 हेक्साडेसिमल अक्षरों का एक id बना देती है।
  • हर POST की बॉडी एक JSON ऑब्जेक्ट होती है, अधिकतम 32 MiB।
  • जो फ़ील्ड API नहीं जानती, उससे कोई एरर नहीं होता और उसका कोई असर नहीं होता। किसी दूसरे प्रोवाइडर के लिए लिखा अनुरोध अतिरिक्त फ़ील्ड की वजह से विफल नहीं होता।
  • ज्ञात फ़ील्ड का गलत JSON प्रकार, या ज़रूरी फ़ील्ड का न होना, 422 से उत्तरित होता है। जो बॉडी वैध JSON नहीं है, उसका उत्तर 400 से दिया जाता है।
  • model Models & pricing पर दिए id में से एक है। अपरकेस और लोअरकेस से फ़र्क नहीं पड़ता।

उत्तर JSON होता है, या सर्वर-सेंट इवेंट्स की स्ट्रीम, जब अनुरोध stream को true पर सेट करता है। हर endpoint अपने फ़ॉर्मेट में उत्तर देता है। हर उत्तर में हेडर x-request-id होता है।

अनुरोध किन जाँचों से गुज़रता है

मॉडल चलने से पहले अनुरोध एक तय क्रम में जाँचा जाता है। जो पहली जाँच विफल होती है वही उत्तर देती है, इसलिए 401 से अभी बॉडी के बारे में कुछ पता नहीं चलता।

एरर का रूप

एरर एक JSON ऑब्जेक्ट है जिसमें error होता है, जिसके भीतर type और message होते हैं। /v1/messages उसे उस तरह लपेटता है जैसा Anthropic SDK अपेक्षा करते हैं; बाकी हर पाथ OpenAI का रूप इस्तेमाल करता है।

{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: gpt-4o"
  }
}
  • type और message पढ़ें। code और param केवल कुछ एरर में होते हैं: उन्हें वैकल्पिक मानें। param हमेशा null होता है।
  • स्ट्रीम शुरू होने के बाद स्टेटस पहले ही 200 हो चुका होता है। तब विफलता स्ट्रीम के भीतर एक एरर फ़्रेम के रूप में आती है।
  • हर एरर उत्तर में हेडर x-request-id होता है।
स्टेटस प्रकार कब
400 invalid_request_error बॉडी वैध JSON नहीं है, मॉडल id अज्ञात है, या मॉडल आपके भेजे किसी प्रकार के इनपुट को नहीं लेता।
401 authentication_error key नहीं है या वैध नहीं है।
404 not_found_error पाथ मौजूद नहीं है।
405 api_error पाथ मौजूद है, मेथड गलत है।
413 invalid_request_error बॉडी 32 MiB से बड़ी है।
415 invalid_request_error Content-Type application/json नहीं है।
422 invalid_request_error किसी फ़ील्ड का JSON प्रकार गलत है या कोई ज़रूरी फ़ील्ड नहीं है।
429 rate_limit_error बैलेंस अनुरोध को पूरा नहीं करता, एक मिनट में 120 से अधिक अनुरोध आए, विंडो की Shannon Coder कॉल खत्म हो गईं, या मॉडल व्यस्त है। संदेश बताता है कि कौन सा।
5xx api_error स्टेटस 500, 502, 503 या 504: अनुरोध वैध था और उसका उत्तर नहीं दिया जा सका। उसे फिर भेजें। 500 में प्रकार server_error हो सकता है।

त्रुटि प्रबंधन

बिलिंग और बैलेंस

  • हर अकाउंट का एक बैलेंस होता है, और चैट और API उसे साझा करते हैं: पहले आज का प्लान अलाउंस, फिर खरीदा गया क्रेडिट। API का अपना कोई कोटा नहीं है।
  • अनुरोध अपना आउटपुट बजट (max_tokens, डिफ़ॉल्ट 4,096) रिज़र्व करता है और फिर जितने टोकन उसने सच में इस्तेमाल किए उनका शुल्क मॉडल की कीमत पर लगता है।
  • हर उत्तर अपनी टोकन गिनती usage में बताता है। Keys & usage पेज बैलेंस और हर अनुरोध की लागत दिखाता है।
  • हर अनुरोध समान रूप से पूरा किया जाता है। अनुरोध दर पर एकमात्र सीमा flood protection है: प्रति अकाउंट प्रति मिनट 120 अनुरोध। समानांतर भेजे गए अनुरोध कतार में इंतज़ार करते हैं।

सीमाएँ और बैलेंस मॉडल और कीमतें Keys और उपयोग

मॉडल पर निर्भर फ़ील्ड

हर मॉडल एक ही अनुरोध लेता है। कुछ फ़ील्ड केवल कुछ मॉडल पर असर करते हैं; तालिका बताती है कि कहाँ। endpoint पेज हर फ़ील्ड की सूची देते हैं।

फ़ील्ड विवरण लागू करने वाले
system मॉडल के लिए निर्देश: Chat Completions पर system संदेश, Messages पर system, Responses पर instructions। होस्टेड ओपन-वेट मॉडल, shannon-1.6-*, shannon-2-*, shannon-coder-1
temperature सैंपलिंग तापमान। होस्टेड ओपन-वेट मॉडल, shannon-1.6-*, shannon-coder-1
top_p न्यूक्लियस सैंपलिंग। होस्टेड ओपन-वेट मॉडल
seed सैंपलिंग के लिए एक तय सीड। होस्टेड ओपन-वेट मॉडल
stop अधिकतम 4 स्टॉप सीक्वेंस। होस्टेड ओपन-वेट मॉडल
reasoning_effort उत्तर देने से पहले मॉडल कितनी रीज़निंग करता है। Responses पर reasoning.effort, Messages पर thinking। होस्टेड ओपन-वेट मॉडल
web_search true मॉडल को इस अनुरोध के लिए वेब खोजने देता है। इस API का एक फ़ील्ड, Chat Completions और Messages पर। shannon-coder-1 को छोड़कर Shannon मॉडल
max_tokens आउटपुट बजट। हर मॉडल पर यह तय करता है कि आपके बैलेंस से कितना रिज़र्व हो। उत्तर की लंबाई की सीमा के रूप में: होस्टेड ओपन-वेट मॉडल, shannon-1.6-*, shannon-coder-1

Chat Completions

OpenAI SDK से आ रहे हैं

  • बेस URL को https://api.shannon-ai.com/v1 पर सेट करें और key को अपनी Shannon key पर। तब Chat Completions और Responses कॉल SDK के साथ जैसी हैं वैसी काम करती हैं।
  • model Shannon id होना चाहिए। gpt-4o जैसे किसी दूसरे प्रोवाइडर के मॉडल नाम का उत्तर 400 और unknown model से दिया जाता है।
  • रीज़निंग अपने अलग फ़ील्ड में आती है: संदेश में और स्ट्रीम डेल्टा में content के बगल में reasoning_content।
  • स्ट्रीम के अंतिम चंक में हमेशा usage होता है, finish_reason के साथ।
  • स्ट्रीम में टूल कॉल एक चंक के रूप में पूरी arguments स्ट्रिंग के साथ आती है।
  • उत्तर में एक ही choice होता है।
  • OpenAI API के जो पाथ ऊपर की तालिका में नहीं हैं, जैसे /v1/embeddings, उनका उत्तर 404 से दिया जाता है।

Anthropic SDK से आ रहे हैं

  • बेस URL को https://api.shannon-ai.com पर सेट करें, /v1 के बिना, और key को अपनी Shannon key पर। SDK इसे x-api-key के रूप में भेजता है।
  • model Shannon id होना चाहिए।
  • इस API पर max_tokens वैकल्पिक है। इसका डिफ़ॉल्ट 4,096 है।
  • उत्तर में प्रकार thinking, text और tool_use के कंटेंट ब्लॉक होते हैं। पहला ब्लॉक हमेशा टेक्स्ट नहीं होता: ब्लॉक type से चुनें।
  • stop_reason end_turn या tool_use होता है। Shannon मॉडल की स्ट्रीम max_tokens पर भी खत्म हो सकती है।
  • anthropic-version और anthropic-beta स्वीकार किए जाते हैं, इसलिए SDK बिना बदलाव काम करता है। अनुरोध को इनकी ज़रूरत नहीं है।
  • /v1/messages पर एरर का रूप Anthropic जैसा है: {"type": "error", "error": {…}}।

जो कोडिंग टूल इन फ़ॉर्मेट को बोलते हैं, वे उसी तरह सेट होते हैं: बेस URL, key, और मॉडल के रूप में एक Shannon id। CLI कोडिंग टूल्स