منځپانګې ته ټوپ ووهئ
Chat Completions

Chat Completions

POST /v1/chat/completions ګفتګه اخلي او د ماډل راتلونکی پیغام د OpenAI Chat Completions په بڼه بیرته ورکوي. دا له هر OpenAI SDK څخه یا د ساده HTTP له لارې وکاروئ؛ دا پاڼه د ساحې په ساحه مرجع ده.

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

تر ټولو کوچنۍ غوښتنه د ماډل id او یو user message دی.

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
  }
}

Headers

د غوښتنې headers

Header ارزښت تشریح
Authorization Bearer YOUR_API_KEY ستاسو API کیلي. x-api-key: YOUR_API_KEY په هر endpoint کې د هغې پر ځای منل کیږي.
Content-Type application/json اړین. هر بل ارزښت 415 بیرته ورکوي.
x-request-id اختیاري. د غوښتنې لپاره ستاسو خپل id. په ځواب کې بې بدلونه بیرته راځي.

د ځواب headers

Header تشریح
x-request-id په هر ځواب کې، تېروتنې او stream ګانې په ګډون: هغه ارزښت چې تاسو لیږلی، یا 12 هیکساډیسیمل توري کله چې تاسو هیڅ نه وي لیږلی. کله چې ستونزه راپور کوئ دا یادونه وکړئ.
content-type application/json، یا text/event-stream کله چې stream true وي.

د غوښتنې ساحې

یوازې messages اړین دی. د پلي کوونکی کالم هغه ماډلونه نوموي چې ساحه پکې ځواب بدلوي. کوربه شوي open-weight ماډلونه د ماډل لیست دولس 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 ځواب د server-sent events په توګه لیږي پداسې حال کې چې لیکل کیږي. ټول ماډلونه
max_tokens integer 4096 د ځواب پورتنی حد، په ټوکنونو. د 1 څخه تر 65,536 بهر ارزښت ددې حد دننه کیږي. دا هم هغه مقدار دی چې غوښتنې د چلیدو پر مهال ستاسو له بیلانس څخه ساتل کیږي. لاندې د Output length وګورئ. کوربه شوي open-weight ماډلونه، shannon-1.6-lite، shannon-1.6-pro، shannon-coder-1
max_completion_tokens integer د max_tokens په څیر. کله چې دواړه ولیږل شي، max_tokens کارول کیږي. کوربه شوي open-weight ماډلونه، shannon-1.6-lite، shannon-1.6-pro، shannon-coder-1
temperature number د sampling temperature. په کوربه شوو open-weight ماډلونو کې ډیفالټ 1 دی او ارزښتونه د 0 او 2 ترمنځ ساتل کیږي. کوربه شوي open-weight ماډلونه، shannon-1.6-lite، shannon-1.6-pro، shannon-coder-1
top_p number 0.95 Nucleus sampling. ارزښتونه د 0 او 1 ترمنځ ساتل کیږي. کوربه شوي open-weight ماډلونه
seed integer د sampler Seed، هر ټول عدد. پرته له دې، seed له ماډل او ګفتګو څخه اخیستل کیږي، نو همدا غوښتنه دوه ځله لیږل شوې هماغه seed کاروي. کوربه شوي open-weight ماډلونه
stop string | array یو string یا د strings لړۍ. تر 4 پورې کارول کیږي. ځواب مخکې له لومړي هغه ختمیږي چې ښکاره شي؛ د ودرولو متن پخپله بیرته نه ورکول کیږي. کوربه شوي open-weight ماډلونه
reasoning_effort string high ماډل مخکې له ځواب ورکولو څومره reasoning کوي: off، low، medium یا high. none او minimal د off معنی لري، default د medium، max د high. هر بل ارزښت 400 بیرته ورکوي. کوربه شوي open-weight ماډلونه
reasoning object هماغه تنظیم د څیز په بڼه: {"effort": "low"}. کله چې دواړه ولیږل شي، reasoning_effort کارول کیږي. کوربه شوي open-weight ماډلونه
tools array هغه functions چې ماډل یې غوښتلی شي، هر یو د {"type": "function", "function": {"name", "description", "parameters"}} په توګه. د ماډل calls په tool_calls کې بیرته راځي؛ ستاسو کوډ یې چلوي. ټول ماډلونه
tool_choice string | object auto "auto" ماډل ته پریکړه پریږدي. "required" ماډل مجبوروي چې tool وغواړي. {"type": "function", "function": {"name": "…"}} یې مجبوروي چې همغه tool وغواړي. کوربه شوي open-weight ماډلونه
response_format object {"type": "json_object"} د JSON ځواب لپاره، یا {"type": "json_schema", "json_schema": {…}} د هغه ځواب لپاره چې ستاسو schema تعقیبوي. د Shannon ټولې کچې؛ کوربه شوي open-weight ماډلونه لکه د هر id په اړه لیست شوي
web_search boolean false true ماډل ته اجازه ورکوي چې مخکې له ځواب ورکولو په ویب کې ولټوي. shannon-1.6-*، shannon-2-*، د Shannon 3 کورنۍ

