सारांश
API को नक्सा: हरेक इन्डपोइन्ट, अनुरोध र त्रुटि कस्ता देखिन्छन्, कलहरूको भुक्तानी कसरी हुन्छ, र OpenAI वा Anthropic SDK बाट आउँदा के जान्नुपर्छ।
इन्डपोइन्टहरू
हरेक इन्डपोइन्ट एउटै बेस URL मुनि छ र HTTPS मार्फत सेवा गरिन्छ।
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 आकारमा। इन्डपोइन्टले कुनै अवस्था राख्दैन: हरेक अनुरोधसँग कुराकानी पठाउनुहोस्। |
GET /v1/models | OpenAI मोडल सूची | कन्टेक्स्ट विन्डो, मूल्य र क्षमतासहित मोडलहरू सूचीबद्ध गर्नुहोस्। की चाहिँदैन। |
POST /v1/tokenize | Shannon API | होस्ट गरिएको ओपन-वेट मोडलका लागि टेक्स्ट वा च्याट अनुरोधका टोकन गन्नुहोस्। निःशुल्क। |
POST /v1/messages/count_tokens | Anthropic टोकन गणना | होस्ट गरिएको ओपन-वेट मोडलका लागि Messages अनुरोधका इनपुट टोकन गन्नुहोस्। निःशुल्क। |
टेक्स्ट उत्पन्न गर्ने तीनवटै इन्डपोइन्टले उही मोडलहरूमा पुग्छन्। तपाईंको कोडले पहिल्यै प्रयोग गरिरहेको ढाँचाको इन्डपोइन्ट छान्नुहोस्।
अनुरोधका आधारभूत कुरा
| हेडर | विवरण |
|---|---|
Authorization: Bearer <key> | तपाईंको API की। x-api-key नपठाएसम्म GET /v1/models बाहेक हरेक इन्डपोइन्टमा आवश्यक। |
x-api-key: <key> | Anthropic SDK ले पठाउने हेडरमा उही की। हरेक इन्डपोइन्टमा पढिन्छ। |
Content-Type: application/json | हरेक POST मा आवश्यक। यसबिना जवाफ 415 हुन्छ। |
x-request-id: <your id> | ऐच्छिक। अनुरोधका लागि तपाईंको आफ्नै id; यो जवाफको x-request-id हेडरमा फर्किन्छ। नपठाए API ले 12 हेक्साडेसिमल अक्षरको एउटा बनाउँछ। |
- हरेक
POSTको बडी 32 MiB सम्मको एउटा JSON अब्जेक्ट हुन्छ। - API ले नचिन्ने फिल्डले कुनै त्रुटि ल्याउँदैन र कुनै प्रभाव पार्दैन। अर्को प्रदायकका लागि लेखिएको अनुरोध अतिरिक्त फिल्डका कारण असफल हुँदैन।
- गलत JSON प्रकार भएको चिनिएको फिल्ड, वा हराएको आवश्यक फिल्डलाई
422सहित जवाफ दिइन्छ। मान्य JSON नभएको बडीलाई400सहित जवाफ दिइन्छ। modelModels & pricing मा भएका id मध्ये एउटा हो। ठूलो र सानो अक्षरले फरक पार्दैन।
जवाफ JSON हुन्छ, वा अनुरोधले stream लाई true सेट गर्दा सर्भर-सेन्ट इभेन्टको स्ट्रिम हुन्छ। हरेक इन्डपोइन्टले आफ्नै ढाँचामा जवाफ दिन्छ। हरेक जवाफमा x-request-id हेडर हुन्छ।
अनुरोधले के पार गर्छ
मोडल चल्नु अघि अनुरोध निश्चित क्रममा जाँचिन्छ। असफल हुने पहिलो जाँचले जवाफ दिन्छ, त्यसैले 401 ले अहिलेसम्म बडीबारे केही बताउँदैन।
| जाँच, यही क्रममा | असफल हुँदा स्टेटस |
|---|---|
| API की | 401 |
| बडी: आकार, कन्टेन्ट प्रकार, JSON, फिल्ड प्रकारहरू | 413 · 415 · 400 · 422 |
| मोडल id | 400 |
| फ्लड प्रोटेक्सन: प्रति खाता प्रति मिनेट 120 अनुरोध | 429 |
| ब्यालेन्स: अनुरोधको आउटपुट बजेट अट्नुपर्छ | 429 |
त्रुटिको आकार
त्रुटि type र message बोक्ने error भएको JSON अब्जेक्ट हो। /v1/messages ले यसलाई Anthropic SDK ले अपेक्षा गरेजस्तो बेर्छ; अरू हरेक पाथले OpenAI आकार प्रयोग गर्छ।
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} {
"type": "error",
"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 | की हराएको छ वा मान्य छैन। |
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 पेजले ब्यालेन्स र हरेक अनुरोधको लागत देखाउँछ। - हरेक अनुरोध बराबर सेवा पाउँछ। अनुरोध दरको एकमात्र सीमा फ्लड प्रोटेक्सन हो: प्रति खाता प्रति मिनेट 120 अनुरोध। समानान्तर पठाइएका अनुरोधहरू लाइनमा पर्खन्छन्।
सीमा र ब्यालेन्स मोडल र मूल्य की र प्रयोग
मोडलमा निर्भर हुने फिल्डहरू
हरेक मोडलले उही अनुरोध लिन्छ। केही फिल्ड केही मोडलमा मात्र प्रभावकारी हुन्छन्; तालिकाले कहाँ भनेर बताउँछ। इन्डपोइन्ट पेजहरूले हरेक फिल्ड सूचीबद्ध गर्छन्।
| फिल्ड | विवरण | लागू गर्ने |
|---|---|---|
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 ले यो अनुरोधका लागि मोडललाई वेबमा खोज्न दिन्छ। Chat Completions र Messages मा यो API को आफ्नै फिल्ड हो। | shannon-coder-1 बाहेक Shannon मोडलहरू |
max_tokens | आउटपुट बजेट। हरेक मोडलमा यसले तपाईंको ब्यालेन्सबाट छुट्याइने रकम तोक्छ। | जवाफको लम्बाइको सीमाका रूपमा: होस्ट गरिएका ओपन-वेट मोडलहरू, shannon-1.6-*, shannon-coder-1 |
OpenAI SDK बाट आउँदा
- बेस URL
https://api.shannon-ai.com/v1मा र की आफ्नो Shannon कीमा सेट गर्नुहोस्। त्यसपछि Chat Completions र Responses कलहरू SDK जस्ताको तस्तै काम गर्छन्। modelShannon id हुनैपर्छ।gpt-4oजस्तो अर्को प्रदायकको मोडल नामलाई400रunknown modelसहित जवाफ दिइन्छ।- रिजनिङ आफ्नै फिल्डमा आउँछ: सन्देश र स्ट्रिम डेल्टा दुवैमा
contentको छेउमाreasoning_content। - स्ट्रिमले सधैं अन्तिम चङ्कमा
finish_reasonसँगैusageबोक्छ। - स्ट्रिममा टुल कल पूरा
argumentsस्ट्रिङ भएको एउटै चङ्कमा आउँछ। - जवाफमा एउटा choice हुन्छ।
- माथिको तालिकामा नभएका OpenAI API का पाथहरू, जस्तै
/v1/embeddings, लाई404सहित जवाफ दिइन्छ।
Anthropic SDK बाट आउँदा
- बेस URL
https://api.shannon-ai.comमा,/v1बिना, र की आफ्नो Shannon कीमा सेट गर्नुहोस्। SDK ले यसलाईx-api-keyका रूपमा पठाउँछ। modelShannon id हुनैपर्छ।- यो API मा
max_tokensऐच्छिक हो। यसको पूर्वनिर्धारित 4,096 हो। - जवाफमा
thinking,textरtool_useप्रकारका कन्टेन्ट ब्लकहरू हुन्छन्। पहिलो ब्लक सधैं टेक्स्ट हुँदैन: ब्लकहरूtypeद्वारा छान्नुहोस्। stop_reasonend_turnवाtool_useहुन्छ। Shannon मोडलको स्ट्रिमmax_tokensसहित पनि सकिन सक्छ।anthropic-versionरanthropic-betaस्वीकार गरिन्छन्, त्यसैले SDK बिना परिवर्तन काम गर्छ। अनुरोधलाई तिनीहरू चाहिँदैन।/v1/messagesका त्रुटिहरू Anthropic आकारमा हुन्छन्:{"type": "error", "error": {…}}।
यी ढाँचा बोल्ने कोडिङ टुलहरू उसरी नै सेट गरिन्छन्: बेस URL, की, र मोडलका रूपमा Shannon id। CLI कोडिङ टुलहरू