सामग्रीमा जानुहोस्
Chat Completions

Chat Completions

POST /v1/chat/completions ले कुराकानी लिन्छ र OpenAI Chat Completions ढाँचामा मोडलको अर्को सन्देश फर्काउँछ। यसलाई कुनै पनि OpenAI SDK बाट वा सादा HTTP मार्फत प्रयोग गर्नुहोस्; यो पेज फिल्ड-फिल्डको रेफरेन्स हो।

POST https://api.shannon-ai.com/v1/chat/completions

सबैभन्दा सानो अनुरोध भनेको मोडल id र एउटा प्रयोगकर्ता सन्देश हो।

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1",
)

response = client.chat.completions.create(
    model="shannon-3",
    messages=[{"role": "user", "content": "Say hello in one sentence."}],
)

print(response.choices[0].message.content)

जवाफ एउटा JSON अब्जेक्ट हो:

200 JSON
{
  "id": "chatcmpl-5f0c1e7a9b3d4c62a8e1f07d2b46c9a3",
  "object": "chat.completion",
  "created": 1791625200,
  "model": "shannon-3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello, it is good to meet you.",
        "reasoning_content": "The user wants a greeting in one sentence. Keep it short and friendly."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1184,
    "completion_tokens": 46,
    "total_tokens": 1230
  }
}

हेडरहरू

अनुरोध हेडरहरू

हेडर मान विवरण
Authorization Bearer YOUR_API_KEY तपाईंको API की। हरेक इन्डपोइन्टमा यसको सट्टा x-api-key: YOUR_API_KEY स्वीकार गरिन्छ।
Content-Type application/json आवश्यक। अरू कुनै मानले 415 फर्काउँछ।
x-request-id ऐच्छिक। अनुरोधका लागि तपाईंको आफ्नै id। यो जवाफमा परिवर्तन बिना फर्किन्छ।

जवाफ हेडरहरू

हेडर विवरण
x-request-id हरेक जवाफमा, त्रुटि र स्ट्रिमसमेत: तपाईंले पठाएको मान, वा केही नपठाएमा 12 हेक्साडेसिमल अक्षर। समस्या रिपोर्ट गर्दा यसको उल्लेख गर्नुहोस्।
content-type application/json, वा stream true हुँदा text/event-stream।

अनुरोध फिल्डहरू

केवल messages आवश्यक छ। लागू गर्ने स्तम्भले फिल्डले जवाफ बदल्ने मोडलहरूको नाम दिन्छ। होस्ट गरिएका ओपन-वेट मोडलहरू मोडल सूचीका बाह्र id हुन्; Shannon 3 परिवार shannon-3, shannon-3-pro, shannon-3.1 र shannon-3.1-pro हो। मोडल र मूल्य

