Chat Completions
Ny POST /v1/chat/completions dia mandray resaka ary mamerina ny hafatra manaraka an'ny model amin'ny endrika OpenAI Chat Completions. Ampiasao avy amin'ny SDK OpenAI na amin'ny HTTP tsotra; ity pejy ity no fanovozan-kevitra saha isaky ny saha.
POST https://api.shannon-ai.com/v1/chat/completions
Ny fangatahana kely indrindra dia model id sy hafatra user iray.
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."}]
}' Ny valiny dia objet JSON iray:
{
"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 amin'ny fangatahana
| Header | Sanda | Famaritana |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | Ny API key-nao. Ekena ho solony ny x-api-key: YOUR_API_KEY amin'ny endpoint rehetra. |
Content-Type | application/json | Ilaina. Ny sanda hafa rehetra dia mamerina 415. |
x-request-id | Tsy voatery. Ny id anao manokana ho an'ny fangatahana. Averina tsy miova ao amin'ny valiny. |
Headers amin'ny valiny
| Header | Famaritana |
|---|---|
x-request-id | Amin'ny valiny rehetra, anisan'izany ny hadisoana sy ny stream: ny sanda nalefanao, na tarehintsoratra hexadecimal 12 raha tsy nanome ianao. Ataovy ho ao anatin'ny tatitra rehefa mitatitra olana. |
content-type | application/json, na text/event-stream rehefa true ny stream. |
Sahan'ny fangatahana
Ny messages ihany no ilaina. Ny tsanganana Ampiharin'ny dia manonona ny model izay anovan'ny saha ny valiny. Ny model open-weight hosted dia ny id roa ambin'ny folo ao amin'ny lisitry ny model; ny fianakavian'i Shannon 3 dia shannon-3, shannon-3-pro, shannon-3.1 ary shannon-3.1-pro. Model & vidiny
| Saha | Karazana | Default | Famaritana | Ampiharin'ny |
|---|---|---|---|---|
model | string | shannon-1.6-lite | Ny model mamaly: id avy amin'ny lisitry ny model. Alefaso isaky ny fangatahana. Tsy mijery ny litera lehibe/kely ny fampitahana. Ny id tsy navoaka dia mamerina 400 unknown model. | Model rehetra |
messages | array | Ilaina. Ny resaka, hafatra taloha indrindra no voalohany. Jereo ny Hafatra etsy ambany. | Model rehetra | |
stream | boolean | false | Ny true dia mandefa ny valiny ho server-sent events raha mbola soratana izy. | Model rehetra |
max_tokens | integer | 4096 | Fetra ambony indrindra ny valiny, amin'ny tokens. Ny sanda ivelan'ny 1 hatramin'ny 65,536 dia entina ao anatin'io elanelana io. Io ihany koa no habetsaky ny balance-nao tazonina raha mbola mandeha ny fangatahana. Jereo ny Halavan'ny output etsy ambany. | Model open-weight hosted, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 |
max_completion_tokens | integer | Mitovy amin'ny max_tokens. Raha alefa roa dia ny max_tokens no ampiasaina. | Model open-weight hosted, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
temperature | number | Sampling temperature. Amin'ny model open-weight hosted dia 1 ny default ary tazonina eo anelanelan'ny 0 sy 2 ny sanda. | Model open-weight hosted, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
top_p | number | 0.95 | Nucleus sampling. Tazonina eo anelanelan'ny 0 sy 1 ny sanda. | Model open-weight hosted |
seed | integer | Seed an'ny sampler, isa manontolo na inona na inona. Raha tsy misy, avy amin'ny model sy ny resaka no avoaka ny seed, ka ny fangatahana mitovy alefa indroa dia mampiasa seed mitovy. | Model open-weight hosted | |
stop | string | array | String na array misy string. Hatramin'ny 4 no ampiasaina. Mifarana alohan'ny voalohany miseho ny valiny; tsy averina ny soratra stop. | Model open-weight hosted | |
reasoning_effort | string | high | Hoatrinona ny reasoning an'ny model alohan'ny hamaliany: off, low, medium na high. Ny none sy minimal dia midika off, ny default dia midika medium, ny max dia midika high. Ny sanda hafa rehetra dia mamerina 400. | Model open-weight hosted |
reasoning | object | Ny setting mitovy amin'ny endrika objet: {"effort": "low"}. Raha alefa roa, ny reasoning_effort no ampiasaina. | Model open-weight hosted | |
tools | array | Ny function azon'ny model antsoina, tsirairay amin'ny endrika {"type": "function", "function": {"name", "description", "parameters"}}. Ny antso nataon'ny model dia miverina ao amin'ny tool_calls; ny kaody-nao no mampandeha azy. | Model rehetra | |
tool_choice | string | object | auto | Ny "auto" dia avela hanapa-kevitra ny model. Ny "required" dia manery azy hiantso tool. Ny {"type": "function", "function": {"name": "…"}} dia manery azy hiantso io tool io. | Model open-weight hosted |
response_format | object | {"type": "json_object"} ho an'ny valiny JSON, na {"type": "json_schema", "json_schema": {…}} ho an'ny valiny manaraka ny schema-nao. | Tier Shannon rehetra; model open-weight hosted araka ny voatanisa isaky ny id | |
web_search | boolean | false | Ny true dia avela hikaroka ao amin'ny web ny model alohan'ny hamaliany. | shannon-1.6-*, shannon-2-*, fianakavian'i Shannon 3 |
Ny saha OpenAI hafa, toy ny n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store ary prompt_cache_key, dia ekena mba hiasa tsy miova ny kaody client efa misy. Tsy manova ny valiny izy ireo: choice iray foana no misy, ary ny stream dia mifarana foana miaraka amin'ny usage.
Ny saha manana karazana JSON diso, ohatra "max_tokens": "100", dia mamerina 422. Toy izany koa ny fangatahana tsy misy messages.
Ny tools, structured output, reasoning ary web search dia samy manana pejy manokana: Antso fiasa, Vokatra voarafitra, Reasoning effort, Fikarohana web.
Fangatahana misy options
Ity fangatahana ity dia mametra hafatra system, ny saha sampling ary ny reasoning effort. Mampiasa model open-weight hosted izy, izay mampihatra azy rehetra.
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"
}' Ny valiny dia manana endrika mitovy amin'ny etsy ambony. Ny usage-ny dia manampy antsipiriany roa amin'ny model open-weight hosted: ny prompt tokens novakina avy ao amin'ny cache sy ny tokens lany tamin'ny reasoning.
{
"usage": {
"prompt_tokens": 31,
"completion_tokens": 62,
"total_tokens": 93,
"prompt_tokens_details": {
"cached_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 21
}
}
} Halavan'ny output
Ny max_tokens dia manao zavatra roa. Voalohany, izy no isan'ny tokens tazonina avy amin'ny balance-nao rehefa manomboka ny fangatahana. Rehefa vita ny valiny, io habetsaka io dia soloina ny tokens nampiasain'ny fangatahana. Raha lehibe noho ny sisa amin'ny balance-nao ny max_tokens, ny fangatahana dia mamerina 429 Quota exceeded na dia ho tafiditra aza ny valiny. Alefaso max_tokens ambany kokoa mba hitazonana tsy dia betsaka.
Ny shannon-coder-1 dia isaina amin'ny fomba hafa amin'ity endpoint ity: ny fangatahana tsirairay dia iray amin'ny antso Shannon Coder an'ny plan-nao, ary tsy misy tokens tazonina ho azy. Fetra sy balance
Faharoa, mametra ny halavan'ny valiny amin'ireto model ireto izy:
| Model | Inona no ataon'ny max_tokens |
|---|---|
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | Mijanona ny valiny rehefa tonga amin'ny fetra. Avy eo ny stream dia mifarana amin'ny finish_reason length. |
| Model open-weight hosted | Ny soratry ny valiny dia mijanona amin'ny max_tokens. Tsy isaina aminy ny reasoning. Ny sanda latsaky ny 256 dia raisina ho 256. |
Raha tsy misy max_tokens na max_completion_tokens, 4,096 ny sanda. Amin'ny shannon-coder-1 dia 65,536.
Hafatra
Ny hafatra tsirairay dia objet misy role sy content. Ny content dia string, na array misy ampahany rehefa mitondra zavatra mihoatra ny soratra ny hafatra.
| Role | Famaritana | Ampiharin'ny |
|---|---|---|
system | Toromarika ho an'ny model. Apetraho eo am-boalohany. Amin'ny tier Shannon, ny hafatra system voalohany no ampiasaina. | Model open-weight hosted, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
developer | Vakiana ho system. | Model open-weight hosted |
user | Izay angatahanao. Amin'ny tier Shannon dia ny hafatra user farany no prompt ary ny hafatra teo aloha no tantara. | Model rehetra |
assistant | Ny valin'ny model teo aloha. Tazony ny tool_calls-ny rehefa mandefa vokatra tool aorian'izany. | Model rehetra |
tool | Ny vokatry ny tool call: ny tool_call_id dia misy ny id an'ilay antso ary ny content ny vokatra ho string. | Model rehetra |
Amin'ny id ao amin'ny fianakavian'i Shannon 3, apetraho ao amin'ny hafatra user ny toromarika tsy maintsy arahina.
Amin'ny tier Shannon dia mamerina 400 No user message provided ny fangatahana tsy misy soratra user sy tsy misy tools.
Content parts
| Ampahany | Famaritana | Azo ampiasaina amin'ny |
|---|---|---|
{"type": "text", "text": "…"} | Soratra tsotra. | Model rehetra |
{"type": "image_url", "image_url": {"url": "…"}} | Sary, ho URL data: misy votoaty base64 na ho URL http(s). | Fianakavian'i Shannon 3, shannon-1.6-lite, shannon-1.6-pro, ary ny model open-weight hosted izay milaza image input |
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} | Antontan-taratasy (PDF, Word, PowerPoint na Excel), amin'ny base64 na URL. | Fianakavian'i Shannon 3 |
Ny habe, ny fetra ary ny lisitra feno amin'ny endrika dia manana pejy manokana. Sary sy rakitra
Ny objet valiny
| Saha | Karazana | Famaritana |
|---|---|---|
id | string | chatcmpl- arahin'ny tarehintsoratra hexadecimal 32. |
object | string | Foana ny chat.completion. |
created | integer | Ora nanaovana ny valiny, amin'ny segondra Unix. |
model | string | Ny id canonical an'ilay model namaly. Mety hiovaova ny fanoratana amin'ny id nalefanao. |
choices | array | Choice iray tsara foana, miaraka amin'ny index 0. |
choices[0].message.role | string | Foana ny assistant. |
choices[0].message.content | string | null | Ny soratry ny valiny. Miaraka amin'ny tool_calls dia null amin'ny tier Shannon; ny model open-weight hosted dia afaka mandefa soratra eo akaikin'ny antso. |
choices[0].message.reasoning_content | string | null | Ny reasoning nosoratan'ny model alohan'ny valiny, na null raha tsy misy. |
choices[0].message.tool_calls | array | Misy fotsiny rehefa miantso tools ny model. Ny entry tsirairay dia manana id, type function, ary function misy ny name sy ny arguments ho string JSON. |
choices[0].message.annotations | array | Amin'ny fangatahana misy web_search: true ihany izay nahita zavatra ny fikarohany. url_citation iray ho an'ny loharano tsirairay notononin'ny marika ao amin'ny content, miaraka amin'ny url, title, start_index ary end_index (ny toeran'ny marika, isaina amin'ny tarehintsoratra, tsy ampidirina ny farany). |
choices[0].finish_reason | string | Nahoana no nifarana ny valiny. Jereo ny Antony fifaranana. |
usage | object | Ny tokens an'ny fangatahana. Jereo ny Usage. |
sources | array | Amin'ny fangatahana misy web_search: true ihany izay nahita zavatra ny fikarohany: ny vokatra nomena ny model, samy manana index, title ary url. Ny [1] ao amin'ny valiny dia ilay andalana manana index 1. |
Antony fifaranana
| finish_reason | Famaritana |
|---|---|
stop | Vita ny valin'ny model, na nisy niseho ny string stop. |
tool_calls | Miantso tool iray na maromaro ny model. Ampandehano ireo ary alefaso ny vokatra ao anaty hafatra tool. |
length | Notapahina tamin'ny fetra output ny valiny. Ampitaina ao amin'ny stream an'ny shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 ary ny fianakavian'i Shannon 3. |
Ny valiny tsy streamed dia milaza stop na tool_calls.
Usage
| Saha | Karazana | Famaritana | Azo ampiasaina amin'ny |
|---|---|---|---|
usage.prompt_tokens | integer | Input tokens. | Model rehetra |
usage.completion_tokens | integer | Output tokens: reasoning, valiny ary tool calls miaraka. | Model rehetra |
usage.total_tokens | integer | prompt_tokens ampiana completion_tokens. | Model rehetra |
usage.prompt_tokens_details.cached_tokens | integer | Ny ampahany amin'ny prompt_tokens novakina avy ao amin'ny prompt cache. | Model open-weight hosted |
usage.completion_tokens_details.reasoning_tokens | integer | Ny ampahany amin'ny completion_tokens lany tamin'ny reasoning. | Model open-weight hosted |
Amin'ny model open-weight hosted, ny prompt_tokens dia ny hafatra sy famaritana tool nataonao nisaina tamin'ny tokenizer an'ny model, ampiana ny tokens an'ny sary rehetra. Ny endpoint fanisana tokens dia mamerina isa mitovy alohan'ny handefasanao. Fanisana token
Amin'ny tier Shannon, ny prompt_tokens dia manisa izay rehetra novakin'ny model hanoratana ny valiny, ka lehibe noho ny soratry ny hafatra nataonao ihany izy.
Streaming
Rehefa apetraka true ny stream dia tonga ho events chat.completion.chunk ny valiny ary mifarana amin'ny data: [DONE]. Ny chunk farany alohany dia mitondra finish_reason sy usage; tsy ilaina ny stream_options. Ny endrika chunk, ny andalana keep-alive ary ny hadisoana ao anaty stream dia manana pejy manokana. Fandefasana mivantana
Hadisoana
Ny hadisoana dia objet JSON misy mpikambana error. Mandeha araka ity filaharana ity ny fanamarinana: API key, vatan'ny fangatahana, model id, avy eo balance. Ny tabilao dia mampiseho izay averin'ity endpoint ity matetika indrindra. Ny lisitra feno, miaraka amin'izay tokony hoeranina, dia manana pejy manokana. Fitantanana hadisoana
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: no-such-model"
}
} | Status | Karazana | Hafatra | Rehefa |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid API key | Tsy nisy API key nalefa, na tsy fantatra na voafafa ny key. |
400 | invalid_request_error | unknown model: <id> | Tsy id navoaka ny model. |
400 | invalid_request_error | No user message provided | Tier Shannon: tsy misy soratra user ny fangatahana ary tsy misy tools. |
400 | invalid_request_error | <id> does not accept image input | Nisy ampahany sary nalefa tamin'ny model open-weight hosted tsy manana image input. |
400 | invalid_request_error | <id> does not accept response_format | Nisy response_format nalefa tamin'ny model open-weight hosted tsy manana structured output. |
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | Ny reasoning_effort dia misy sanda ivelan'ny lisitra. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | Tsy misy ny messages, na diso ny karazana JSON an'ny saha iray. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | Lehibe noho ny sisa amin'ny balance-nao ny max_tokens. |
429 | rate_limit_error | Too many requests. Retry in <n>s. | Flood protection: mihoatra ny 120 ny fangatahana tao anatin'ny iray minitra tamin'ny kaonty-nao. |
500 | server_error | The model backend failed to answer. Please retry. | Tsy namoaka valiny ny model. Alefaso indray ny fangatahana. |
502 | api_error | The model backend failed to answer. Please retry. | Mitovy, amin'ny fianakavian'i Shannon 3 sy ny model open-weight hosted. |