Joan edukira
Chat Completions

Chat Completions

POST /v1/chat/completions-ek elkarrizketa bat hartzen du eta modeloaren hurrengo mezua itzultzen du OpenAI Chat Completions formatuan. Erabili edozein OpenAI SDK-tik edo HTTP hutsean; orrialde hau eremuz eremuko erreferentzia da.

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

Eskaerarik txikiena modelo-id bat eta erabiltzaile-mezu bat da.

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)

Erantzuna JSON objektu bakar bat da:

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

Goiburuak

Eskaera-goiburuak

Goiburua Balioa Deskribapena
Authorization Bearer YOUR_API_KEY Zure API gakoa. Haren ordez x-api-key: YOUR_API_KEY onartzen da endpoint guztietan.
Content-Type application/json Beharrezkoa. Beste edozein balioak 415 itzultzen du.
x-request-id Aukerakoa. Eskaerarentzako zure id propioa. Erantzunean aldatu gabe itzultzen da.

Erantzun-goiburuak

Goiburua Deskribapena
x-request-id Erantzun guztietan, erroreak eta streamak barne: zuk bidalitako balioa, edo 12 karaktere hexadezimal ezer bidali ez baduzu. Aipatu arazo bat jakinarazten duzunean.
content-type application/json, edo text/event-stream stream true denean.

Eskaera-eremuak

messages bakarrik da beharrezkoa. Aplikatzen duena zutabeak eremu batek erantzuna aldatzen duen modeloak adierazten ditu. Pisu irekiko modelo ostatatuak modelo-zerrendako hamabi id dira; Shannon 3 familia shannon-3, shannon-3-pro, shannon-3.1 eta shannon-3.1-pro da. Modeloak eta prezioak

Eremua Mota Lehenetsia Deskribapena Aplikatzen duena
model string shannon-1.6-lite Erantzuten duen modeloa: modelo-zerrendako id bat. Bidali eskaera guztiekin. Maiuskulak eta minuskulak ez dira bereizten. Argitaratu gabeko id batek 400 unknown model itzultzen du. Modelo guztiak
messages array Beharrezkoa. Elkarrizketa, mezurik zaharrena lehenik. Ikus beheko Mezuak. Modelo guztiak
stream boolean false true balioak erantzuna server-sent events gisa bidaltzen du idazten den heinean. Modelo guztiak
max_tokens integer 4096 Erantzunaren goiko muga, tokenetan. 1etik 65,536ra bitarteko tartetik kanpoko balioa tarte horretara mugitzen da. Eskaerak irauten duen bitartean zure saldotik bereizten den kopurua ere bada. Ikus beheko Irteeraren luzera. Pisu irekiko modelo ostatatuak, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer max_tokens bezala. Biak bidaltzen direnean, max_tokens erabiltzen da. Pisu irekiko modelo ostatatuak, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Laginketa-tenperatura. Pisu irekiko modelo ostatatuetan lehenetsia 1 da eta balioak 0 eta 2 artean mantentzen dira. Pisu irekiko modelo ostatatuak, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 Nukleo-laginketa. Balioak 0 eta 1 artean mantentzen dira. Pisu irekiko modelo ostatatuak
seed integer Laginketaren hazia, edozein zenbaki oso. Gabe, hazia modeloaren eta elkarrizketaren arabera ateratzen da, beraz bi aldiz bidalitako eskaera berak hazi bera erabiltzen du. Pisu irekiko modelo ostatatuak
stop string | array Kate bat edo kate-array bat. 4 arte erabiltzen dira. Erantzuna agertzen den lehenaren aurretik amaitzen da; gelditze-testua bera ez da itzultzen. Pisu irekiko modelo ostatatuak
reasoning_effort string high Modeloak erantzun aurretik zenbat arrazoitzen duen: off, low, medium edo high. none eta minimal off dira, default medium da, max high da. Beste edozein balioak 400 itzultzen du. Pisu irekiko modelo ostatatuak
reasoning object Ezarpen bera objektu-forman: {"effort": "low"}. Biak bidaltzen direnean, reasoning_effort erabiltzen da. Pisu irekiko modelo ostatatuak
tools array Modeloak dei diezazkiokeen funtzioak, bakoitza {"type": "function", "function": {"name", "description", "parameters"}} gisa. Modeloaren deiak tool_calls-en itzultzen dira; zure kodeak exekutatzen ditu. Modelo guztiak
tool_choice string | object auto "auto" balioak modeloari erabakitzen uzten dio. "required" balioak tresna bati deitzera behartzen du. {"type": "function", "function": {"name": "…"}} balioak tresna jakin horri deitzera behartzen du. Pisu irekiko modelo ostatatuak
response_format object {"type": "json_object"} JSON erantzunerako, edo {"type": "json_schema", "json_schema": {…}} zure eskema jarraitzen duen erantzunerako. Shannon maila guztiak; pisu irekiko modelo ostatatuak id bakoitzeko zerrendatu bezala
web_search boolean false true balioak modeloari erantzun aurretik weba bilatzen uzten dio. shannon-1.6-*, shannon-2-*, Shannon 3 familia