फिल्ड प्रकार पूर्वनिर्धारित विवरण लागू गर्ने
model string shannon-1.6-lite उत्तर दिने मोडल: मोडल सूचीबाट एउटा id। हरेक अनुरोधसँग पठाउनुहोस्। मिलान केस-सेन्सिटिभ हुँदैन। प्रकाशित नभएको id ले 400 unknown model फर्काउँछ। सबै मोडल
messages array आवश्यक। कुराकानी, सबैभन्दा पुरानो सन्देश पहिले। तल Messages हेर्नुहोस्। सबै मोडल
stream boolean false true ले जवाफ लेखिँदै गर्दा सर्भर-सेन्ट इभेन्टका रूपमा पठाउँछ। सबै मोडल
max_tokens integer 4096 जवाफको माथिल्लो सीमा, टोकनमा। 1 देखि 65,536 बाहिरको मानलाई त्यो दायरामा सारिन्छ। अनुरोध चलिरहँदा तपाईंको ब्यालेन्सबाट छुट्याइएको रकम पनि यही हो। तल आउटपुट लम्बाइ हेर्नुहोस्। होस्ट गरिएका ओपन-वेट मोडलहरू, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer max_tokens जस्तै। दुवै पठाइएमा max_tokens प्रयोग गरिन्छ। होस्ट गरिएका ओपन-वेट मोडलहरू, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number स्याम्पलिङ तापक्रम। होस्ट गरिएका ओपन-वेट मोडलहरूमा पूर्वनिर्धारित 1 हो र मान 0 र 2 बीच राखिन्छन्। होस्ट गरिएका ओपन-वेट मोडलहरू, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 न्युक्लियस स्याम्पलिङ। मान 0 र 1 बीच राखिन्छन्। होस्ट गरिएका ओपन-वेट मोडलहरू
seed integer स्याम्पलरको सिड, कुनै पनि पूर्णाङ्क। यो नभए सिड मोडल र कुराकानीबाट निकालिन्छ, त्यसैले दुई पटक पठाइएको उही अनुरोधले उही सिड प्रयोग गर्छ। होस्ट गरिएका ओपन-वेट मोडलहरू
stop string | array स्ट्रिङ वा स्ट्रिङहरूको एरे। 4 वटासम्म प्रयोग गरिन्छ। देखिने पहिलो स्ट्रिङ अघि नै उत्तर सकिन्छ; स्टप टेक्स्ट आफैं फर्काइँदैन। होस्ट गरिएका ओपन-वेट मोडलहरू
reasoning_effort string high उत्तर दिनु अघि मोडलले कति रिजनिङ गर्छ: off, low, medium वा high। none र minimal को अर्थ off, default को अर्थ medium, max को अर्थ high हो। अरू कुनै पनि मानले 400 फर्काउँछ। होस्ट गरिएका ओपन-वेट मोडलहरू
reasoning object उही सेटिङ अब्जेक्ट रूपमा: {"effort": "low"}। दुवै पठाइएमा reasoning_effort प्रयोग गरिन्छ। होस्ट गरिएका ओपन-वेट मोडलहरू
tools array मोडलले कल गर्न सक्ने फङ्सनहरू, प्रत्येक {"type": "function", "function": {"name", "description", "parameters"}} को रूपमा। मोडलका कलहरू tool_calls मा फर्किन्छन्; तपाईंको कोडले तिनलाई चलाउँछ। सबै मोडल
tool_choice string | object auto "auto" ले मोडललाई निर्णय गर्न दिन्छ। "required" ले यसलाई टुल कल गर्न लगाउँछ। {"type": "function", "function": {"name": "…"}} ले यसलाई त्यही टुल कल गर्न लगाउँछ। होस्ट गरिएका ओपन-वेट मोडलहरू
response_format object JSON उत्तरका लागि {"type": "json_object"}, वा तपाईंको स्कीमा पछ्याउने उत्तरका लागि {"type": "json_schema", "json_schema": {…}}। सबै Shannon तहहरू; होस्ट गरिएका ओपन-वेट मोडलहरू हरेक id अनुसार सूचीबद्ध
web_search boolean false true ले मोडललाई उत्तर दिनु अघि वेबमा खोज्न दिन्छ। shannon-1.6-*, shannon-2-*, Shannon 3 परिवार

n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store र prompt_cache_key जस्ता अन्य OpenAI फिल्डहरू स्वीकार गरिन्छन् ताकि अवस्थित क्लाइन्ट कोड परिवर्तन बिना चलोस्। तिनले जवाफ बदल्दैनन्: सधैं एउटै choice हुन्छ, र स्ट्रिम सधैं usage सहित सकिन्छ।

गलत JSON प्रकार भएको फिल्ड, उदाहरणका लागि "max_tokens": "100", ले 422 फर्काउँछ। messages नभएको अनुरोधले पनि यही फर्काउँछ।

टुल, स्ट्रक्चर्ड आउटपुट, रिजनिङ र वेब खोज प्रत्येकको आफ्नै पेज छ: फङ्क्शन कलिङ, संरचित आउटपुट, रिजनिङ एफर्ट, निर्मित वेब खोज.

विकल्पहरूसहितको अनुरोध

