Siirry sisältöön
Chat Completions

Chat Completions

POST /v1/chat/completions ottaa keskustelun ja palauttaa mallin seuraavan viestin OpenAI Chat Completions -muodossa. Käytä sitä miltä tahansa OpenAI SDK:lta tai suoraan HTTP:llä; tämä sivu on kenttäkohtainen viite.

POST https://api.shannon-ai.com/v1/chat/completions

Pienin pyyntö on mallin id ja yksi käyttäjän viesti.

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)

Vastaus on yksi JSON-objekti:

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

Otsakkeet

Pyynnön otsakkeet

Otsake Arvo Kuvaus
Authorization Bearer YOUR_API_KEY API-avaimesi. x-api-key: YOUR_API_KEY hyväksytään sen sijasta jokaisessa päätepisteessä.
Content-Type application/json Pakollinen. Mikä tahansa muu arvo palauttaa 415.
x-request-id Valinnainen. Oma id pyynnölle. Se palautuu vastauksessa muuttumattomana.

Vastauksen otsakkeet

Otsake Kuvaus
x-request-id Jokaisessa vastauksessa, myös virheissä ja virroissa: lähettämäsi arvo tai 12 heksadesimaalimerkkiä, jos et lähettänyt mitään. Mainitse se ongelmaa ilmoittaessasi.
content-type application/json tai text/event-stream, kun stream on true.

Pyynnön kentät

Vain messages on pakollinen. Käyttävät mallit -sarake nimeää mallit, joilla kenttä muuttaa vastausta. Hostatut avoimen painon mallit ovat mallilistan kaksitoista id:tä; Shannon 3 -perhe on shannon-3, shannon-3-pro, shannon-3.1 ja shannon-3.1-pro. Mallit ja hinnoittelu

Kenttä Tyyppi Oletus Kuvaus Käyttävät mallit
model string shannon-1.6-lite Vastaava malli: id mallilistasta. Lähetä se jokaisen pyynnön mukana. Kirjainkoolla ei ole merkitystä. Julkaisematon id palauttaa 400 unknown model. Kaikki mallit
messages array Pakollinen. Keskustelu vanhin viesti ensin. Katso alta Viestit. Kaikki mallit
stream boolean false true lähettää vastauksen server-sent events -tapahtumina sitä kirjoitettaessa. Kaikki mallit
max_tokens integer 4096 Vastauksen yläraja tokeneina. Alueen 1–65,536 ulkopuolinen arvo siirretään tälle alueelle. Se on myös määrä, joka varataan saldostasi pyynnön ajaksi. Katso alta Tulosteen pituus. Hostatut avoimen painon mallit, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer Sama kuin max_tokens. Kun molemmat lähetetään, käytetään max_tokens-arvoa. Hostatut avoimen painon mallit, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Näytteenoton lämpötila. Hostatuilla avoimen painon malleilla oletus on 1 ja arvot pidetään välillä 0–2. Hostatut avoimen painon mallit, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 Nucleus-näytteenotto. Arvot pidetään välillä 0–1. Hostatut avoimen painon mallit
seed integer Näytteistäjän siemen, mikä tahansa kokonaisluku. Ilman sitä siemen johdetaan mallista ja keskustelusta, joten kaksi kertaa lähetetty sama pyyntö käyttää samaa siementä. Hostatut avoimen painon mallit
stop string | array Merkkijono tai merkkijonojen taulukko. Käytetään enintään 4. Vastaus päättyy ennen ensimmäistä niistä, joka esiintyy; pysäytystekstiä itseään ei palauteta. Hostatut avoimen painon mallit
reasoning_effort string high Kuinka paljon malli päättelee ennen vastaamista: off, low, medium tai high. none ja minimal tarkoittavat off, default tarkoittaa medium ja max tarkoittaa high. Mikä tahansa muu arvo palauttaa 400. Hostatut avoimen painon mallit
reasoning object Sama asetus objektimuodossa: {"effort": "low"}. Kun molemmat lähetetään, käytetään reasoning_effort-arvoa. Hostatut avoimen painon mallit
tools array Funktiot, joita malli saa kutsua, kukin muodossa {"type": "function", "function": {"name", "description", "parameters"}}. Mallin kutsut palaavat kentässä tool_calls; koodisi suorittaa ne. Kaikki mallit
tool_choice string | object auto "auto" antaa mallin päättää. "required" pakottaa sen kutsumaan työkalua. {"type": "function", "function": {"name": "…"}} pakottaa sen kutsumaan kyseistä työkalua. Hostatut avoimen painon mallit
response_format object {"type": "json_object"} JSON-vastaukselle tai {"type": "json_schema", "json_schema": {…}} skeemasi mukaiselle vastaukselle. Kaikki Shannon-tasot; hostatut avoimen painon mallit id:kohtaisen listauksen mukaan
web_search boolean false true antaa mallin hakea verkosta ennen vastaamista. shannon-1.6-*, shannon-2-*, Shannon 3 -perhe