OpenAI-ren beste eremu batzuk, hala nola n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store eta prompt_cache_key, onartzen dira lehendik dagoen bezero-kodea aldatu gabe ibil dadin. Ez dute erantzuna aldatzen: beti dago aukera bakarra, eta stream bat beti erabilerarekin amaitzen da.

JSON mota okerra duen eremu batek, adibidez "max_tokens": "100", 422 itzultzen du. messages gabeko eskaerak ere bai.

Tresnek, irteera egituratuak, arrazonamenduak eta web bilaketak beren orrialdea dute: Funtzio-deiak, Irteera egituratuak, Arrazonamendu-esfortzua, Web bilaketa.

Aukerak dituen eskaera

Eskaera honek system mezu bat, laginketa-eremuak eta arrazonamendu-esfortzua ezartzen ditu. Pisu irekiko modelo ostatatu bat erabiltzen du, eta horrek guztiak aplikatzen ditu.

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)

Erantzunak goiko forma bera du. Bere usage-k bi xehetasun gehitzen ditu pisu irekiko modelo ostatatuetan: cachetik irakurritako prompt-tokenak eta arrazonamenduan gastatutako tokenak.

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

Irteeraren luzera

max_tokens-ek bi gauza egiten ditu. Lehenik, eskaera hasten denean zure saldotik bereizten den token-kopurua da. Erantzuna osatzen denean, kopuru hori eskaerak erabilitako tokenek ordezkatzen dute. max_tokens zure saldoan geratzen dena baino handiagoa bada, eskaerak 429 Quota exceeded itzultzen du erantzuna bera sartuko litzatekeenean ere. Bidali max_tokens txikiagoa gutxiago bereizteko.

shannon-coder-1 modu desberdinean kontatzen da endpoint honetan: eskaera bakoitza zure planeko Shannon Coder dei bat da, eta ez da tokenik bereizten. Mugak eta saldoa

Bigarrenik, erantzunaren luzera mugatzen du modelo hauetan:

Modeloak Zer egiten duen max_tokens-ek
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 Erantzuna mugara iristean gelditzen da. Streamak orduan finish_reason length balioarekin amaitzen da.
Pisu irekiko modelo ostatatuak Erantzunaren testua max_tokens-en gelditzen da. Arrazonamendua ez da kontatzen. 256 azpiko balioek 256 bezala jokatzen dute.

max_tokens edo max_completion_tokens gabe, balioa 4,096 da. shannon-coder-1-en 65,536 da.

Mezuak

Mezu bakoitza role eta content dituen objektu bat da. content kate bat da, edo zati-array bat mezuak testua baino gehiago daramanean.

Rola Deskribapena Aplikatzen duena
system Modeloarentzako jarraibideak. Jarri lehenik. Shannon mailetan lehen system mezua da erabiltzen dena. Pisu irekiko modelo ostatatuak, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer system gisa irakurtzen da. Pisu irekiko modelo ostatatuak
user Zer galdetzen duzun. Shannon mailetan azken user mezua prompt-a da, eta haren aurreko mezuak historia. Modelo guztiak
assistant Modeloaren aurreko erantzunak. Mantendu haren tool_calls ondoren tresna-emaitza bat bidaltzen duzunean. Modelo guztiak
tool Tresna-dei baten emaitza: tool_call_id-k deiaren id-a du eta content-ek emaitza kate gisa. Modelo guztiak

Shannon 3 familiako id batekin, jarri bete behar diren jarraibideak user mezuan.

Shannon mailetan, erabiltzaile-testurik eta tools-ik gabeko eskaerak 400 No user message provided itzultzen du.

Eduki-zatiak

Zatia Deskribapena Eskuragarri hemen
{"type": "text", "text": "…"} Testu soila. Modelo guztiak
{"type": "image_url", "image_url": {"url": "…"}} Irudi bat, base64 edukia duen data: URL gisa edo http(s) URL gisa. Shannon 3 familia, shannon-1.6-lite, shannon-1.6-pro, eta irudi-sarrera zerrendatzen duten pisu irekiko modelo ostatatuak
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Dokumentu bat (PDF, Word, PowerPoint edo Excel), base64 gisa edo URL bidez. Shannon 3 familia

Tamainek, mugek eta forma guztien zerrendak beren orrialdea dute. Irudiak eta fitxategiak

Erantzun-objektua