यो अनुरोधले सिस्टम सन्देश, स्याम्पलिङ फिल्डहरू र रिजनिङ एफर्ट सेट गर्छ। यसले होस्ट गरिएको ओपन-वेट मोडल प्रयोग गर्छ, जसले ती सबै लागू गर्छ।

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1",
)

response = client.chat.completions.create(
    model="DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
    messages=[
        {"role": "system", "content": "You are a physics teacher. Answer in two sentences."},
        {"role": "user", "content": "Why is the sky blue?"},
    ],
    max_tokens=512,
    temperature=0.3,
    top_p=0.9,
    seed=7,
    stop=["\n\n"],
    reasoning_effort="low",
)

message = response.choices[0].message
print(message.reasoning_content)  # the reasoning
print(message.content)            # the answer
print(response.usage)

जवाफको आकार माथिकै जस्तो हुन्छ। होस्ट गरिएका ओपन-वेट मोडलहरूमा यसको usage ले दुई विवरण थप्छ: क्याशबाट पढिएका प्रम्प्ट टोकन र रिजनिङमा खर्च भएका टोकन।

200 JSON
{
  "usage": {
    "prompt_tokens": 31,
    "completion_tokens": 62,
    "total_tokens": 93,
    "prompt_tokens_details": {
      "cached_tokens": 0
    },
    "completion_tokens_details": {
      "reasoning_tokens": 21
    }
  }
}

आउटपुट लम्बाइ

max_tokens ले दुई काम गर्छ। पहिलो, अनुरोध सुरु हुँदा तपाईंको ब्यालेन्सबाट छुट्याइएको टोकनको संख्या यही हो। जवाफ पूरा भएपछि त्यो रकम अनुरोधले प्रयोग गरेका टोकनले प्रतिस्थापन गरिन्छ। max_tokens तपाईंको ब्यालेन्समा बाँकी रहेकोभन्दा ठूलो भए, जवाफ आफैं अट्ने भए पनि अनुरोधले 429 Quota exceeded फर्काउँछ। कम छुट्याउन कम max_tokens पठाउनुहोस्।

यो इन्डपोइन्टमा shannon-coder-1 फरक तरिकाले गणना गरिन्छ: हरेक अनुरोध तपाईंको प्लानको एउटा Shannon Coder कल हो, र यसका लागि कुनै टोकन छुट्याइँदैन। सीमा र ब्यालेन्स

दोस्रो, यसले यी मोडलहरूमा जवाफको लम्बाइ सीमित गर्छ:

मोडलहरू max_tokens ले के गर्छ
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 सीमामा पुग्दा जवाफ रोकिन्छ। स्ट्रिम तब finish_reason length सँग सकिन्छ।
होस्ट गरिएका ओपन-वेट मोडलहरू उत्तरको टेक्स्ट max_tokens मा रोकिन्छ। रिजनिङ यसमा गणना गरिँदैन। 256 भन्दा कमका मानले 256 को रूपमा काम गर्छन्।

max_tokens वा max_completion_tokens बिना मान 4,096 हुन्छ। shannon-coder-1 मा यो 65,536 हो।

Messages

हरेक सन्देश role र content भएको अब्जेक्ट हो। content स्ट्रिङ हो, वा सन्देशले टेक्स्टभन्दा बढी बोक्दा भागहरूको एरे।

भूमिका विवरण लागू गर्ने
system मोडलका लागि निर्देशनहरू। यसलाई पहिले राख्नुहोस्। Shannon तहहरूमा पहिलो system सन्देश नै प्रयोग गरिन्छ। होस्ट गरिएका ओपन-वेट मोडलहरू, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer system का रूपमा पढिन्छ। होस्ट गरिएका ओपन-वेट मोडलहरू
user तपाईंले सोध्ने कुरा। Shannon तहहरूमा अन्तिम user सन्देश प्रम्प्ट हो र त्यसअघिका सन्देशहरू इतिहास हुन्। सबै मोडल
assistant मोडलका अघिल्ला जवाफहरू। यसपछि टुल नतिजा पठाउँदा यसका tool_calls राख्नुहोस्। सबै मोडल
tool टुल कलको नतिजा: tool_call_id ले कलको id र content ले नतिजा स्ट्रिङका रूपमा राख्छ। सबै मोडल

