Eqa uye okuqukethwe
Chat Completions

Chat Completions

I-POST /v1/chat/completions yamukela ingxoxo bese ibuyisela umlayezo olandelayo we-model ngefomethi ye-OpenAI Chat Completions. Yisebenzise kunoma iyiphi i-OpenAI SDK noma nge-HTTP elula; leli khasi liyinkomba ye-field nge-field.

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

Isicelo esincane kakhulu siyi-id ye-model nomlayezo owodwa womsebenzisi.

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)

Impendulo iyinto eyodwa ye-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
  }
}

Ama-header

Ama-header esicelo

I-header Inani Incazelo
Authorization Bearer YOUR_API_KEY I-API key yakho. I-x-api-key: YOUR_API_KEY iyamukelwa esikhundleni sayo kuwo wonke ama-endpoint.
Content-Type application/json Iyadingeka. Noma yiliphi elinye inani libuyisela i-415.
x-request-id Ayiphoqelekile. I-id yakho yesicelo. Ibuya ingashintshiwe empendulweni.

Ama-header empendulo

I-header Incazelo
x-request-id Kuyo yonke impendulo, kufaka amaphutha nama-stream: inani olithumele, noma izinhlamvu ze-hexadecimal ezingu-12 uma ungathumelanga lutho. Yicaphune uma ubika inkinga.
content-type I-application/json, noma i-text/event-stream uma i-stream ithi true.

Ama-field esicelo

I-messages kuphela edingekayo. Ikholomu ethi Kusebenza ku- ibala ama-model lapho i-field ishintsha khona impendulo. Ama-model e-open-weight ahlinzekiwe ama-id ayishumi nambili osukwini lwama-model; umndeni we-Shannon 3 ngu-shannon-3, shannon-3-pro, shannon-3.1 no-shannon-3.1-pro. Ama-model namanani

I-field Uhlobo Okuzenzakalelayo Incazelo Kusebenza ku-
model string shannon-1.6-lite I-model ephendulayo: i-id evela ohlwini lwama-model. Ithumele kuso sonke isicelo. Ukufanisa akunaki ukuhluka phakathi kwezinhlamvu ezinkulu nezincane. I-id engashicilelwanga ibuyisela i-400 unknown model. Wonke ama-model
messages array Iyadingeka. Ingxoxo, umlayezo omdala kuqala. Bheka Imilayezo ngezansi. Wonke ama-model
stream boolean false I-true ithumela impendulo njenge-server-sent events ngenkathi ibhalwa. Wonke ama-model
max_tokens integer 4096 Umkhawulo ophezulu wempendulo, ngama-token. Inani elingaphandle kuka-1 kuya ku-65,536 lisondezwa kulelo cala. Futhi yilona nani elibekelwa eceleni ku-balance yakho ngenkathi isicelo sisebenza. Bheka Ubude bokuphumayo ngezansi. Ama-model e-open-weight ahlinzekiwe, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer Okufanayo ne-max_tokens. Uma zombili zithunyelwe, i-max_tokens iyasetshenziswa. Ama-model e-open-weight ahlinzekiwe, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Izinga lokushisa le-sampling. Kuma-model e-open-weight ahlinzekiwe okuzenzakalelayo ngu-1 futhi amanani agcinwa phakathi kuka-0 no-2. Ama-model e-open-weight ahlinzekiwe, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 I-nucleus sampling. Amanani agcinwa phakathi kuka-0 no-1. Ama-model e-open-weight ahlinzekiwe
seed integer I-seed ye-sampler, noma iyiphi inombolo ephelele. Ngaphandle kwayo, i-seed ikhiqizwa ku-model nasengxoxweni, ngakho isicelo esifanayo esithunyelwe kabili sisebenzisa i-seed efanayo. Ama-model e-open-weight ahlinzekiwe
stop string | array I-string noma uhlu lwama-string. Kusetshenziswa angafika ku-4. Impendulo iphela ngaphambi kokuqala okubonakala; umbhalo wokumisa ngokwawo awubuyiswa. Ama-model e-open-weight ahlinzekiwe
reasoning_effort string high Ukuthi i-model icabanga kangakanani ngaphambi kokuphendula: off, low, medium noma high. I-none ne-minimal zisho off, i-default isho medium, i-max isho high. Noma yiliphi elinye inani libuyisela i-400. Ama-model e-open-weight ahlinzekiwe
reasoning object Isilungiselelo esifanayo ngesimo sento: {"effort": "low"}. Uma zombili zithunyelwe, i-reasoning_effort iyasetshenziswa. Ama-model e-open-weight ahlinzekiwe
tools array Imisebenzi i-model engayibiza, ngayinye njenge-{"type": "function", "function": {"name", "description", "parameters"}}. Ukubiza kwe-model kubuya ku-tool_calls; ikhodi yakho iyawenza. Wonke ama-model
tool_choice string | object auto I-"auto" ivumela i-model ukuthi inqume. I-"required" iyiphoqa ukuthi ibize ithuluzi. I-{"type": "function", "function": {"name": "…"}} iyiphoqa ukuthi ibize lelo thuluzi. Ama-model e-open-weight ahlinzekiwe
response_format object {"type": "json_object"} ukuthola impendulo ye-JSON, noma {"type": "json_schema", "json_schema": {…}} ukuthola impendulo elandela i-schema yakho. Wonke amazinga e-Shannon; ama-model e-open-weight ahlinzekiwe njengoba elandelisiwe nge-id
web_search boolean false I-true ivumela i-model ukuthi isesha kuwebhu ngaphambi kokuphendula. shannon-1.6-*, shannon-2-*, umndeni we-Shannon 3

