Chat Completions
POST /v1/chat/completions yana karɓar tattaunawa kuma yana mayar da saƙon model na gaba a tsarin OpenAI Chat Completions. Ku yi amfani da shi daga kowane OpenAI SDK ko ta HTTP kai tsaye; wannan shafin bayani ne na field bayan field.
POST https://api.shannon-ai.com/v1/chat/completions
Mafi ƙanƙantar request shi ne model id da saƙon mai amfani ɗaya.
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."}]
}' Amsar JSON object ɗaya ce:
{
"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
}
} Headers
Headers na request
| Header | Ƙima | Bayani |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | Maɓallin API ɗinku. Ana karɓar x-api-key: YOUR_API_KEY a madadinsa a kowane endpoint. |
Content-Type | application/json | Wajibi. Duk wata ƙima tana mayar da 415. |
x-request-id | Zaɓi. Id ɗinku na request ɗin. Yana dawowa kamar yadda yake a amsar. |
Headers na amsa
| Header | Bayani |
|---|---|
x-request-id | A kowace amsa, har da kurakurai da streams: ƙimar da kuka aika, ko haruffan hexadecimal 12 idan ba ku aika ba. Ku ambace shi lokacin da kuke bayar da rahoton matsala. |
content-type | application/json, ko text/event-stream idan stream shi ne true. |
Fields na request
messages kaɗai ake buƙata. Ginshiƙin Wanda ke aiwatarwa yana sunayen models da field ke canza amsa a kansu. Hosted open-weight models su ne ids goma sha biyu na jerin models; iyalin Shannon 3 su ne shannon-3, shannon-3-pro, shannon-3.1 da shannon-3.1-pro. Models & farashi
| Field | Nau'i | Na asali | Bayani | Wanda ke aiwatarwa |
|---|---|---|---|---|
model | string | shannon-1.6-lite | Model da zai amsa: id daga jerin models. Ku aika shi a kowace request. Ba a bambanta manyan haruffa da ƙanana. Id da ba a wallafa ba yana mayar da 400 unknown model. | Duk models |
messages | array | Wajibi. Tattaunawar, saƙon mafi tsufa da farko. Duba Saƙonni a ƙasa. | Duk models | |
stream | boolean | false | true yana aika amsar a matsayin server-sent events yayin da ake rubuta ta. | Duk models |
max_tokens | integer | 4096 | Iyakar amsa, a tokens. Ƙimar da ta wuce 1 zuwa 65,536 ana mayar da ita cikin wannan kewayon. Hakanan shi ne adadin da ake ware daga balance ɗinku yayin da request yake gudana. Duba Tsawon output a ƙasa. | Hosted open-weight models, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 |
max_completion_tokens | integer | Kamar max_tokens. Idan an aika duka biyu, ana amfani da max_tokens. | Hosted open-weight models, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
temperature | number | Sampling temperature. A hosted open-weight models na asali shi ne 1 kuma ana riƙe ƙimomi tsakanin 0 da 2. | Hosted open-weight models, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
top_p | number | 0.95 | Nucleus sampling. Ana riƙe ƙimomi tsakanin 0 da 1. | Hosted open-weight models |
seed | integer | Seed na sampler, kowane lamba cikakkiya. Idan babu shi, ana samo seed daga model da tattaunawar, don haka request iri ɗaya da aka aika sau biyu yana amfani da seed iri ɗaya. | Hosted open-weight models | |
stop | string | array | String ko array na strings. Ana amfani da har guda 4. Amsar tana ƙarewa kafin na farko da ya bayyana; ba a mayar da rubutun tsayawa da kansa ba. | Hosted open-weight models | |
reasoning_effort | string | high | Yawan reasoning da model ke yi kafin ya amsa: off, low, medium ko high. none da minimal suna nufin off, default yana nufin medium, max yana nufin high. Duk wata ƙima tana mayar da 400. | Hosted open-weight models |
reasoning | object | Saitin iri ɗaya a siffar object: {"effort": "low"}. Idan an aika duka biyu, ana amfani da reasoning_effort. | Hosted open-weight models | |
tools | array | Functions da model zai iya kira, kowanne a matsayin {"type": "function", "function": {"name", "description", "parameters"}}. Kiran model yana dawowa a tool_calls; code ɗinku ne ke gudanar da su. | Duk models | |
tool_choice | string | object | auto | "auto" yana barin model ya yanke shawara. "required" yana tilasta masa kiran tool. {"type": "function", "function": {"name": "…"}} yana tilasta masa kiran wannan tool ɗin. | Hosted open-weight models |
response_format | object | {"type": "json_object"} don amsar JSON, ko {"type": "json_schema", "json_schema": {…}} don amsar da ke bin schema ɗinku. | Duk matakan Shannon; hosted open-weight models kamar yadda aka lissafa ga kowane id | |
web_search | boolean | false | true yana barin model ya bincika yanar gizo kafin ya amsa. | shannon-1.6-*, shannon-2-*, iyalin Shannon 3 |
Ana karɓar sauran fields na OpenAI, kamar n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store da prompt_cache_key, don code na client da ke akwai ya yi aiki ba tare da canji ba. Ba sa canza amsar: koyaushe akwai choice ɗaya, kuma stream koyaushe yana ƙarewa da usage.
Field mai nau'in JSON mara kyau, misali "max_tokens": "100", yana mayar da 422. Request ba tare da messages ba ma haka.
Tools, structured output, reasoning da binciken yanar gizo kowanne yana da shafinsa: Kiran Aiki, Abubuwan da aka Tsara, Reasoning effort, Binciken Yanar Gizon da aka Gina.
Request mai zaɓuɓɓuka
Wannan request yana saita saƙon system, sampling fields da reasoning effort. Yana amfani da hosted open-weight model, wanda ke aiwatar da dukansu.
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"
}' Amsar tana da siffa iri ɗaya da ta sama. usage ɗinta yana ƙara bayanai biyu a hosted open-weight models: prompt tokens da aka karanta daga cache da tokens da aka kashe a reasoning.
{
"usage": {
"prompt_tokens": 31,
"completion_tokens": 62,
"total_tokens": 93,
"prompt_tokens_details": {
"cached_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 21
}
}
} Tsawon output
max_tokens yana yin abubuwa biyu. Na farko, shi ne adadin tokens da ake ware daga balance ɗinku lokacin da request ya fara. Idan amsar ta cika, ana maye gurbin wannan adadi da tokens da request ya yi amfani da su. Idan max_tokens ya fi abin da ya rage a balance ɗinku girma, request yana mayar da 429 Quota exceeded ko da amsar da kanta za ta isa. Ku aika max_tokens mafi ƙanƙanta don ware ƙasa.
Ana ƙirga shannon-coder-1 daban a wannan endpoint: kowace request kira ɗaya ne na Shannon Coder na plan ɗinku, kuma ba a ware tokens don ita ba. Iyakoki da balance
Na biyu, yana iyakance tsawon amsa a waɗannan models:
| Models | Abin da max_tokens ke yi |
|---|---|
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | Amsar tana tsayawa idan ta kai iyaka. Stream sai ya ƙare da finish_reason length. |
| Hosted open-weight models | Rubutun amsar yana tsayawa a max_tokens. Ba a ƙirga reasoning a ciki ba. Ƙimomi ƙasa da 256 suna aiki kamar 256. |
Idan babu max_tokens ko max_completion_tokens, ƙimar ita ce 4,096. A shannon-coder-1 ita ce 65,536.
Saƙonni
Kowane saƙo object ne mai role da content. content string ne, ko array na sassa idan saƙon yana ɗauke da fiye da rubutu.
| Role | Bayani | Wanda ke aiwatarwa |
|---|---|---|
system | Umarni ga model. Ku sa shi da farko. A matakan Shannon saƙon system na farko shi ne ake amfani da shi. | Hosted open-weight models, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
developer | Ana karantawa kamar system. | Hosted open-weight models |
user | Abin da kuke tambaya. A matakan Shannon saƙon user na ƙarshe shi ne prompt kuma saƙonnin da suka riga shi su ne tarihi. | Duk models |
assistant | Amsoshin model na baya. Ku riƙe tool_calls ɗinsa lokacin da kuke aika sakamakon tool bayansa. | Duk models |
tool | Sakamakon kiran tool: tool_call_id yana ɗauke da id na kiran kuma content sakamakon a matsayin string. | Duk models |
Da id na iyalin Shannon 3, ku saka umarnin da dole ya yi aiki a cikin saƙon user.
A matakan Shannon request ba tare da rubutun mai amfani ba kuma ba tare da tools ba yana mayar da 400 No user message provided.
Sassan abun ciki
| Sashe | Bayani | Akwai a |
|---|---|---|
{"type": "text", "text": "…"} | Rubutu na yau da kullun. | Duk models |
{"type": "image_url", "image_url": {"url": "…"}} | Hoto, a matsayin data: URL mai abun ciki na base64 ko a matsayin URL na http(s). | Iyalin Shannon 3, shannon-1.6-lite, shannon-1.6-pro, da hosted open-weight models da ke da image input |
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} | Takarda (PDF, Word, PowerPoint ko Excel), a matsayin base64 ko ta URL. | Iyalin Shannon 3 |
Girma, iyakoki da cikakken jerin siffofi suna da shafinsu. Hotuna da fayiloli
Object na amsa
| Field | Nau'i | Bayani |
|---|---|---|
id | string | chatcmpl- da ke biye da haruffan hexadecimal 32. |
object | string | Koyaushe chat.completion. |
created | integer | Lokacin amsar, a daƙiƙun Unix. |
model | string | Id na asali na model da ya amsa. Rubutunsa na iya bambanta da id da kuka aika. |
choices | array | Koyaushe choice ɗaya daidai, mai index 0. |
choices[0].message.role | string | Koyaushe assistant. |
choices[0].message.content | string | null | Rubutun amsar. Tare da tool_calls yana null a matakan Shannon; hosted open-weight models na iya aika rubutu tare da kiran. |
choices[0].message.reasoning_content | string | null | Reasoning da model ya rubuta kafin amsar, ko null idan babu. |
choices[0].message.tool_calls | array | Yana nan ne kawai idan model yana kiran tools. Kowace shigarwa tana da id, type function, da function mai name da arguments a matsayin JSON string. |
choices[0].message.annotations | array | Kawai a kan request mai web_search: true wanda binciken sa ya sami wani abu. url_citation ɗaya ga kowane tushen da alama a cikin content ta ambata, tare da url, title, start_index da end_index (matsayin alamar, da aka ƙidaya da haruffa, ba tare da ƙarshen ba). |
choices[0].finish_reason | string | Dalilin ƙarewar amsar. Duba Dalilan ƙarewa. |
usage | object | Tokens na request. Duba Usage. |
sources | array | Kawai a kan request mai web_search: true wanda binciken sa ya sami wani abu: sakamakon da aka ba model, kowanne tare da index, title da url. [1] a cikin amsar shi ne shigarwar da ke da index 1. |
Dalilan ƙarewa
| finish_reason | Bayani |
|---|---|
stop | Model ya gama amsarsa, ko kuma string na stop ya bayyana. |
tool_calls | Model yana kiran tool ɗaya ko fiye. Ku gudanar da su kuma ku aika sakamakon a saƙonnin tool. |
length | An yanke amsar a iyakar output. Ana bayyanawa a streams na shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 da iyalin Shannon 3. |
Amsar da ba a yi streaming ba tana bayyana stop ko tool_calls.
Usage
| Field | Nau'i | Bayani | Akwai a |
|---|---|---|---|
usage.prompt_tokens | integer | Input tokens. | Duk models |
usage.completion_tokens | integer | Output tokens: reasoning, amsa da kiran tool a haɗe. | Duk models |
usage.total_tokens | integer | prompt_tokens da completion_tokens a haɗe. | Duk models |
usage.prompt_tokens_details.cached_tokens | integer | Ɓangaren prompt_tokens da aka karanta daga prompt cache. | Hosted open-weight models |
usage.completion_tokens_details.reasoning_tokens | integer | Ɓangaren completion_tokens da aka kashe a reasoning. | Hosted open-weight models |
A hosted open-weight models, prompt_tokens saƙonninku ne da ma'anar tools da aka ƙirga da tokenizer na model da kansa, tare da tokens na kowane hoto. Endpoints na ƙirgan tokens suna mayar da lamba iri ɗaya kafin ku aika. Ƙidayar tokens
A matakan Shannon, prompt_tokens yana ƙirga duk abin da model ya karanta don rubuta amsar, don haka ya fi rubutun saƙonninku kaɗai girma.
Streaming
Idan an saita stream zuwa true amsar tana zuwa a matsayin events na chat.completion.chunk kuma tana ƙarewa da data: [DONE]. Chunk na ƙarshe kafin shi yana ɗauke da finish_reason da usage; ba a buƙatar stream_options. Siffofin chunks, layukan keep-alive da kurakurai a cikin stream suna da shafinsu. Yawo
Kurakurai
Kuskure JSON object ne mai member na error. Ana yin dubawa bisa wannan tsari: maɓallin API, jikin request, model id, sannan balance. Teburin yana lissafa abin da wannan endpoint ya fi mayarwa. Cikakken jerin, tare da abin da za a sake gwadawa, yana da shafinsa. Kuskuren Gudanarwa
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: no-such-model"
}
} | Matsayi | Nau'i | Saƙo | Lokaci |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid API key | Ba a aika maɓallin API ba, ko kuma maɓallin ba a san shi ba ko an soke shi. |
400 | invalid_request_error | unknown model: <id> | model ba id da aka wallafa ba ne. |
400 | invalid_request_error | No user message provided | Matakan Shannon: request ɗin ba shi da rubutun mai amfani kuma ba shi da tools. |
400 | invalid_request_error | <id> does not accept image input | An aika sashen hoto zuwa hosted open-weight model wanda ba shi da image input. |
400 | invalid_request_error | <id> does not accept response_format | An aika response_format zuwa hosted open-weight model wanda ba shi da structured output. |
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | reasoning_effort yana ɗauke da ƙima a wajen jerin. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | messages ya ɓace, ko kuma wani field yana da nau'in JSON mara kyau. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | max_tokens ya fi abin da ya rage a balance ɗinku girma. |
429 | rate_limit_error | Too many requests. Retry in <n>s. | Flood protection: fiye da requests 120 a cikin minti ɗaya a asusunku. |
500 | server_error | The model backend failed to answer. Please retry. | Model bai samar da amsa ba. Ku sake aika request ɗin. |
502 | api_error | The model backend failed to answer. Please retry. | Haka ma, a iyalin Shannon 3 da hosted open-weight models. |