Shannon 3 परिवारको id सँग, अनिवार्य रूपमा पालना हुनुपर्ने निर्देशनहरू user सन्देशमा राख्नुहोस्।

Shannon तहहरूमा प्रयोगकर्ता टेक्स्ट र tools नभएको अनुरोधले 400 No user message provided फर्काउँछ।

कन्टेन्ट भागहरू

भाग विवरण उपलब्ध
{"type": "text", "text": "…"} सादा टेक्स्ट। सबै मोडल
{"type": "image_url", "image_url": {"url": "…"}} एउटा छवि, base64 सामग्री भएको data: URL वा http(s) URL को रूपमा। Shannon 3 परिवार, shannon-1.6-lite, shannon-1.6-pro, र छवि इनपुट सूचीबद्ध गर्ने होस्ट गरिएका ओपन-वेट मोडलहरू
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} एउटा कागजात (PDF, Word, PowerPoint वा Excel), base64 वा URL को रूपमा। Shannon 3 परिवार

साइज, सीमा र रूपहरूको पूर्ण सूचीको आफ्नै पेज छ। छवि र फाइलहरू

जवाफ अब्जेक्ट

फिल्ड प्रकार विवरण
id string chatcmpl- पछि 32 हेक्साडेसिमल अक्षर।
object string सधैं chat.completion।
created integer जवाफको समय, Unix सेकेन्डमा।
model string उत्तर दिने मोडलको क्यानोनिकल id। यो तपाईंले पठाएको id भन्दा हिज्जेमा फरक हुन सक्छ।
choices array सधैं ठ्याक्कै एउटा choice, index 0 सहित।
choices[0].message.role string सधैं assistant।
choices[0].message.content string | null उत्तरको टेक्स्ट। tool_calls सँग Shannon तहहरूमा यो null हुन्छ; होस्ट गरिएका ओपन-वेट मोडलहरूले कलहरूको छेउमा टेक्स्ट पठाउन सक्छन्।
choices[0].message.reasoning_content string | null उत्तर अघि मोडलले लेखेको रिजनिङ, वा केही नभए null।
choices[0].message.tool_calls array मोडलले टुल कल गर्दा मात्र हुन्छ। हरेक प्रविष्टिमा id, type function, र name तथा JSON स्ट्रिङका रूपमा arguments भएको function हुन्छ।
choices[0].message.annotations array खोजले केही भेटेको web_search: true भएको अनुरोधमा मात्र। content भित्रको चिनोले नाम लिने हरेक स्रोतका लागि एउटा url_citation, जसमा url, title, start_index र end_index हुन्छन् (चिनोको स्थान, अक्षरमा गणना गरिएको, अन्त्य समावेश हुँदैन)।
choices[0].finish_reason string जवाफ किन सकियो। समाप्ति कारणहरू हेर्नुहोस्।
usage object अनुरोधका टोकनहरू। Usage हेर्नुहोस्।
sources array खोजले केही भेटेको web_search: true भएको अनुरोधमा मात्र: मोडललाई दिइएका नतिजाहरू, हरेकमा index, title र url। उत्तरमा [1] भनेको index 1 भएको प्रविष्टि हो।

समाप्ति कारणहरू

finish_reason विवरण
stop मोडलले आफ्नो उत्तर पूरा गर्‍यो, वा stop स्ट्रिङ देखियो।
tool_calls मोडलले एक वा बढी टुल कल गर्छ। तिनलाई चलाउनुहोस् र नतिजाहरू tool सन्देशहरूमा पठाउनुहोस्।
length जवाफ आउटपुट सीमामा काटियो। shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 र Shannon 3 परिवारका स्ट्रिमहरूमा रिपोर्ट गरिन्छ।

स्ट्रिम नगरिएको जवाफले stop वा tool_calls रिपोर्ट गर्छ।

Usage