Ezinye ama-field e-OpenAI, afana ne-n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store ne-prompt_cache_key, ayamukelwa ukuze ikhodi yeklayenti esekhona isebenze ngaphandle kokushintshwa. Awashintshi impendulo: njalo kunokukhetha okukodwa, futhi i-stream iphela njalo ngokusetshenziswa.

I-field enohlobo olungalungile lwe-JSON, isibonelo "max_tokens": "100", ibuyisela i-422. Isicelo esingenayo i-messages senza okufanayo.

Amathuluzi, okuphumayo okuhleliwe, ukucabanga nokusesha kuwebhu kunekhasi lakho ngalinye: Ukubiza umsebenzi, Imiphumela ehlanganisiwe, Umzamo wokucabanga, Usesho lwewebhu.

Isicelo esinezinketho

Lesi sicelo sisetha umlayezo wesistimu, ama-field e-sampling nomzamo wokucabanga. Sisebenzisa i-model ye-open-weight ehlinzekiwe, esebenzisa zonke lezi.

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)

Impendulo inesimo esifanayo nesingenhla. I-usage yayo yengeza imininingwane emibili kuma-model e-open-weight ahlinzekiwe: ama-token e-prompt afundwe ku-cache nama-token asetshenziselwe ukucabanga.

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

Ubude bokuphumayo

I-max_tokens yenza izinto ezimbili. Okokuqala, inani lama-token abekelwa eceleni ku-balance yakho lapho isicelo siqala. Uma impendulo isiphelele, lelo nani lifakwa esikhundleni sama-token isicelo esizisebenzisile. Uma i-max_tokens inkulu kunalokho okusele ku-balance yakho, isicelo sibuyisela i-429 Quota exceeded noma impendulo ngokwayo ibizofaneleka. Thumela i-max_tokens encane ukuze ubeke eceleni okuncane.

I-shannon-coder-1 ibalwa ngokuhlukile kule endpoint: isicelo ngasinye siyisicelo esisodwa se-Shannon Coder sepulani yakho, futhi akukho ma-token abekelwa eceleni. Imikhawulo ne-balance

Okwesibili, ikhawulela ubude bempendulo kulawa ma-model:

Ama-model Lokho i-max_tokens ekwenzayo
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 Impendulo iyeka uma ifinyelela emkhawulweni. I-stream bese iphela nge-finish_reason length.
Ama-model e-open-weight ahlinzekiwe Umbhalo wempendulo umiswa ku-max_tokens. Ukucabanga akubalwa kuyo. Amanani angaphansi kuka-256 asebenza njengo-256.