Muut OpenAI-kentät, kuten n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store ja prompt_cache_key, hyväksytään, jotta olemassa oleva asiakaskoodi toimii muuttumattomana. Ne eivät muuta vastausta: vaihtoehtoja on aina yksi, ja virta päättyy aina käyttötietoihin.

Kenttä, jonka JSON-tyyppi on väärä, esimerkiksi "max_tokens": "100", palauttaa 422. Samoin pyyntö ilman messages-kenttää.

Työkaluilla, strukturoidulla tulosteella, päättelyllä ja verkkohaulla on kullakin oma sivunsa: Toiminto kutsu, Strukturoidut lähdöt, Päättelyn teho, Sisäänrakennettu verkkohaku.

Pyyntö asetuksineen

Tämä pyyntö asettaa system-viestin, näytteenottokentät ja päättelyn tehon. Se käyttää hostattua avoimen painon mallia, joka soveltaa niitä kaikkia.

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)

Vastauksella on sama muoto kuin yllä. Sen usage lisää hostatuilla avoimen painon malleilla kaksi tietoa: välimuistista luetut prompt-tokenit ja päättelyyn käytetyt tokenit.

200 JSON
{
  "usage": {
    "prompt_tokens": 31,
    "completion_tokens": 62,
    "total_tokens": 93,
    "prompt_tokens_details": {
      "cached_tokens": 0
    },
    "completion_tokens_details": {
      "reasoning_tokens": 21
    }
  }
}

Tulosteen pituus

max_tokens tekee kaksi asiaa. Ensinnäkin se on tokenien määrä, joka varataan saldostasi pyynnön alussa. Kun vastaus on valmis, tämä määrä korvataan pyynnön käyttämillä tokeneilla. Jos max_tokens on suurempi kuin saldostasi jäljellä oleva määrä, pyyntö palauttaa 429 Quota exceeded, vaikka vastaus itsessään olisi mahtunut. Lähetä pienempi max_tokens, jos haluat varata vähemmän.

shannon-coder-1 lasketaan tässä päätepisteessä eri tavalla: jokainen pyyntö on yksi tilauksesi Shannon Coder -kutsuista, eikä sille varata tokeneita. Rajat ja saldo

Toiseksi se rajoittaa vastauksen pituutta näillä malleilla:

Mallit Mitä max_tokens tekee
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 Vastaus päättyy, kun raja saavutetaan. Virta päättyy tällöin arvoon finish_reason length.
Hostatut avoimen painon mallit Vastausteksti päättyy arvoon max_tokens. Päättelyä ei lasketa siihen. Alle 256 olevat arvot toimivat arvona 256.

Ilman max_tokens- tai max_completion_tokens-kenttää arvo on 4,096. Mallilla shannon-coder-1 se on 65,536.

Viestit

Jokainen viesti on objekti, jolla on role ja content. content on merkkijono tai osien taulukko, kun viesti sisältää muutakin kuin tekstiä.

Rooli Kuvaus Käyttävät mallit
system Ohjeet mallille. Laita se ensimmäiseksi. Shannon-tasoilla käytetään ensimmäistä system-viestiä. Hostatut avoimen painon mallit, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer Luetaan kuten system. Hostatut avoimen painon mallit
user Mitä kysyt. Shannon-tasoilla viimeinen user-viesti on prompt ja sitä edeltävät viestit ovat historiaa. Kaikki mallit
assistant Mallin aiemmat vastaukset. Säilytä sen tool_calls, kun lähetät työkalun tuloksen sen jälkeen. Kaikki mallit
tool Työkalukutsun tulos: tool_call_id sisältää kutsun id:n ja content tuloksen merkkijonona. Kaikki mallit

Shannon 3 -perheen id:llä pakollisesti noudatettavat ohjeet kuuluvat user-viestiin.

Shannon-tasoilla pyyntö ilman käyttäjän tekstiä ja ilman tools-kenttää palauttaa 400 No user message provided.

Sisältöosat

Osa Kuvaus Saatavilla
{"type": "text", "text": "…"} Pelkkä teksti. Kaikki mallit
{"type": "image_url", "image_url": {"url": "…"}} Kuva data:-URL:na base64-sisällöllä tai http(s)-URL:na. Shannon 3 -perhe, shannon-1.6-lite, shannon-1.6-pro ja hostatut avoimen painon mallit, joiden syötteeksi kuva on merkitty
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Dokumentti (PDF, Word, PowerPoint tai Excel), base64-muodossa tai URL:llä. Shannon 3 -perhe

Koot, rajat ja muotojen täydellinen lista on kuvattu omalla sivullaan. Kuvat ja tiedostot

Vastausobjekti