फिल्ड प्रकार विवरण उपलब्ध
usage.prompt_tokens integer इनपुट टोकन। सबै मोडल
usage.completion_tokens integer आउटपुट टोकन: रिजनिङ, उत्तर र टुल कल सबै मिलाएर। सबै मोडल
usage.total_tokens integer prompt_tokens जोड completion_tokens। सबै मोडल
usage.prompt_tokens_details.cached_tokens integer prompt_tokens को प्रम्प्ट क्याशबाट पढिएको हिस्सा। होस्ट गरिएका ओपन-वेट मोडलहरू
usage.completion_tokens_details.reasoning_tokens integer completion_tokens को रिजनिङमा खर्च भएको हिस्सा। होस्ट गरिएका ओपन-वेट मोडलहरू

होस्ट गरिएका ओपन-वेट मोडलहरूमा, prompt_tokens तपाईंका सन्देश र टुल परिभाषाहरू मोडलकै टोकनाइजरले गनिएको र कुनै छविका टोकनहरू थपिएको संख्या हो। टोकन गणना इन्डपोइन्टहरूले पठाउनु अघि उही संख्या फर्काउँछन्। टोकन गणना

Shannon तहहरूमा, prompt_tokens ले जवाफ लेख्न मोडलले पढेका सबै कुरा गन्छ, त्यसैले यो तपाईंका सन्देशहरूको टेक्स्ट मात्रभन्दा ठूलो हुन्छ।

स्ट्रिमिङ

stream लाई true सेट गर्दा जवाफ chat.completion.chunk इभेन्टका रूपमा आइपुग्छ र data: [DONE] सँग सकिन्छ। त्यसअघिको अन्तिम चंकले finish_reason र usage बोक्छ; कुनै stream_options चाहिँदैन। चंकको आकार, कीप-अलाइभ लाइन र स्ट्रिमभित्रका त्रुटिहरूको आफ्नै पेज छ। स्ट्रिमिङ

त्रुटिहरू

त्रुटि error सदस्य भएको JSON अब्जेक्ट हो। जाँचहरू यही क्रममा चल्छन्: API की, अनुरोध बडी, मोडल id, त्यसपछि ब्यालेन्स। तालिकाले यो इन्डपोइन्टले प्रायः फर्काउने कुराहरू सूचीबद्ध गर्छ। के पुनः प्रयास गर्ने भन्ने सहितको पूर्ण सूचीको आफ्नै पेज छ। त्रुटि व्यवस्थापन

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
स्थिति प्रकार सन्देश कहिले
401 authentication_error Missing authentication
Invalid API key
कुनै API की पठाइएन, वा की अज्ञात वा रद्द गरिएको छ।
400 invalid_request_error unknown model: <id> model प्रकाशित id होइन।
400 invalid_request_error No user message provided Shannon तहहरू: अनुरोधमा कुनै प्रयोगकर्ता टेक्स्ट र कुनै tools छैन।
400 invalid_request_error <id> does not accept image input छवि इनपुट नभएको होस्ट गरिएको ओपन-वेट मोडलमा छवि भाग पठाइयो।
400 invalid_request_error <id> does not accept response_format स्ट्रक्चर्ड आउटपुट नभएको होस्ट गरिएको ओपन-वेट मोडलमा response_format पठाइयो।
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning_effort मा सूचीबाहिरको मान छ।
422 invalid_request_error Failed to deserialize the JSON body into the target type: … messages हराइरहेको छ, वा कुनै फिल्डको JSON प्रकार गलत छ।
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens तपाईंको ब्यालेन्समा बाँकी रहेको भन्दा ठूलो छ।
429 rate_limit_error Too many requests. Retry in <n>s. फ्लड प्रोटेक्सन: तपाईंको खातामा एक मिनेटमा 120 भन्दा बढी अनुरोध।
500 server_error The model backend failed to answer. Please retry. मोडलले जवाफ उत्पादन गरेन। अनुरोध फेरि पठाउनुहोस्।
502 api_error The model backend failed to answer. Please retry. उही, Shannon 3 परिवार र होस्ट गरिएका ओपन-वेट मोडलहरूमा।