Ngaphandle kwe-max_tokens noma i-max_completion_tokens, inani lingu-4,096. Ku-shannon-coder-1 lingu-65,536.

Imilayezo

Umlayezo ngamunye uyinto ene-role ne-content. I-content iyi-string, noma uhlu lwezingxenye uma umlayezo uphatha okungaphezu kombhalo.

Indima Incazelo Kusebenza ku-
system Imiyalo ye-model. Yifake kuqala. Emazingeni e-Shannon umlayezo wokuqala we-system yilona osetshenziswayo. Ama-model e-open-weight ahlinzekiwe, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer Ifundwa njenge-system. Ama-model e-open-weight ahlinzekiwe
user Lokho okubuzayo. Emazingeni e-Shannon umlayezo wokugcina we-user yi-prompt futhi imilayezo ngaphambi kwawo iyumlando. Wonke ama-model
assistant Izimpendulo zangaphambilini ze-model. Gcina i-tool_calls yayo uma uthumela umphumela wethuluzi ngemuva kwayo. Wonke ama-model
tool Umphumela wokubiza ithuluzi: i-tool_call_id iphethe i-id yokubiza ne-content umphumela njenge-string. Wonke ama-model

Nge-id yomndeni we-Shannon 3, faka imiyalo okufanele ilandelwe emlayezweni we-user.

Emazingeni e-Shannon isicelo esingenawo umbhalo womsebenzisi futhi singenawo ama-tools sibuyisela i-400 No user message provided.

Izingxenye zokuqukethwe

Ingxenye Incazelo Kuyatholakala ku-
{"type": "text", "text": "…"} Umbhalo olula. Wonke ama-model
{"type": "image_url", "image_url": {"url": "…"}} Isithombe, njenge-URL ye-data: enokuqukethwe kwe-base64 noma njenge-URL ye-http(s). Umndeni we-Shannon 3, shannon-1.6-lite, shannon-1.6-pro, nama-model e-open-weight ahlinzekiwe abala okufakwayo kwezithombe
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Idokhumenti (PDF, Word, PowerPoint noma Excel), nge-base64 noma nge-URL. Umndeni we-Shannon 3

Osayizi, imikhawulo nohlu olugcwele lwamafomu zinekhasi lazo. Izithombe namafayela

Into yempendulo

I-field Uhlobo Incazelo
id string I-chatcmpl- elandelwa yizinhlamvu ze-hexadecimal ezingu-32.
object string Njalo chat.completion.
created integer Isikhathi sempendulo, ngemizuzwana ye-Unix.
model string I-id ye-canonical ye-model ephendulile. Ingahluka ngokuhlukanisa nge-id oyithumele.
choices array Njalo kunokukhetha okukodwa kuphela, nge-index 0.
choices[0].message.role string Njalo assistant.
choices[0].message.content string | null Umbhalo wempendulo. Nge-tool_calls uthi null emazingeni e-Shannon; ama-model e-open-weight ahlinzekiwe angathumela umbhalo eceleni kokubiza.
choices[0].message.reasoning_content string | null Ukucabanga i-model eyakubhale ngaphambi kwempendulo, noma null uma kungekho.
choices[0].message.tool_calls array Ikhona kuphela uma i-model ibiza amathuluzi. Okufakiwe ngakunye kunalo i-id, i-type function, ne-function ene-name nama-arguments njenge-string ye-JSON.
choices[0].message.annotations array Kuphela esicelweni esine-web_search: true okusesha kwaso kuthole okuthile. I-url_citation eyodwa emthonjeni ngamunye obizwa uphawu ku-content, ne-url, title, start_index ne-end_index (isikhundla sophawu, esibalwa ngezinhlamvu, isiphetho asifakwanga).
choices[0].finish_reason string Isizathu sokuthi impendulo iphele. Bheka Izizathu zokuphela.
usage object Ama-token esicelo. Bheka Ukusetshenziswa.
sources array Kuphela esicelweni esine-web_search: true okusesha kwaso kuthole okuthile: imiphumela i-model eyinikeziwe, ngayinye ine-index, title ne-url. I-[1] empendulweni yilokho okufakiwe okune-index 1.

Izizathu zokuphela

