Chat Completions
POST /v1/chat/completions jieħu konversazzjoni u jagħti lura l-messaġġ li jmiss tal-mudell fil-format OpenAI Chat Completions. Uża minn kull SDK ta' OpenAI jew permezz ta' HTTP sempliċi; din il-paġna hija r-referenza qasam b'qasam.
POST https://api.shannon-ai.com/v1/chat/completions
L-iżgħar talba hija id ta' mudell u messaġġ wieħed ta' utent.
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) import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com/v1",
});
const response = await client.chat.completions.create({
model: "shannon-3",
messages: [{ role: "user", content: "Say hello in one sentence." }],
});
console.log(response.choices[0].message.content); curl https://api.shannon-ai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"messages": [{"role": "user", "content": "Say hello in one sentence."}]
}' It-tweġiba hija oġġett JSON wieħed:
{
"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 tat-talba
| Header | Valur | Deskrizzjoni |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | Iċ-ċavetta tal-API tiegħek. x-api-key: YOUR_API_KEY tiġi aċċettata minflokha fuq kull endpoint. |
Content-Type | application/json | Meħtieġ. Kull valur ieħor jagħti lura 415. |
x-request-id | Mhux obbligatorju. L-id tiegħek stess għat-talba. Jiġi lura mhux mibdul fit-tweġiba. |
Headers tat-tweġiba
| Header | Deskrizzjoni |
|---|---|
x-request-id | Fuq kull tweġiba, inklużi l-iżbalji u l-istreams: il-valur li bgħatt, jew 12-il karattru eżadeċimali meta ma bgħatt xejn. Semmih meta tirrapporta problema. |
content-type | application/json, jew text/event-stream meta stream huwa true. |
Kampi tat-talba
Hemm bżonn biss ta' messages. Il-kolonna Applikat minn issemmi l-mudelli li fuqhom qasam ibiddel it-tweġiba. Il-mudelli open-weight ospitati huma tnax-il id tal-lista tal-mudelli; il-familja Shannon 3 hija shannon-3, shannon-3-pro, shannon-3.1 u shannon-3.1-pro. Mudelli u prezzijiet
| Qasam | Tip | Default | Deskrizzjoni | Applikat minn |
|---|---|---|---|---|
model | string | shannon-1.6-lite | Il-mudell li jwieġeb: id mil-lista tal-mudelli. Ibgħatu ma' kull talba. It-tqabbil ma jiddistingwix bejn ittri kbar u żgħar. Id li mhuwiex ippubblikat jagħti lura 400 unknown model. | Il-mudelli kollha |
messages | array | Meħtieġ. Il-konversazzjoni, bl-eqdem messaġġ l-ewwel. Ara Messaġġi hawn taħt. | Il-mudelli kollha | |
stream | boolean | false | true jibgħat it-tweġiba bħala server-sent events waqt li tinkiteb. | Il-mudelli kollha |
max_tokens | integer | 4096 | Limitu massimu tat-tweġiba, f'tokens. Valur barra minn 1 sa 65,536 jiġi mċaqlaq f'dik il-medda. Hija wkoll l-ammont li jitwarrab mill-bilanċ tiegħek waqt li t-talba tkun għaddejja. Ara Tul tal-output hawn taħt. | Mudelli open-weight ospitati, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 |
max_completion_tokens | integer | L-istess bħal max_tokens. Meta jintbagħtu t-tnejn, jintuża max_tokens. | Mudelli open-weight ospitati, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
temperature | number | Temperatura tas-sampling. Fuq il-mudelli open-weight ospitati d-default huwa 1 u l-valuri jinżammu bejn 0 u 2. | Mudelli open-weight ospitati, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
top_p | number | 0.95 | Nucleus sampling. Il-valuri jinżammu bejn 0 u 1. | Mudelli open-weight ospitati |
seed | integer | Seed tas-sampler, kwalunkwe numru sħiħ. Mingħajru, is-seed jiġi derivat mill-mudell u mill-konversazzjoni, għalhekk l-istess talba mibgħuta darbtejn tuża l-istess seed. | Mudelli open-weight ospitati | |
stop | string | array | String jew array ta' strings. Jintużaw sa 4. It-tweġiba tintemm qabel l-ewwel waħda li tidher; it-test tal-waqfa nnifsu ma jintbagħatx lura. | Mudelli open-weight ospitati | |
reasoning_effort | string | high | Kemm jirraġuna l-mudell qabel ma jwieġeb: off, low, medium jew high. none u minimal ifissru off, default ifisser medium, max ifisser high. Kull valur ieħor jagħti lura 400. | Mudelli open-weight ospitati |
reasoning | object | L-istess issettjar f'forma ta' oġġett: {"effort": "low"}. Meta jintbagħtu t-tnejn, jintuża reasoning_effort. | Mudelli open-weight ospitati | |
tools | array | Il-funzjonijiet li l-mudell jista' jsejjaħ, kull waħda bħala {"type": "function", "function": {"name", "description", "parameters"}}. Is-sejħiet tal-mudell jiġu lura f'tool_calls; il-kodiċi tiegħek iħaddimhom. | Il-mudelli kollha | |
tool_choice | string | object | auto | "auto" iħalli l-mudell jiddeċiedi. "required" iġiegħlu jsejjaħ tool. {"type": "function", "function": {"name": "…"}} iġiegħlu jsejjaħ dak it-tool. | Mudelli open-weight ospitati |
response_format | object | {"type": "json_object"} għal tweġiba JSON, jew {"type": "json_schema", "json_schema": {…}} għal tweġiba li ssegwi l-iskema tiegħek. | Il-livelli Shannon kollha; mudelli open-weight ospitati kif imniżżla għal kull id | |
web_search | boolean | false | true iħalli l-mudell ifittex fuq il-web qabel ma jwieġeb. | shannon-1.6-*, shannon-2-*, familja Shannon 3 |
Kampi oħra ta' OpenAI, bħal n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store u prompt_cache_key, jiġu aċċettati sabiex il-kodiċi eżistenti tal-klijent jaħdem mingħajr bidla. Ma jbiddlux it-tweġiba: dejjem hemm għażla waħda, u stream dejjem jispiċċa bl-użu.
Qasam bit-tip JSON ħażin, pereżempju "max_tokens": "100", jagħti lura 422. Hekk jagħmel ukoll talba mingħajr messages.
Tools, output strutturat, raġunament u fittxija fuq il-web kull wieħed għandu paġna tiegħu: Sejħiet ta' Funzjonijiet, Outputs Strutturati, Sforz ta' raġunament, Tfittxija Web inkorporata.
Talba b'għażliet
Din it-talba tistabbilixxi messaġġ system, il-kampi tas-sampling u l-isforz tar-raġunament. Tuża mudell open-weight ospitat, li japplika lil kollha.
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) import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com/v1",
});
const response = await 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",
});
const message = response.choices[0].message;
console.log(message.reasoning_content); // the reasoning
console.log(message.content); // the answer
console.log(response.usage); curl https://api.shannon-ai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"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"
}' It-tweġiba għandha l-istess forma bħal hawn fuq. L-usage tagħha jżid żewġ dettalji fuq il-mudelli open-weight ospitati: il-prompt tokens moqrija mill-cache u t-tokens użati għar-raġunament.
{
"usage": {
"prompt_tokens": 31,
"completion_tokens": 62,
"total_tokens": 93,
"prompt_tokens_details": {
"cached_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 21
}
}
} Tul tal-output
max_tokens jagħmel żewġ affarijiet. L-ewwel, huwa n-numru ta' tokens li jitwarrbu mill-bilanċ tiegħek meta tibda t-talba. Meta t-tweġiba tkun kompluta, dak l-ammont jinbidel bit-tokens li t-talba użat. Jekk max_tokens huwa akbar minn dak li fadal mill-bilanċ tiegħek, it-talba tagħti lura 429 Quota exceeded anki jekk it-tweġiba nnifisha kienet taqbel. Ibgħat max_tokens aktar baxx biex tiwarrab inqas.
shannon-coder-1 jingħadd b'mod differenti fuq dan l-endpoint: kull talba hija waħda mis-sejħiet ta' Shannon Coder tal-pjan tiegħek, u ebda tokens ma jitwarrbu għaliha. Limiti u bilanċ
It-tieni, jillimita t-tul tat-tweġiba fuq dawn il-mudelli:
| Mudelli | X'jagħmel max_tokens |
|---|---|
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | It-tweġiba tieqaf meta tilħaq il-limitu. Stream imbagħad jispiċċa b'finish_reason length. |
| Mudelli open-weight ospitati | It-test tat-tweġiba jieqaf f'max_tokens. Ir-raġunament ma jingħaddx kontrih. Valuri taħt 256 jaġixxu bħala 256. |
Mingħajr max_tokens jew max_completion_tokens, il-valur huwa 4,096. Fuq shannon-coder-1 huwa 65,536.
Messaġġi
Kull messaġġ huwa oġġett b'role u content. content huwa string, jew array ta' partijiet meta l-messaġġ iġorr aktar minn test.
| Rwol | Deskrizzjoni | Applikat minn |
|---|---|---|
system | Struzzjonijiet għall-mudell. Poġġih l-ewwel. Fuq il-livelli Shannon l-ewwel messaġġ system huwa dak li jintuża. | Mudelli open-weight ospitati, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
developer | Jinqara bħala system. | Mudelli open-weight ospitati |
user | Dak li tistaqsi. Fuq il-livelli Shannon l-aħħar messaġġ user huwa l-prompt u l-messaġġi qablu huma l-istorja. | Il-mudelli kollha |
assistant | Tweġibiet preċedenti tal-mudell. Żomm l-tool_calls tiegħu meta tibgħat riżultat ta' tool warajh. | Il-mudelli kollha |
tool | Ir-riżultat ta' sejħa ta' tool: tool_call_id fih l-id tas-sejħa u content ir-riżultat bħala string. | Il-mudelli kollha |
B'id tal-familja Shannon 3, poġġi fil-messaġġ user l-istruzzjonijiet li jridu jinżammu.
Fuq il-livelli Shannon talba mingħajr test ta' utent u mingħajr tools tagħti lura 400 No user message provided.
Partijiet tal-kontenut
| Parti | Deskrizzjoni | Disponibbli fuq |
|---|---|---|
{"type": "text", "text": "…"} | Test sempliċi. | Il-mudelli kollha |
{"type": "image_url", "image_url": {"url": "…"}} | Immaġni, bħala URL data: b'kontenut base64 jew bħala URL http(s). | Familja Shannon 3, shannon-1.6-lite, shannon-1.6-pro, u l-mudelli open-weight ospitati li jelenkaw input ta' immaġni |
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} | Dokument (PDF, Word, PowerPoint jew Excel), bħala base64 jew permezz ta' URL. | Familja Shannon 3 |
Id-daqsijiet, il-limiti u l-lista sħiħa tal-forom għandhom paġna tagħhom. Immaġini u fajls
L-oġġett tat-tweġiba
| Qasam | Tip | Deskrizzjoni |
|---|---|---|
id | string | chatcmpl- segwit minn 32 karattru eżadeċimali. |
object | string | Dejjem chat.completion. |
created | integer | Il-ħin tat-tweġiba, f'sekondi Unix. |
model | string | L-id kanoniku tal-mudell li wieġeb. Jista' jiddifferixxi fl-ortografija mill-id li bgħatt. |
choices | array | Dejjem eżattament għażla waħda, b'index 0. |
choices[0].message.role | string | Dejjem assistant. |
choices[0].message.content | string | null | It-test tat-tweġiba. Ma' tool_calls huwa null fuq il-livelli Shannon; il-mudelli open-weight ospitati jistgħu jibagħtu test maġenb is-sejħiet. |
choices[0].message.reasoning_content | string | null | Ir-raġunament li l-mudell kiteb qabel it-tweġiba, jew null meta ma hemm xejn. |
choices[0].message.tool_calls | array | Preżenti biss meta l-mudell isejjaħ tools. Kull entrata għandha id, type function, u function bl-name u l-arguments bħala string JSON. |
choices[0].message.annotations | array | Biss fuq talba b'web_search: true li t-tiftix tagħha sab xi ħaġa. url_citation waħda għal kull sors li markatur f'content isemmi, b'url, title, start_index u end_index (il-pożizzjoni tal-markatur, magħduda f'karattri, it-tmiem mhuwiex inkluż). |
choices[0].finish_reason | string | Għaliex intemmet it-tweġiba. Ara Raġunijiet tat-tmiem. |
usage | object | It-tokens tat-talba. Ara Użu. |
sources | array | Biss fuq talba b'web_search: true li t-tiftix tagħha sab xi ħaġa: ir-riżultati mogħtija lill-mudell, kull wieħed b'index, title u url. [1] fit-tweġiba huwa d-daħla b'index 1. |
Raġunijiet tat-tmiem
| finish_reason | Deskrizzjoni |
|---|---|
stop | Il-mudell spiċċa t-tweġiba tiegħu, jew deher string stop. |
tool_calls | Il-mudell isejjaħ tool wieħed jew aktar. Imxihom u ibgħat ir-riżultati f'messaġġi tool. |
length | It-tweġiba nqatgħet fil-limitu tal-output. Jiġi rrapportat fl-istreams ta' shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 u l-familja Shannon 3. |
Tweġiba mingħajr streaming tirrapporta stop jew tool_calls.
Użu
| Qasam | Tip | Deskrizzjoni | Disponibbli fuq |
|---|---|---|---|
usage.prompt_tokens | integer | Input tokens. | Il-mudelli kollha |
usage.completion_tokens | integer | Output tokens: raġunament, tweġiba u sejħiet ta' tools flimkien. | Il-mudelli kollha |
usage.total_tokens | integer | prompt_tokens flimkien ma' completion_tokens. | Il-mudelli kollha |
usage.prompt_tokens_details.cached_tokens | integer | Il-parti ta' prompt_tokens li nqrat mill-prompt cache. | Mudelli open-weight ospitati |
usage.completion_tokens_details.reasoning_tokens | integer | Il-parti ta' completion_tokens li ntefqet fuq ir-raġunament. | Mudelli open-weight ospitati |
Fuq il-mudelli open-weight ospitati, prompt_tokens huma l-messaġġi u d-definizzjonijiet tat-tools tiegħek magħduda bit-tokenizer tal-mudell stess, flimkien mat-tokens ta' kwalunkwe immaġni. L-endpoints tal-għadd ta' tokens jagħtu lura l-istess numru qabel ma tibgħat. Għadd ta' tokens
Fuq il-livelli Shannon, prompt_tokens jgħodd dak kollu li l-mudell qara biex jikteb it-tweġiba, għalhekk huwa akbar mit-test tal-messaġġi tiegħek biss.
Streaming
B'stream issettjat għal true it-tweġiba tasal bħala avvenimenti chat.completion.chunk u tispiċċa b'data: [DONE]. L-aħħar chunk qablu jġorr finish_reason u usage; m'hemm bżonn ta' ebda stream_options. Il-forom tal-chunks, il-linji keep-alive u l-iżbalji ġo stream għandhom paġna tagħhom. Streaming
Żbalji
Żball huwa oġġett JSON b'membru error. Il-verifiki jmorru f'dan l-ordni: ċavetta tal-API, body tat-talba, id tal-mudell, imbagħad bilanċ. It-tabella telenka dak li dan l-endpoint jagħti lura l-aktar spiss. Il-lista kompluta, b'dak li għandu jerġa' jiġi pprovat, għandha paġna tagħha. Ġestjoni tal-iżbalji
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: no-such-model"
}
} | Status | Tip | Messaġġ | Meta |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid API key | Ma nbagħtitx ċavetta tal-API, jew iċ-ċavetta mhijiex magħrufa jew ġiet irrevokata. |
400 | invalid_request_error | unknown model: <id> | model mhuwiex id ippubblikat. |
400 | invalid_request_error | No user message provided | Livelli Shannon: it-talba m'għandha ebda test ta' utent u ebda tools. |
400 | invalid_request_error | <id> does not accept image input | Parti ta' immaġni nbagħtet lil mudell open-weight ospitat mingħajr input ta' immaġni. |
400 | invalid_request_error | <id> does not accept response_format | response_format intbagħat lil mudell open-weight ospitat mingħajr output strutturat. |
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | reasoning_effort fih valur barra mil-lista. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | messages nieqes, jew qasam għandu tip JSON ħażin. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | max_tokens huwa akbar minn dak li fadal mill-bilanċ tiegħek. |
429 | rate_limit_error | Too many requests. Retry in <n>s. | Protezzjoni mill-flood: aktar minn 120 talba f'minuta waħda fuq il-kont tiegħek. |
500 | server_error | The model backend failed to answer. Please retry. | Il-mudell ma pproduċiex tweġiba. Ibgħat it-talba mill-ġdid. |
502 | api_error | The model backend failed to answer. Please retry. | L-istess, fuq il-familja Shannon 3 u l-mudelli open-weight ospitati. |