نور OpenAI ساحې، لکه n، user، stream_options، parallel_tool_calls، presence_penalty، frequency_penalty، logit_bias، logprobs، metadata، store او prompt_cache_key، منل کیږي ترڅو شته client کوډ بې بدلون چلیږي. دوی ځواب نه بدلوي: تل یوه choice وي، او stream تل په usage پای ته رسیږي.

هغه ساحه چې د JSON غلط ډول ولري، د مثال په توګه "max_tokens": "100"، 422 بیرته ورکوي. هغه غوښتنه چې messages نه لري هم همداسې.

Tools، جوړښت لرونکی output، reasoning او web search هر یو خپله جلا پاڼه لري: فنکشن زنګ وهل, جوړښت شوي محصولات, د reasoning effort, جوړ شوی ویب لټون.

غوښتنه د اختیارونو سره

دا غوښتنه system message، د sampling ساحې او د reasoning effort ټاکي. دا یو کوربه شوی open-weight ماډل کاروي، چې ټول پلي کوي.

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 په کوربه شوو open-weight ماډلونو کې دوه جزئیات زیاتوي: له cache څخه لوستل شوي prompt ټوکنونه او هغه ټوکنونه چې په reasoning لګیدلي.

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

د output اوږدوالی

max_tokens دوه کارونه کوي. لومړی، دا د ټوکنونو شمیر دی چې کله غوښتنه پیلیږي ستاسو له بیلانس څخه ساتل کیږي. کله چې ځواب بشپړ شي، دا مقدار د هغو ټوکنونو سره بدلیږي چې غوښتنې کارولي. که max_tokens د هغه څه څخه لوی وي چې ستاسو له بیلانس څخه پاتې دي، غوښتنه 429 Quota exceeded بیرته ورکوي حتی که ځواب پخپله ځای شوی وای. لږ ساتلو لپاره ټیټ max_tokens ولیږئ.

shannon-coder-1 پدې endpoint کې بل ډول شمیرل کیږي: هره غوښتنه ستاسو د پلان د Shannon Coder calls څخه یو call دی، او د هغې لپاره هیڅ ټوکنونه نه ساتل کیږي. حدونه او بیلانس

دویم، دا پدې ماډلونو کې د ځواب اوږدوالی محدودوي:

ماډلونه max_tokens څه کوي
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 ځواب هغه وخت ودریږي کله چې حد ته ورسیږي. بیا stream په finish_reason length پای ته رسیږي.
کوربه شوي open-weight ماډلونه د ځواب متن په max_tokens ودریږي. Reasoning پر ضد یې نه شمیرل کیږي. د 256 څخه کم ارزښتونه د 256 په توګه عمل کوي.

پرته له max_tokens یا max_completion_tokens، ارزښت 4,096 دی. په shannon-coder-1 کې 65,536 دی.

Messages

هر message یو څیز دی چې role او content لري. content یو string دی، یا د برخو لړۍ کله چې message له متن زیات څه لیږدوي.

رول تشریح پلي کوونکی
system ماډل ته لارښوونې. لومړی یې ولیکئ. د Shannon په کچو کې لومړی system message هغه دی چې کارول کیږي. کوربه شوي open-weight ماډلونه، shannon-1.6-*، shannon-2-*، shannon-coder-1
developer د system په توګه لوستل کیږي. کوربه شوي open-weight ماډلونه
user هغه څه چې تاسو یې پوښتئ. د Shannon په کچو کې وروستی user message prompt دی او ورڅخه مخکې messages تاریخچه ده. ټول ماډلونه
assistant د ماډل پخواني ځوابونه. کله چې وروسته یې د tool پایله لیږئ، د هغه tool_calls وساتئ. ټول ماډلونه
tool د tool call پایله: tool_call_id د call id لري او content پایله د string په توګه. ټول ماډلونه

د Shannon 3 کورنۍ id سره، هغه لارښوونې چې باید وساتل شي user message کې ولیکئ.

د Shannon په کچو کې هغه غوښتنه چې د کاروونکي متن او tools نه لري 400 No user message provided بیرته ورکوي.