finish_reason Incazelo
stop I-model iqedile impendulo yayo, noma i-string ye-stop ivelile.
tool_calls I-model ibiza ithuluzi elilodwa noma ngaphezulu. Lisebenzise bese uthumela imiphumela kumilayezo ye-tool.
length Impendulo inqunyiwe emkhawulweni wokuphumayo. Kubikwa kuma-stream e-shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 nomndeni we-Shannon 3.

Impendulo engasakazwa ibika i-stop noma i-tool_calls.

Ukusetshenziswa

I-field Uhlobo Incazelo Kuyatholakala ku-
usage.prompt_tokens integer Ama-token okufakwayo. Wonke ama-model
usage.completion_tokens integer Ama-token okuphumayo: ukucabanga, impendulo nokubiza amathuluzi ndawonye. Wonke ama-model
usage.total_tokens integer I-prompt_tokens kanye ne-completion_tokens. Wonke ama-model
usage.prompt_tokens_details.cached_tokens integer Ingxenye ye-prompt_tokens efundwe ku-prompt cache. Ama-model e-open-weight ahlinzekiwe
usage.completion_tokens_details.reasoning_tokens integer Ingxenye ye-completion_tokens esetshenziselwe ukucabanga. Ama-model e-open-weight ahlinzekiwe

Kuma-model e-open-weight ahlinzekiwe, i-prompt_tokens yimilayezo yakho nezincazelo zamathuluzi zibalwa nge-tokenizer ye-model ngokwayo, kanye nama-token ezithombe zonke. Ama-endpoint okubala ama-token abuyisela inombolo efanayo ngaphambi kokuthumela. Ukubala ama-token

Emazingeni e-Shannon, i-prompt_tokens ibala konke i-model eyakufunda ukubhala impendulo, ngakho inkulu kunombhalo wemilayezo yakho wodwa.

I-Streaming

Nge-stream esethelwe ku-true impendulo ifika njengemicimbi ye-chat.completion.chunk bese iphela nge-data: [DONE]. I-chunk yokugcina ngaphambi kwayo iphatha i-finish_reason ne-usage; akudingeki ama-stream_options. Izimo ze-chunk, imigqa ye-keep-alive namaphutha ngaphakathi kwe-stream kunekhasi lakho. Ukusakaza

Amaphutha

Iphutha liyinto ye-JSON enelungu le-error. Ukuhlola kwenziwa ngalolu hlelo: i-API key, umzimba wesicelo, i-id ye-model, bese i-balance. Ithebula libala lokho le-endpoint ebuyisela kaningi. Uhlu olugcwele, nalokho okufanele kuzanywe futhi, lunekhasi lalo. Ukuphathwa kwamaphutha

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Isimo Uhlobo Umlayezo Nini
401 authentication_error Missing authentication
Invalid API key
Ayikho i-API key ethunyelwe, noma i-key ayaziwa noma ihoxisiwe.
400 invalid_request_error unknown model: <id> I-model akuyona i-id eshicilelwe.
400 invalid_request_error No user message provided Amazinga e-Shannon: isicelo asinawo umbhalo womsebenzisi futhi asinawo ama-tools.
400 invalid_request_error <id> does not accept image input Ingxenye yesithombe ithunyelwe ku-model ye-open-weight ehlinzekiwe engenakho ukufakwa kwezithombe.
400 invalid_request_error <id> does not accept response_format I-response_format ithunyelwe ku-model ye-open-weight ehlinzekiwe engenakho okuphumayo okuhleliwe.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high I-reasoning_effort iphethe inani elingaphandle kohlu.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … I-messages ilahlekile, noma i-field inohlobo olungalungile lwe-JSON.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan I-max_tokens inkulu kunalokho okusele ku-balance yakho.
429 rate_limit_error Too many requests. Retry in <n>s. I-flood protection: izicelo ezingaphezu kwe-120 ngomzuzu owodwa ku-akhawunti yakho.
500 server_error The model backend failed to answer. Please retry. I-model ayikhiqizanga mpendulo. Thumela isicelo futhi.
502 api_error The model backend failed to answer. Please retry. Okufanayo, kumndeni we-Shannon 3 nakuma-model e-open-weight ahlinzekiwe.