Chat Completions
POST /v1/chat/completions pieņem sarunu un atgriež modeļa nākamo ziņojumu OpenAI Chat Completions formātā. Izmantojiet to no jebkura OpenAI SDK vai pa tiešo ar HTTP; šī lapa ir uzziņa lauks pa laukam.
POST https://api.shannon-ai.com/v1/chat/completions
Mazākais pieprasījums ir modeļa id un viens lietotāja ziņojums.
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."}]
}' Atbilde ir viens JSON objekts:
{
"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
}
} Galvenes
Pieprasījuma galvenes
| Galvene | Vērtība | Apraksts |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | Jūsu API atslēga. Tās vietā katrā galapunktā tiek pieņemts arī x-api-key: YOUR_API_KEY. |
Content-Type | application/json | Obligāta. Jebkura cita vērtība atgriež 415. |
x-request-id | Neobligāta. Jūsu pašu pieprasījuma id. Tas atbildē atgriežas nemainīts. |
Atbildes galvenes
| Galvene | Apraksts |
|---|---|
x-request-id | Katrā atbildē, ieskaitot kļūdas un straumes: jūsu nosūtītā vērtība vai 12 heksadecimālas rakstzīmes, ja neko nesūtījāt. Norādiet to, ziņojot par problēmu. |
content-type | application/json vai text/event-stream, ja stream ir true. |
Pieprasījuma lauki
Obligāts ir tikai messages. Kolonna Piemēro nosauc modeļus, kuros lauks maina atbildi. Hostētie atvērto svaru modeļi ir divpadsmit id no modeļu saraksta; Shannon 3 saime ir shannon-3, shannon-3-pro, shannon-3.1 un shannon-3.1-pro. Modeļi un cenas
| Lauks | Tips | Noklusējums | Apraksts | Piemēro |
|---|---|---|---|---|
model | string | shannon-1.6-lite | Modelis, kas atbild: id no modeļu saraksta. Sūtiet to ar katru pieprasījumu. Salīdzināšana nav reģistrjutīga. Id, kas nav publicēts, atgriež 400 unknown model. | Visi modeļi |
messages | array | Obligāts. Saruna, vecākais ziņojums pirmais. Skatiet tālāk sadaļu Ziņojumi. | Visi modeļi | |
stream | boolean | false | true nosūta atbildi kā server-sent events, kamēr tā tiek rakstīta. | Visi modeļi |
max_tokens | integer | 4096 | Atbildes augšējā robeža tokenos. Vērtība ārpus diapazona no 1 līdz 65,536 tiek pārvietota šajā diapazonā. Tas ir arī apjoms, ko pieprasījuma izpildes laikā rezervē no jūsu atlikuma. Skatiet tālāk sadaļu Izvades garums. | Hostētie atvērto svaru modeļi, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 |
max_completion_tokens | integer | Tas pats, kas max_tokens. Ja tiek nosūtīti abi, tiek izmantots max_tokens. | Hostētie atvērto svaru modeļi, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
temperature | number | Paraugu ņemšanas temperatūra. Hostētajiem atvērto svaru modeļiem noklusējums ir 1, un vērtības tiek turētas starp 0 un 2. | Hostētie atvērto svaru modeļi, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
top_p | number | 0.95 | Kodola paraugu ņemšana (nucleus sampling). Vērtības tiek turētas starp 0 un 1. | Hostētie atvērto svaru modeļi |
seed | integer | Paraugu ņēmēja sākumvērtība (seed), jebkurš vesels skaitlis. Bez tās sākumvērtība tiek atvasināta no modeļa un sarunas, tāpēc divreiz nosūtīts viens un tas pats pieprasījums izmanto vienu un to pašu sākumvērtību. | Hostētie atvērto svaru modeļi | |
stop | string | array | Virkne vai virkņu masīvs. Tiek izmantotas līdz 4. Atbilde beidzas pirms pirmās, kas parādās; pats apturēšanas teksts netiek atgriezts. | Hostētie atvērto svaru modeļi | |
reasoning_effort | string | high | Cik daudz modelis spriež pirms atbildes: off, low, medium vai high. none un minimal nozīmē off, default nozīmē medium, max nozīmē high. Jebkura cita vērtība atgriež 400. | Hostētie atvērto svaru modeļi |
reasoning | object | Tas pats iestatījums objekta formā: {"effort": "low"}. Ja tiek nosūtīti abi, tiek izmantots reasoning_effort. | Hostētie atvērto svaru modeļi | |
tools | array | Funkcijas, ko modelis drīkst izsaukt, katra kā {"type": "function", "function": {"name", "description", "parameters"}}. Modeļa izsaukumi atgriežas laukā tool_calls; jūsu kods tos izpilda. | Visi modeļi | |
tool_choice | string | object | auto | "auto" ļauj modelim izlemt. "required" liek tam izsaukt rīku. {"type": "function", "function": {"name": "…"}} liek tam izsaukt šo rīku. | Hostētie atvērto svaru modeļi |
response_format | object | {"type": "json_object"} JSON atbildei vai {"type": "json_schema", "json_schema": {…}} atbildei, kas atbilst jūsu shēmai. | Visi Shannon līmeņi; hostētie atvērto svaru modeļi, kā norādīts katram id | |
web_search | boolean | false | true ļauj modelim pirms atbildes meklēt tīmeklī. | shannon-1.6-*, shannon-2-*, Shannon 3 saime |
Citi OpenAI lauki, piemēram, n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store un prompt_cache_key, tiek pieņemti, lai esošais klienta kods darbotos nemainīts. Tie atbildi nemaina: izvēle (choice) vienmēr ir viena, un straume vienmēr beidzas ar lietojuma datiem.
Lauks ar nepareizu JSON tipu, piemēram, "max_tokens": "100", atgriež 422. Tāpat dara pieprasījums bez messages.
Rīkiem, strukturētai izvadei, spriešanai un tīmekļa meklēšanai katram ir sava lapa: Funkciju izsaukšana, Strukturēti izvadi, Spriešanas apjoms, Tīmekļa meklēšana.
Pieprasījums ar opcijām
Šis pieprasījums iestata sistēmas ziņojumu, paraugu ņemšanas laukus un spriešanas apjomu. Tas izmanto hostētu atvērto svaru modeli, kas piemēro visu minēto.
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"
}' Atbildei ir tāda pati forma kā iepriekš. Hostētajiem atvērto svaru modeļiem tās usage pievieno divas detaļas: no keša nolasītos uzvednes tokenus un spriešanai iztērētos tokenus.
{
"usage": {
"prompt_tokens": 31,
"completion_tokens": 62,
"total_tokens": 93,
"prompt_tokens_details": {
"cached_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 21
}
}
} Izvades garums
max_tokens dara divas lietas. Pirmkārt, tas ir tokenu skaits, ko pieprasījuma sākumā rezervē no jūsu atlikuma. Kad atbilde ir pabeigta, šis apjoms tiek aizstāts ar pieprasījuma izmantotajiem tokeniem. Ja max_tokens ir lielāks par jūsu atlikuma atlikušo daļu, pieprasījums atgriež 429 Quota exceeded, pat ja pati atbilde būtu ietilpusi. Sūtiet zemāku max_tokens, lai rezervētu mazāk.
shannon-coder-1 šajā galapunktā tiek skaitīts citādi: katrs pieprasījums ir viens jūsu plāna Shannon Coder izsaukums, un tam netiek rezervēti tokeni. Ierobežojumi un atlikums
Otrkārt, tas ierobežo atbildes garumu šiem modeļiem:
| Modeļi | Ko dara max_tokens |
|---|---|
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | Atbilde apstājas, kad sasniedz ierobežojumu. Straume tad beidzas ar finish_reason length. |
| Hostētie atvērto svaru modeļi | Atbildes teksts apstājas pie max_tokens. Spriešana pret to netiek skaitīta. Vērtības zem 256 darbojas kā 256. |
Bez max_tokens vai max_completion_tokens vērtība ir 4,096. Modelim shannon-coder-1 tā ir 65,536.
Ziņojumi
Katrs ziņojums ir objekts ar role un content. content ir virkne vai daļu masīvs, ja ziņojums nes ne tikai tekstu.
| Loma | Apraksts | Piemēro |
|---|---|---|
system | Norādījumi modelim. Ievietojiet to pirmo. Shannon līmeņos tiek izmantots pirmais system ziņojums. | Hostētie atvērto svaru modeļi, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
developer | Tiek lasīts kā system. | Hostētie atvērto svaru modeļi |
user | Ko jūs jautājat. Shannon līmeņos pēdējais user ziņojums ir uzvedne, bet pirms tā esošie ziņojumi ir vēsture. | Visi modeļi |
assistant | Modeļa iepriekšējās atbildes. Saglabājiet tā tool_calls, kad aiz tā sūtāt rīka rezultātu. | Visi modeļi |
tool | Rīka izsaukuma rezultāts: tool_call_id satur izsaukuma id un content rezultātu kā virkni. | Visi modeļi |
Ar Shannon 3 saimes id norādījumus, kam jāizpildās, ievietojiet user ziņojumā.
Shannon līmeņos pieprasījums bez lietotāja teksta un bez tools atgriež 400 No user message provided.
Satura daļas
| Daļa | Apraksts | Pieejams |
|---|---|---|
{"type": "text", "text": "…"} | Vienkāršs teksts. | Visi modeļi |
{"type": "image_url", "image_url": {"url": "…"}} | Attēls kā data: URL ar base64 saturu vai kā http(s) URL. | Shannon 3 saime, shannon-1.6-lite, shannon-1.6-pro un hostētie atvērto svaru modeļi, kuriem norādīta attēlu ievade |
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} | Dokuments (PDF, Word, PowerPoint vai Excel), kā base64 vai pēc URL. | Shannon 3 saime |
Izmēriem, ierobežojumiem un pilnam formu sarakstam ir sava lapa. Attēli un faili
Atbildes objekts
| Lauks | Tips | Apraksts |
|---|---|---|
id | string | chatcmpl-, kam seko 32 heksadecimālas rakstzīmes. |
object | string | Vienmēr chat.completion. |
created | integer | Atbildes laiks Unix sekundēs. |
model | string | Modeļa, kas atbildēja, kanoniskais id. Pēc rakstības tas var atšķirties no id, ko nosūtījāt. |
choices | array | Vienmēr tieši viena izvēle (choice) ar index 0. |
choices[0].message.role | string | Vienmēr assistant. |
choices[0].message.content | string | null | Atbildes teksts. Ar tool_calls Shannon līmeņos tas ir null; hostētie atvērto svaru modeļi līdzās izsaukumiem var sūtīt tekstu. |
choices[0].message.reasoning_content | string | null | Spriešana, ko modelis uzrakstīja pirms atbildes, vai null, ja tās nav. |
choices[0].message.tool_calls | array | Ir tikai tad, kad modelis izsauc rīkus. Katram ierakstam ir id, type function un function ar name un arguments kā JSON virkni. |
choices[0].message.annotations | array | Tikai pieprasījumam ar web_search: true, kura meklēšana kaut ko atrada. Viens url_citation katram avotam, ko nosauc atzīme laukā content, ar url, title, start_index un end_index (atzīmes pozīcija, skaitīta rakstzīmēs, beigu pozīcija netiek ieskaitīta). |
choices[0].finish_reason | string | Kāpēc atbilde beidzās. Skatiet Beigu iemesli. |
usage | object | Pieprasījuma tokeni. Skatiet Lietojums. |
sources | array | Tikai pieprasījumam ar web_search: true, kura meklēšana kaut ko atrada: rezultāti, kas doti modelim, katrs ar index, title un url. [1] atbildē ir ieraksts ar index 1. |
Beigu iemesli
| finish_reason | Apraksts |
|---|---|
stop | Modelis pabeidza atbildi, vai parādījās stop virkne. |
tool_calls | Modelis izsauc vienu vai vairākus rīkus. Izpildiet tos un nosūtiet rezultātus tool ziņojumos. |
length | Atbilde tika pārtraukta pie izvades ierobežojuma. Tiek norādīts modeļu shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 un Shannon 3 saimes straumēs. |
Atbilde, kas netiek straumēta, norāda stop vai tool_calls.
Lietojums
| Lauks | Tips | Apraksts | Pieejams |
|---|---|---|---|
usage.prompt_tokens | integer | Ievades tokeni. | Visi modeļi |
usage.completion_tokens | integer | Izvades tokeni: spriešana, atbilde un rīku izsaukumi kopā. | Visi modeļi |
usage.total_tokens | integer | prompt_tokens plus completion_tokens. | Visi modeļi |
usage.prompt_tokens_details.cached_tokens | integer | prompt_tokens daļa, kas nolasīta no uzvednes keša. | Hostētie atvērto svaru modeļi |
usage.completion_tokens_details.reasoning_tokens | integer | completion_tokens daļa, kas iztērēta spriešanai. | Hostētie atvērto svaru modeļi |
Hostētajiem atvērto svaru modeļiem prompt_tokens ir jūsu ziņojumi un rīku definīcijas, saskaitītas ar paša modeļa tokenizatoru, plus jebkuru attēlu tokeni. Tokenu skaitīšanas galapunkti atgriež to pašu skaitli, pirms jūs sūtāt. Tokenu skaitīšana
Shannon līmeņos prompt_tokens skaita visu, ko modelis nolasīja, lai uzrakstītu atbildi, tāpēc tas ir lielāks par tikai jūsu ziņojumu tekstu.
Straumēšana
Ar stream, kas iestatīts uz true, atbilde ierodas kā chat.completion.chunk notikumi un beidzas ar data: [DONE]. Pēdējā daļa pirms tā nes finish_reason un usage; stream_options nav vajadzīgas. Daļu formām, keep-alive rindām un kļūdām straumes iekšienē ir sava lapa. Straumēšana
Kļūdas
Kļūda ir JSON objekts ar error locekli. Pārbaudes notiek šādā secībā: API atslēga, pieprasījuma pamatteksts, modeļa id, tad atlikums. Tabulā ir uzskaitīts tas, ko šis galapunkts atgriež visbiežāk. Pilns saraksts ar norādēm, ko mēģināt atkārtot, ir atsevišķā lapā. Kļūdu apstrāde
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: no-such-model"
}
} | Statuss | Veids | Ziņojums | Kad |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid API key | API atslēga netika nosūtīta, vai atslēga nav zināma vai ir atsaukta. |
400 | invalid_request_error | unknown model: <id> | model nav publicēts id. |
400 | invalid_request_error | No user message provided | Shannon līmeņi: pieprasījumā nav lietotāja teksta un nav tools. |
400 | invalid_request_error | <id> does not accept image input | Attēla daļa tika nosūtīta hostētam atvērto svaru modelim bez attēlu ievades. |
400 | invalid_request_error | <id> does not accept response_format | response_format tika nosūtīts hostētam atvērto svaru modelim bez strukturētas izvades. |
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | reasoning_effort satur vērtību, kas nav sarakstā. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | messages trūkst, vai laukam ir nepareizs JSON tips. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | max_tokens ir lielāks par jūsu atlikuma atlikušo daļu. |
429 | rate_limit_error | Too many requests. Retry in <n>s. | Flood protection: vairāk nekā 120 pieprasījumu minūtē jūsu kontā. |
500 | server_error | The model backend failed to answer. Please retry. | Modelis neizveidoja atbildi. Nosūtiet pieprasījumu vēlreiz. |
502 | api_error | The model backend failed to answer. Please retry. | Tas pats Shannon 3 saimei un hostētajiem atvērto svaru modeļiem. |