Eremua Mota Deskribapena
id string chatcmpl- eta ondoren 32 karaktere hexadezimal.
object string Beti chat.completion.
created integer Erantzunaren unea, Unix segundotan.
model string Erantzun duen modeloaren id kanonikoa. Idazkeran bidali duzun id-tik desberdin daiteke.
choices array Beti aukera bakarra, index 0 duena.
choices[0].message.role string Beti assistant.
choices[0].message.content string | null Erantzunaren testua. tool_calls dagoenean null da Shannon mailetan; pisu irekiko modelo ostatatuek testua bidal dezakete deien ondoan.
choices[0].message.reasoning_content string | null Modeloak erantzunaren aurretik idatzitako arrazonamendua, edo null ezer ez dagoenean.
choices[0].message.tool_calls array Modeloak tresnei deitzen dienean bakarrik dago. Sarrera bakoitzak id bat, type function eta function bat ditu, name eta arguments JSON kate gisa dituela.
choices[0].message.annotations array web_search: true duen eskaeran bakarrik, bilaketak zerbait aurkitu badu. url_citation bat content-eko marka batek izendatzen duen iturri bakoitzeko, url, title, start_index eta end_index eremuekin (markaren posizioa, karaktere kopuruan zenbatuta, amaiera barne gabe).
choices[0].finish_reason string Erantzuna zergatik amaitu den. Ikus Amaiera-arrazoiak.
usage object Eskaeraren tokenak. Ikus Erabilera.
sources array web_search: true duen eskaeran bakarrik, bilaketak zerbait aurkitu badu: modeloak jaso dituen emaitzak, bakoitza index, title eta url eremuekin. Erantzunean [1] index 1 duen sarrera da.

Amaiera-arrazoiak

finish_reason Deskribapena
stop Modeloak erantzuna amaitu du, edo stop kate bat agertu da.
tool_calls Modeloak tresna bati edo gehiagori deitzen die. Exekutatu eta bidali emaitzak tool mezuetan.
length Erantzuna irteera-mugan moztu da. shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 eta Shannon 3 familiaren streametan jakinarazten da.

Stream bidez ez doan erantzun batek stop edo tool_calls jakinarazten du.

Erabilera

Eremua Mota Deskribapena Eskuragarri hemen
usage.prompt_tokens integer Sarrera-tokenak. Modelo guztiak
usage.completion_tokens integer Irteera-tokenak: arrazonamendua, erantzuna eta tresna-deiak batera. Modelo guztiak
usage.total_tokens integer prompt_tokens gehi completion_tokens. Modelo guztiak
usage.prompt_tokens_details.cached_tokens integer prompt_tokens-en prompt cachetik irakurritako zatia. Pisu irekiko modelo ostatatuak
usage.completion_tokens_details.reasoning_tokens integer completion_tokens-en arrazonamenduan gastatutako zatia. Pisu irekiko modelo ostatatuak

Pisu irekiko modelo ostatatuetan, prompt_tokens zure mezuak eta tresna-definizioak dira, modeloaren tokenizatzaile propioarekin kontatuta, gehi irudien tokenak. Token-kontaketako endpoint-ek zenbaki bera itzultzen dute bidali aurretik. Tokenen kontaketa

Shannon mailetan, prompt_tokens-ek modeloak erantzuna idazteko irakurri duen guztia kontatzen du, beraz zure mezuen testua bakarrik baino handiagoa da.

Streaminga

stream true bezala ezarrita, erantzuna chat.completion.chunk gertaera gisa iristen da eta data: [DONE]-rekin amaitzen da. Haren aurreko azken chunk-ak finish_reason eta usage ditu; ez da stream_options beharrik. Chunk-en formek, keep-alive lerroek eta streamen barruko erroreek beren orrialdea dute. Streaminga

Erroreak

Errore bat error kide bat duen JSON objektu bat da. Egiaztapenak ordena honetan egiten dira: API gakoa, eskaera-gorputza, modelo-id-a, eta gero saldoa. Taulak endpoint honek maizen itzultzen duena zerrendatzen du. Zerrenda osoak, zer berriz saiatu behar den adierazita, bere orrialdea du. Errore‑kudeaketa

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Egoera Mota Mezua Noiz
401 authentication_error Missing authentication
Invalid API key
Ez da API gakorik bidali, edo gakoa ezezaguna edo indargabetua da.
400 invalid_request_error unknown model: <id> model ez da argitaratutako id bat.
400 invalid_request_error No user message provided Shannon mailak: eskaerak ez du erabiltzaile-testurik eta ez du tools-ik.
400 invalid_request_error <id> does not accept image input Irudi-zati bat bidali da irudi-sarrerarik ez duen pisu irekiko modelo ostatatu batera.
400 invalid_request_error <id> does not accept response_format response_format bidali da irteera egituraturik ez duen pisu irekiko modelo ostatatu batera.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning_effort-ek zerrendatik kanpoko balio bat du.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … messages falta da, edo eremu batek JSON mota okerra du.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens zure saldoan geratzen dena baino handiagoa da.
429 rate_limit_error Too many requests. Retry in <n>s. Flood protection: minutu batean 120 eskaera baino gehiago zure kontuan.
500 server_error The model backend failed to answer. Please retry. Modeloak ez du erantzunik sortu. Bidali eskaera berriro.
502 api_error The model backend failed to answer. Please retry. Bera, Shannon 3 familian eta pisu irekiko modelo ostatatuetan.