Mine sisu juurde
Chat Completions

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)

Vastus on üks JSON-objekt:

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
  }
}

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)

Vastus on sama kujuga nagu ülal. Hostitud avatud kaaludega mudelitel lisab selle usage kaks üksikasja: vahemälust loetud prompti tokenid ja arutlusele kulutatud tokenid.

200 JSON
{
  "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

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Olek Tüüp Teade Millal
401 authentication_error Missing authentication
Invalid 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.