د منځپانګې برخې

برخه تشریح شتون لري په
{"type": "text", "text": "…"} ساده متن. ټول ماډلونه
{"type": "image_url", "image_url": {"url": "…"}} یو انځور، د data: URL په توګه د base64 منځپانګې سره یا د http(s) URL په توګه. د Shannon 3 کورنۍ، shannon-1.6-lite، shannon-1.6-pro، او کوربه شوي open-weight ماډلونه چې انځور input لیست کوي
{"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 د هغه ماډل canonical id چې ځواب یې ورکړ. دا ښایي د هغه id څخه په املا کې توپیر ولري چې تاسو لیږلی.
choices array تل دقیقاً یوه choice، د index 0 سره.
choices[0].message.role string تل assistant.
choices[0].message.content string | null د ځواب متن. د tool_calls سره د Shannon په کچو کې null دی؛ کوربه شوي open-weight ماډلونه کولی شي د calls تر څنګ متن ولیږي.
choices[0].message.reasoning_content string | null هغه reasoning چې ماډل مخکې له ځواب وليکه، یا null کله چې هیڅ نه وي.
choices[0].message.tool_calls array یوازې هغه وخت شتون لري کله چې ماډل tools غواړي. هره داخله id، type function، او function د name او arguments سره د JSON string په توګه لري.
choices[0].message.annotations array یوازې په هغه غوښتنه کې چې web_search: true لري او لټون یې یو څه موندلي. د هرې سرچینې لپاره یو url_citation چې په content کې یوه نښه یې نوم اخلي، د 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 string ښکاره شو.
tool_calls ماډل یو یا ډیر tools غواړي. هغه چلوئ او پایلې په tool messages کې ولیږئ.
length ځواب د output په حد کې پرې شو. په shannon-1.6-lite، shannon-1.6-pro، shannon-coder-1 او د Shannon 3 کورنۍ stream ګانو کې راپور کیږي.

هغه ځواب چې stream نه وي stop یا tool_calls راپور کوي.

Usage

ساحه ډول تشریح شتون لري په
usage.prompt_tokens integer Input ټوکنونه. ټول ماډلونه
usage.completion_tokens integer Output ټوکنونه: reasoning، ځواب او tool calls یوځای. ټول ماډلونه
usage.total_tokens integer prompt_tokens جمع completion_tokens. ټول ماډلونه
usage.prompt_tokens_details.cached_tokens integer د prompt_tokens هغه برخه چې د prompt cache څخه لوستل شوې. کوربه شوي open-weight ماډلونه
usage.completion_tokens_details.reasoning_tokens integer د completion_tokens هغه برخه چې په reasoning لګیدلې. کوربه شوي open-weight ماډلونه

په کوربه شوو open-weight ماډلونو کې، prompt_tokens ستاسو messages او د tool تعریفونه دي چې د ماډل د خپل tokenizer سره شمیرل شوي، پلس د هر انځور ټوکنونه. د ټوکنونو شمېرنې endpoints مخکې له لیږلو همدا شمیره بیرته ورکوي. د ټوکنونو شمېرنه

د Shannon په کچو کې، prompt_tokens هر هغه څه شمیري چې ماډل د ځواب د لیکلو لپاره لوستي، نو دا یوازې د ستاسو د messages د متن څخه لوی دی.

Streaming

کله چې stream په true ټاکل شي ځواب د chat.completion.chunk events په توګه رارسیږي او په data: [DONE] پای ته رسیږي. ورڅخه مخکې وروستی chunk finish_reason او usage لیږدوي؛ هیڅ stream_options ته اړتیا نشته. د chunk بڼې، keep-alive کرښې او د stream دننه تېروتنې خپله جلا پاڼه لري. جریان

تېروتنې

تېروتنه د JSON څیز دی چې error غړی لري. چکونه په دې ترتیب چلیږي: API کیلي، د غوښتنې بدنه، د ماډل id، بیا بیلانس. جدول هغه څه لیست کوي چې دا endpoint تر ټولو ډیر بیرته ورکوي. بشپړ لیست، د دې سره چې څه بیا هڅه شي، خپله جلا پاڼه لري. د تېروتنې اداره کول

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 د انځور برخه هغه کوربه شوي open-weight ماډل ته ولیږل شوه چې انځور input نه لري.
400 invalid_request_error <id> does not accept response_format response_format هغه کوربه شوي open-weight ماډل ته ولیږل شو چې جوړښت لرونکی output نه لري.
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. Flood protection: ستاسو په حساب په یوه دقیقه کې له 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 کورنۍ او کوربه شوو open-weight ماډلونو کې.