Chat Completions
POST /v1/chat/completions võtab vestluse ja tagastab mudeli järgmise sõnumi OpenAI Chat Completions formaadis. Kasuta seda mis tahes OpenAI SDK-st või puhta HTTP kaudu; see leht on väljade kaupa viide.
POST https://api.shannon-ai.com/v1/chat/completions
Väikseim päring on mudeli id ja üks kasutaja sõnum.
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."}]
}' Vastus on üks JSON-objekt:
{
"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
}
} Päised
Päringu päised
| Päis | Väärtus | Kirjeldus |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | Sinu API võti. Selle asemel võetakse igas lõpp-punktis vastu x-api-key: YOUR_API_KEY. |
Content-Type | application/json | Nõutav. Iga muu väärtus annab 415. |
x-request-id | Valikuline. Sinu enda id päringu jaoks. See tuleb vastusel muutmata kujul tagasi. |
Vastuse päised
| Päis | Kirjeldus |
|---|---|
x-request-id | Igal vastusel, ka vigadel ja voogudel: väärtus, mille saatsid, või 12 kuueteistkümnendsüsteemi märki, kui sa midagi ei saatnud. Tsiteeri seda, kui teatad probleemist. |
content-type | application/json või text/event-stream, kui stream on true. |
Päringu väljad
Nõutav on ainult messages. Veerg Rakendavad nimetab mudelid, millel väli vastust muudab. Hostitud avatud kaaludega mudelid on mudelite loendi kaksteist id-d; Shannon 3 perekond on shannon-3, shannon-3-pro, shannon-3.1 ja shannon-3.1-pro. Mudelid ja hinnad
| Väli | Tüüp | Vaikeväärtus | Kirjeldus | Rakendavad |
|---|---|---|---|---|
model | string | shannon-1.6-lite | Mudel, mis vastab: id mudelite loendist. Saada see iga päringuga. Võrdlemisel ei ole suur- ja väiketähtedel vahet. Avaldamata id annab 400 unknown model. | Kõik mudelid |
messages | array | Nõutav. Vestlus, vanim sõnum esimesena. Vaata allpool jaotist Sõnumid. | Kõik mudelid | |
stream | boolean | false | true saadab vastuse server-sent events kujul, kuni seda kirjutatakse. | Kõik mudelid |
max_tokens | integer | 4096 | Vastuse ülempiir tokenites. Vahemikust 1 kuni 65,536 väljas olev väärtus viiakse sellesse vahemikku. See on ka summa, mis päringu töötamise ajal sinu saldost kõrvale pannakse. Vaata allpool jaotist Väljundi pikkus. | Hostitud avatud kaaludega mudelid, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 |
max_completion_tokens | integer | Sama mis max_tokens. Kui saadetakse mõlemad, kasutatakse max_tokens. | Hostitud avatud kaaludega mudelid, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
temperature | number | Valimi temperatuur. Hostitud avatud kaaludega mudelitel on vaikeväärtus 1 ja väärtusi hoitakse vahemikus 0 kuni 2. | Hostitud avatud kaaludega mudelid, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
top_p | number | 0.95 | Nucleus-valim. Väärtusi hoitakse vahemikus 0 kuni 1. | Hostitud avatud kaaludega mudelid |
seed | integer | Valimi seeme, mis tahes täisarv. Ilma selleta tuletatakse seeme mudelist ja vestlusest, nii et kaks korda saadetud sama päring kasutab sama seemet. | Hostitud avatud kaaludega mudelid | |
stop | string | array | String või stringide massiiv. Kasutatakse kuni 4. Vastus lõpeb enne esimest, mis ilmub; stopp-teksti ennast ei tagastata. | Hostitud avatud kaaludega mudelid | |
reasoning_effort | string | high | Kui palju mudel enne vastamist arutleb: off, low, medium või high. none ja minimal tähendavad off, default tähendab medium, max tähendab high. Iga muu väärtus annab 400. | Hostitud avatud kaaludega mudelid |
reasoning | object | Sama säte objektina: {"effort": "low"}. Kui saadetakse mõlemad, kasutatakse reasoning_effort. | Hostitud avatud kaaludega mudelid | |
tools | array | Funktsioonid, mida mudel võib kutsuda, igaüks kujul {"type": "function", "function": {"name", "description", "parameters"}}. Mudeli kutsed tulevad tagasi väljal tool_calls; sinu kood käivitab need. | Kõik mudelid | |
tool_choice | string | object | auto | "auto" laseb mudelil otsustada. "required" paneb ta tööriista kutsuma. {"type": "function", "function": {"name": "…"}} paneb ta kutsuma just seda tööriista. | Hostitud avatud kaaludega mudelid |
response_format | object | {"type": "json_object"} JSON-vastuse jaoks või {"type": "json_schema", "json_schema": {…}} vastuse jaoks, mis järgib sinu skeemi. | Kõik Shannoni tasemed; hostitud avatud kaaludega mudelid id kaupa loetletud kujul | |
web_search | boolean | false | true laseb mudelil enne vastamist veebist otsida. | shannon-1.6-*, shannon-2-*, Shannon 3 perekond |
Muud OpenAI väljad, näiteks n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store ja prompt_cache_key, võetakse vastu, et olemasolev kliendikood töötaks muutmata kujul. Need ei muuda vastust: valik on alati üks ja voog lõpeb alati kasutusandmetega.
Vale JSON-tüübiga väli, näiteks "max_tokens": "100", annab 422. Sama annab päring ilma messages.
Tööriistadel, struktureeritud väljundil, arutlusel ja veebiotsingul on igaühel oma leht: Funktsioonikutse, Struktureeritud väljundid, Reasoning-pingutus, Veebiotsing.
Päring valikutega
See päring määrab süsteemisõnumi, valimisväljad ja arutluse pingutuse. Kasutusel on hostitud avatud kaaludega mudel, mis rakendab neid kõiki.
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"
}' Vastus on sama kujuga nagu ülal. Hostitud avatud kaaludega mudelitel lisab selle usage kaks üksikasja: vahemälust loetud prompti tokenid ja arutlusele kulutatud tokenid.
{
"usage": {
"prompt_tokens": 31,
"completion_tokens": 62,
"total_tokens": 93,
"prompt_tokens_details": {
"cached_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 21
}
}
} Väljundi pikkus
max_tokens teeb kaks asja. Esiteks on see tokenite arv, mis päringu alguses sinu saldost kõrvale pannakse. Kui vastus on valmis, asendatakse see summa päringu tegelikult kasutatud tokenitega. Kui max_tokens on suurem kui sinu saldo jääk, annab päring 429 Quota exceeded isegi siis, kui vastus ise oleks ära mahtunud. Saada väiksem max_tokens, et vähem kõrvale panna.
shannon-coder-1 loetakse selles lõpp-punktis teisiti: iga päring on üks sinu paketi Shannon Coderi kõne ja selle jaoks ei panda tokeneid kõrvale. Piirangud ja saldo
Teiseks piirab see vastuse pikkust nendel mudelitel:
| Mudelid | Mida max_tokens teeb |
|---|---|
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | Vastus peatub, kui see jõuab piirini. Voog lõpeb siis finish_reason length-iga. |
| Hostitud avatud kaaludega mudelid | Vastuse tekst peatub väärtusel max_tokens. Arutlust sellesse ei arvestata. Alla 256 väärtused toimivad kui 256. |
Ilma max_tokens või max_completion_tokens on väärtus 4,096. Mudelil shannon-coder-1 on see 65,536.
Sõnumid
Iga sõnum on objekt koos väljadega role ja content. content on string või osade massiiv, kui sõnum kannab midagi enamat kui teksti.
| Roll | Kirjeldus | Rakendavad |
|---|---|---|
system | Juhised mudelile. Pane see esimeseks. Shannoni tasemetel kasutatakse esimest system-sõnumit. | Hostitud avatud kaaludega mudelid, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
developer | Loetakse kui system. | Hostitud avatud kaaludega mudelid |
user | See, mida sa küsid. Shannoni tasemetel on viimane user-sõnum prompt ja sellele eelnevad sõnumid on ajalugu. | Kõik mudelid |
assistant | Mudeli varasemad vastused. Säilita selle tool_calls, kui saadad pärast seda tööriista tulemuse. | Kõik mudelid |
tool | Tööriistakutse tulemus: tool_call_id sisaldab kutse id-d ja content tulemust stringina. | Kõik mudelid |
Shannon 3 perekonna id puhul pane juhised, mis peavad kehtima, user-sõnumisse.
Shannoni tasemetel annab päring ilma kasutaja tekstita ja ilma tools vastuse 400 No user message provided.
Sisuosad
| Osa | Kirjeldus | Saadaval |
|---|---|---|
{"type": "text", "text": "…"} | Lihttekst. | Kõik mudelid |
{"type": "image_url", "image_url": {"url": "…"}} | Pilt, data: URL-ina base64-sisuga või http(s) URL-ina. | Shannon 3 perekond, shannon-1.6-lite, shannon-1.6-pro ja hostitud avatud kaaludega mudelid, mis loetlevad pildisisendi |
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} | Dokument (PDF, Word, PowerPoint või Excel), base64 või URL-ina. | Shannon 3 perekond |
Suurustel, piirangutel ja kõigi vormide täielikul loendil on oma leht. Pildid ja failid
Vastuse objekt
| Väli | Tüüp | Kirjeldus |
|---|---|---|
id | string | chatcmpl-, millele järgneb 32 kuueteistkümnendsüsteemi märki. |
object | string | Alati chat.completion. |
created | integer | Vastuse aeg Unix-sekundites. |
model | string | Vastanud mudeli kanooniline id. See võib kirjapildilt erineda id-st, mille saatsid. |
choices | array | Alati täpselt üks valik, mille index on 0. |
choices[0].message.role | string | Alati assistant. |
choices[0].message.content | string | null | Vastuse tekst. Koos tool_calls on see Shannoni tasemetel null; hostitud avatud kaaludega mudelid võivad saata teksti kutsete kõrval. |
choices[0].message.reasoning_content | string | null | Arutlus, mille mudel enne vastust kirjutas, või null, kui seda ei ole. |
choices[0].message.tool_calls | array | Olemas ainult siis, kui mudel kutsub tööriistu. Igal kirjel on id, type function ning function koos name ja arguments JSON-stringina. |
choices[0].message.annotations | array | Ainult päringul, milles on web_search: true ja mille otsing leidis midagi. Üks url_citation iga allika kohta, mida märgend väljas content nimetab, väljadega url, title, start_index ja end_index (märgendi asukoht märkides loetuna, lõppu ei arvestata). |
choices[0].finish_reason | string | Miks vastus lõppes. Vaata Lõpetamise põhjused. |
usage | object | Päringu tokenid. Vaata Kasutus. |
sources | array | Ainult päringul, milles on web_search: true ja mille otsing leidis midagi: tulemused, mille mudel sai, igaühel index, title ja url. [1] vastuses on kirje, mille index on 1. |
Lõpetamise põhjused
| finish_reason | Kirjeldus |
|---|---|
stop | Mudel lõpetas vastuse või ilmus üks stop string. |
tool_calls | Mudel kutsub ühte või mitut tööriista. Käivita need ja saada tulemused tool-sõnumites. |
length | Vastus katkestati väljundi piirangu juures. Teatatakse mudelite shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 ja Shannon 3 perekonna voogudes. |
Voogedastamata vastus teatab stop või tool_calls.
Kasutus
| Väli | Tüüp | Kirjeldus | Saadaval |
|---|---|---|---|
usage.prompt_tokens | integer | Sisendtokenid. | Kõik mudelid |
usage.completion_tokens | integer | Väljundtokenid: arutlus, vastus ja tööriistakutsed kokku. | Kõik mudelid |
usage.total_tokens | integer | prompt_tokens pluss completion_tokens. | Kõik mudelid |
usage.prompt_tokens_details.cached_tokens | integer | prompt_tokens osa, mis loeti prompti vahemälust. | Hostitud avatud kaaludega mudelid |
usage.completion_tokens_details.reasoning_tokens | integer | completion_tokens osa, mis kulus arutlusele. | Hostitud avatud kaaludega mudelid |
Hostitud avatud kaaludega mudelitel on prompt_tokens sinu sõnumid ja tööriistade definitsioonid, loetud mudeli enda tokenizeriga, pluss piltide tokenid. Tokenite lugemise lõpp-punktid tagastavad enne saatmist sama arvu. Tokenite lugemine
Shannoni tasemetel loeb prompt_tokens kõike, mida mudel vastuse kirjutamiseks luges, seega on see suurem kui ainult sinu sõnumite tekst.
Voogedastus
Kui stream on true, saabub vastus chat.completion.chunk sündmustena ja lõpeb data: [DONE]. Sellele eelnev viimane chunk kannab finish_reason ja usage; stream_options ei ole vaja. Chunkide kujudel, keep-alive ridadel ja voosisestel vigadel on oma leht. Voogedastus
Vead
Viga on JSON-objekt koos liikmega error. Kontrollid käivad selles järjekorras: API võti, päringu sisu, mudeli id, seejärel saldo. Tabel loetleb, mida see lõpp-punkt kõige sagedamini tagastab. Täielik loend koos sellega, mida korrata, on oma lehel. Vigade käsitlus
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: no-such-model"
}
} | Olek | Tüüp | Teade | Millal |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid API key | API võtit ei saadetud või võti on tundmatu või tühistatud. |
400 | invalid_request_error | unknown model: <id> | model ei ole avaldatud id. |
400 | invalid_request_error | No user message provided | Shannoni tasemed: päringul ei ole kasutaja teksti ega tools. |
400 | invalid_request_error | <id> does not accept image input | Pildiosa saadeti hostitud avatud kaaludega mudelile, millel pole pildisisendit. |
400 | invalid_request_error | <id> does not accept response_format | response_format saadeti hostitud avatud kaaludega mudelile, millel ei ole struktureeritud väljundit. |
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | reasoning_effort sisaldab väärtust, mis ei ole loendis. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | messages puudub või väljal on vale JSON-tüüp. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | max_tokens on suurem kui sinu saldo jääk. |
429 | rate_limit_error | Too many requests. Retry in <n>s. | Kiirusepiirang: üle 120 päringu minutis sinu kontol. |
500 | server_error | The model backend failed to answer. Please retry. | Mudel ei andnud vastust. Saada päring uuesti. |
502 | api_error | The model backend failed to answer. Please retry. | Sama Shannon 3 perekonnal ja hostitud avatud kaaludega mudelitel. |