Kenttä Tyyppi Kuvaus
id string chatcmpl- ja sen perässä 32 heksadesimaalimerkkiä.
object string Aina chat.completion.
created integer Vastauksen aika Unix-sekunteina.
model string Vastanneen mallin kanoninen id. Sen kirjoitusasu voi poiketa lähettämästäsi id:stä.
choices array Aina täsmälleen yksi vaihtoehto, jonka index on 0.
choices[0].message.role string Aina assistant.
choices[0].message.content string | null Vastauksen teksti. Kun tool_calls on mukana, se on Shannon-tasoilla null; hostatut avoimen painon mallit voivat lähettää tekstiä kutsujen rinnalla.
choices[0].message.reasoning_content string | null Päättely, jonka malli kirjoitti ennen vastausta, tai null, jos sitä ei ole.
choices[0].message.tool_calls array Mukana vain, kun malli kutsuu työkaluja. Jokaisella merkinnällä on id, type function ja function, jossa on name ja arguments JSON-merkkijonona.
choices[0].message.annotations array Vain pyynnössä, jossa on web_search: true ja jonka haku löysi jotain. Yksi url_citation jokaista lähdettä kohti, jonka merkintä kentässä content nimeää, kentillä url, title, start_index ja end_index (merkinnän paikka merkkeinä laskettuna, loppua ei lasketa mukaan).
choices[0].finish_reason string Miksi vastaus päättyi. Katso Päättymissyyt.
usage object Pyynnön tokenit. Katso Käyttö.
sources array Vain pyynnössä, jossa on web_search: true ja jonka haku löysi jotain: tulokset, jotka malli sai, kukin kentillä index, title ja url. Vastauksen [1] on merkintä, jonka index on 1.

Päättymissyyt

finish_reason Kuvaus
stop Malli päätti vastauksensa, tai stop-merkkijono esiintyi.
tool_calls Malli kutsuu yhtä tai useampaa työkalua. Suorita ne ja lähetä tulokset tool-viesteissä.
length Vastaus katkaistiin tulosteen rajaan. Raportoidaan malleilla shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 ja Shannon 3 -perheen virroissa.

Suoratoistamaton vastaus raportoi arvon stop tai tool_calls.

Käyttö

Kenttä Tyyppi Kuvaus Saatavilla
usage.prompt_tokens integer Syötetokenit. Kaikki mallit
usage.completion_tokens integer Tulostetokenit: päättely, vastaus ja työkalukutsut yhteensä. Kaikki mallit
usage.total_tokens integer prompt_tokens plus completion_tokens. Kaikki mallit
usage.prompt_tokens_details.cached_tokens integer prompt_tokens-arvon osa, joka luettiin prompt-välimuistista. Hostatut avoimen painon mallit
usage.completion_tokens_details.reasoning_tokens integer completion_tokens-arvon osa, joka käytettiin päättelyyn. Hostatut avoimen painon mallit

Hostatuilla avoimen painon malleilla prompt_tokens on viestiesi ja työkalumääritystesi koko mallin oman tokenisoijan laskemana sekä mahdollisten kuvien tokenit. Tokenien laskennan päätepisteet palauttavat saman luvun ennen lähettämistä. Tokenien laskenta

Shannon-tasoilla prompt_tokens laskee kaiken, minkä malli luki vastauksen kirjoittamiseksi, joten se on suurempi kuin pelkkä viestiesi teksti.

Suoratoisto

Kun stream on true, vastaus saapuu chat.completion.chunk-tapahtumina ja päättyy data: [DONE]. Sitä edeltävä viimeinen pala kuljettaa kentät finish_reason ja usage; stream_options-kenttiä ei tarvita. Palojen muodot, keep-alive-rivit ja virran sisäiset virheet on kuvattu omalla sivullaan. Suoratoisto

Virheet

Virhe on JSON-objekti, jossa on error-jäsen. Tarkistukset tehdään tässä järjestyksessä: API-avain, pyynnön runko, mallin id, sitten saldo. Taulukossa on yleisimmin palautuvat virheet tästä päätepisteestä. Täydellinen lista ja ohjeet uudelleenyritykseen ovat omalla sivullaan. Virheiden käsittely

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Tila Tyyppi Viesti Milloin
401 authentication_error Missing authentication
Invalid API key
API-avainta ei lähetetty, tai avain on tuntematon tai mitätöity.
400 invalid_request_error unknown model: <id> model ei ole julkaistu id.
400 invalid_request_error No user message provided Shannon-tasot: pyynnössä ei ole käyttäjän tekstiä eikä tools-kenttää.
400 invalid_request_error <id> does not accept image input Kuvaosa lähetettiin hostatulle avoimen painon mallille, joka ei tue kuvasyötettä.
400 invalid_request_error <id> does not accept response_format response_format lähetettiin hostatulle avoimen painon mallille, jolla ei ole strukturoitua tulostetta.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning_effort sisältää arvon, joka ei ole listalla.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … messages puuttuu, tai jonkin kentän JSON-tyyppi on väärä.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens on suurempi kuin saldostasi jäljellä oleva määrä.
429 rate_limit_error Too many requests. Retry in <n>s. Tulvasuoja: tililtäsi tuli yli 120 pyyntöä minuutissa.
500 server_error The model backend failed to answer. Please retry. Malli ei tuottanut vastausta. Lähetä pyyntö uudelleen.
502 api_error The model backend failed to answer. Please retry. Sama Shannon 3 -perheellä ja hostatuilla avoimen painon malleilla.