Агуулга руу алгасах
Chat Completions

Chat Completions

POST /v1/chat/completions нь харилцан яриаг авч, загварын дараагийн мессежийг OpenAI Chat Completions форматаар буцаана. Үүнийг аль ч OpenAI SDK-аас эсвэл энгийн HTTP-ээр ашиглана; энэ хуудас бол талбар тус бүрийн лавлах.

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

Хамгийн жижиг хүсэлт нь загварын id болон нэг хэрэглэгчийн мессеж.

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)

Хариулт нь нэг JSON объект:

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

Header-ууд

Хүсэлтийн header-ууд

Header Утга Тайлбар
Authorization Bearer YOUR_API_KEY Таны API түлхүүр. Үүний оронд endpoint бүр дээр x-api-key: YOUR_API_KEY хүлээн зөвшөөрөгдөнө.
Content-Type application/json Заавал. Өөр утга 415 буцаана.
x-request-id Заавал биш. Хүсэлтийн таны өөрийн id. Хариулт дээр хэвээр буцаж ирнэ.

Хариултын header-ууд

Header Тайлбар
x-request-id Хариулт бүр дээр, алдаа ба stream-ийг оруулан: таны илгээсэн утга, эсвэл юу ч илгээгээгүй бол 12 арвантын тэмдэгт. Асуудал мэдээлэхдээ үүнийг иш татна уу.
content-type application/json, эсвэл stream нь true үед text/event-stream.

Хүсэлтийн талбарууд

Зөвхөн messages заавал шаардлагатай. Хэрэгжүүлэгч багана нь талбар хариултыг өөрчилдөг загваруудыг нэрлэнэ. Hosted open-weight загварууд нь загварын жагсаалтын арван хоёр id; Shannon 3 гэр бүл нь shannon-3, shannon-3-pro, shannon-3.1 болон shannon-3.1-pro. Загвар ба үнэ

Талбар Төрөл Үндсэн утга Тайлбар Хэрэгжүүлэгч
model string shannon-1.6-lite Хариулах загвар: загварын жагсаалтаас нэг id. Хүсэлт бүртэй хамт илгээнэ. Том жижиг үсгийг ялгахгүй. Нийтлээгүй id 400 unknown model буцаана. Бүх загвар
messages array Заавал. Харилцан яриа, хамгийн эхний мессеж нь эхэнд. Доорх Мессеж хэсгийг үзнэ үү. Бүх загвар
stream boolean false true нь хариултыг бичигдэж байх үед server-sent events хэлбэрээр илгээнэ. Бүх загвар
max_tokens integer 4096 Хариултын дээд хязгаар, токеноор. 1-ээс 65,536-ийн гаднах утгыг тэр мужид оруулна. Мөн хүсэлт ажиллаж байх хугацаанд таны үлдэгдлээс нөөцлөгдөх хэмжээ юм. Доорх Гаралтын урт хэсгийг үзнэ үү. Hosted open-weight загварууд, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer max_tokens-тэй адил. Хоёуланг нь илгээвэл max_tokens-ийг ашиглана. Hosted open-weight загварууд, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Sampling temperature. Hosted open-weight загварууд дээр үндсэн утга 1 бөгөөд утгыг 0-ээс 2-ын хооронд барина. Hosted open-weight загварууд, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 Nucleus sampling. Утгыг 0-ээс 1-ийн хооронд барина. Hosted open-weight загварууд
seed integer Sampler-ийн seed, дурын бүхэл тоо. Үгүй бол seed-ийг загвар ба харилцан яриагаас гаргах тул ижил хүсэлтийг хоёр удаа илгээхэд ижил seed ашиглана. Hosted open-weight загварууд
stop string | array String эсвэл string-үүдийн массив. 4 хүртэлийг ашиглана. Хариулт эхэнд нь гарсан эхний string-ээс өмнө дуусна; зогсоох текст өөрөө буцахгүй. Hosted open-weight загварууд
reasoning_effort string high Загвар хариулахаасаа өмнө хэр их reasoning хийх: off, low, medium эсвэл high. none ба minimal нь off, default нь medium, max нь high гэсэн үг. Бусад утга 400 буцаана. Hosted open-weight загварууд
reasoning object Ижил тохиргоо объект хэлбэрээр: {"effort": "low"}. Хоёуланг нь илгээвэл reasoning_effort-ийг ашиглана. Hosted open-weight загварууд
tools array Загварын дуудаж болох функцууд, тус бүр {"type": "function", "function": {"name", "description", "parameters"}} хэлбэртэй. Загварын дуудлагууд tool_calls-д буцаж ирнэ; таны код тэдгээрийг ажиллуулна. Бүх загвар
tool_choice string | object auto "auto" загвар өөрөө шийднэ. "required" tool заавал дуудуулна. {"type": "function", "function": {"name": "…"}} тухайн tool-ийг дуудуулна. Hosted open-weight загварууд
response_format object JSON хариултад {"type": "json_object"}, таны schema-г дагасан хариултад {"type": "json_schema", "json_schema": {…}}. Shannon-ы бүх түвшин; hosted open-weight загварууд id тус бүрийн жагсаалтаар
web_search boolean false true нь загварт хариулахаасаа өмнө вэбээс хайхыг зөвшөөрнө. shannon-1.6-*, shannon-2-*, Shannon 3 гэр бүл

n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store ба prompt_cache_key зэрэг OpenAI-ийн бусад талбаруудыг хүлээн авдаг тул одоо байгаа клиент код өөрчлөлтгүй ажиллана. Эдгээр нь хариултыг өөрчлөхгүй: choice үргэлж нэг байх бөгөөд stream үргэлж usage-ээр төгсдөг.

JSON төрөл буруу талбар, жишээ нь "max_tokens": "100", 422 буцаана. messages-гүй хүсэлт ч мөн адил.

Tools, бүтэцтэй гаралт, reasoning ба вэб хайлт тус бүр өөрийн хуудастай: Функц дуудлага, Бүтэцтэй гаралт, Reasoning effort, Вэб хайлт.

Сонголттой хүсэлт

Энэ хүсэлт system мессеж, sampling талбарууд ба reasoning effort-ийг тогтооно. Бүгдийг хэрэгжүүлдэг hosted open-weight загварыг ашиглана.

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)

Хариулт дээрхтэй ижил хэлбэртэй. Hosted open-weight загварууд дээр түүний usage хоёр нэмэлт мэдээлэл агуулна: кэшээс уншсан prompt токен ба reasoning-д зарцуулсан токен.

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

Гаралтын урт

max_tokens хоёр зүйл хийдэг. Нэгдүгээрт, хүсэлт эхлэх үед таны үлдэгдлээс нөөцлөгдөх токены тоо юм. Хариулт дуусахад тэр хэмжээг хүсэлтийн ашигласан токеноор солино. Хэрэв max_tokens таны үлдэгдлээс их бол хариулт өөрөө багтах байсан ч хүсэлт 429 Quota exceeded буцаана. Бага нөөцлөхийн тулд бага max_tokens илгээнэ үү.

shannon-coder-1-ийг энэ endpoint дээр өөрөөр тоолно: хүсэлт бүр таны багцын Shannon Coder дуудлагын нэг бөгөөд түүнд токен нөөцлөгдөхгүй. Хязгаар ба үлдэгдэл

Хоёрдугаарт, эдгээр загвар дээр хариултын уртыг хязгаарлана:

Загварууд max_tokens юу хийдэг
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 Хариулт хязгаарт хүрэхэд зогсоно. Дараа нь stream finish_reason length-ээр дуусна.
Hosted open-weight загварууд Хариултын текст max_tokens дээр зогсоно. Reasoning үүнд тооцогдохгүй. 256-аас бага утга 256 гэж үйлчилнэ.

max_tokens эсвэл max_completion_tokens-гүй бол утга 4,096. shannon-coder-1 дээр 65,536.

Мессежүүд

Мессеж бүр role ба content-той объект. content нь string, эсвэл мессеж текстээс илүүг агуулах үед хэсгүүдийн массив.

Үүрэг Тайлбар Хэрэгжүүлэгч
system Загварт өгөх зааварчилгаа. Эхэнд нь тавина. Shannon түвшингүүд дээр эхний system мессежийг ашиглана. Hosted open-weight загварууд, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer system гэж уншина. Hosted open-weight загварууд
user Таны асуух зүйл. Shannon түвшингүүд дээр сүүлийн user мессеж нь prompt, түүний өмнөх мессежүүд нь түүх. Бүх загвар
assistant Загварын өмнөх хариултууд. Түүний дараа tool-ийн үр дүн илгээхдээ tool_calls-ийг нь хадгална уу. Бүх загвар
tool Tool дуудлагын үр дүн: tool_call_id нь дуудлагын id, content нь үр дүнг string хэлбэрээр агуулна. Бүх загвар

Shannon 3 гэр бүлийн id-тай бол заавал мөрдөх зааврыг user мессежид оруулна уу.

Shannon түвшингүүд дээр хэрэглэгчийн текст ч, tools ч байхгүй хүсэлт 400 No user message provided буцаана.

Content хэсгүүд

Хэсэг Тайлбар Боломжтой загвар
{"type": "text", "text": "…"} Энгийн текст. Бүх загвар
{"type": "image_url", "image_url": {"url": "…"}} Зураг, base64 агуулгатай data: URL эсвэл http(s) URL хэлбэрээр. Shannon 3 гэр бүл, shannon-1.6-lite, shannon-1.6-pro, мөн зураг оролтыг дэмждэг hosted open-weight загварууд
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Баримт (PDF, Word, PowerPoint эсвэл Excel), base64 эсвэл URL-аар. Shannon 3 гэр бүл

Хэмжээ, хязгаар болон хэлбэрүүдийн бүрэн жагсаалт тусдаа хуудастай. Зураг ба файл

Хариултын объект

Талбар Төрөл Тайлбар
id string chatcmpl- араас нь 32 арвантын тэмдэгт.
object string Үргэлж chat.completion.
created integer Хариултын цаг, Unix секундээр.
model string Хариулсан загварын каноник id. Таны илгээсэн id-аас бичиглэлээрээ ялгаатай байж болно.
choices array Үргэлж яг нэг choice, index нь 0.
choices[0].message.role string Үргэлж assistant.
choices[0].message.content string | null Хариултын текст. tool_calls-тай үед Shannon түвшингүүд дээр null; hosted open-weight загварууд дуудлагын хажууд текст илгээж болно.
choices[0].message.reasoning_content string | null Загварын хариултаас өмнө бичсэн reasoning, байхгүй бол null.
choices[0].message.tool_calls array Зөвхөн загвар tool дуудах үед байна. Элемент бүр id, type function, мөн name ба JSON string хэлбэрийн arguments-тай function агуулна.
choices[0].message.annotations array Зөвхөн хайлт нь ямар нэг зүйл олсон web_search: true-тай хүсэлт дээр. content доторх тэмдэг нэрлэсэн эх сурвалж бүрт нэг url_citation, url, title, start_index, end_index-тэй (тэмдгийн байрлал, тэмдэгтээр тоологдоно, төгсгөл орохгүй).
choices[0].finish_reason string Хариулт яагаад дууссан. Дуусах шалтгаанууд хэсгийг үзнэ үү.
usage object Хүсэлтийн токенууд. Usage хэсгийг үзнэ үү.
sources array Зөвхөн хайлт нь ямар нэг зүйл олсон web_search: true-тай хүсэлт дээр: загварт өгсөн үр дүн бүр index, title, url-тай. Хариулт доторх [1] нь index нь 1 байх бичлэг юм.

Дуусах шалтгаанууд

finish_reason Тайлбар
stop Загвар хариултаа дуусгасан, эсвэл stop string гарч ирсэн.
tool_calls Загвар нэг буюу хэд хэдэн tool дууддаг. Тэдгээрийг ажиллуулж, үр дүнг tool мессежээр илгээнэ.
length Хариулт гаралтын хязгаарт хүрч таслагдсан. shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 ба Shannon 3 гэр бүлийн stream-д мэдээлнэ.

Stream биш хариулт stop эсвэл tool_calls гэж мэдээлнэ.

Usage

Талбар Төрөл Тайлбар Боломжтой загвар
usage.prompt_tokens integer Оролтын токен. Бүх загвар
usage.completion_tokens integer Гаралтын токен: reasoning, хариулт ба tool дуудлага хамтдаа. Бүх загвар
usage.total_tokens integer prompt_tokens дээр completion_tokens. Бүх загвар
usage.prompt_tokens_details.cached_tokens integer prompt_tokens-ийн prompt кэшээс уншсан хэсэг. Hosted open-weight загварууд
usage.completion_tokens_details.reasoning_tokens integer completion_tokens-ийн reasoning-д зарцуулсан хэсэг. Hosted open-weight загварууд

Hosted open-weight загварууд дээр prompt_tokens нь таны мессеж болон tool тодорхойлолтыг загварын өөрийн tokenizer-ээр тоолсон, дээр нь зургийн токенууд. Токен тоолох endpoint-ууд илгээхээс өмнө ижил тоог буцаана. Токен тоолох

Shannon түвшингүүд дээр prompt_tokens нь загвар хариулт бичихдээ уншсан бүхнийг тоолдог тул зөвхөн таны мессежийн текстээс их байна.

Streaming

stream-ийг true болгосон үед хариулт chat.completion.chunk event хэлбэрээр ирж, data: [DONE]-оор төгсөнө. Түүний өмнөх сүүлийн chunk finish_reason ба usage-ийг агуулна; stream_options шаардлагагүй. Chunk-ийн хэлбэр, keep-alive мөр, stream доторх алдаа тусдаа хуудастай. Дамжуулалт

Алдаа

Алдаа нь error гишүүнтэй JSON объект. Шалгалт дараах дарааллаар явагдана: API түлхүүр, хүсэлтийн body, загварын id, дараа нь үлдэгдэл. Хүснэгтэд энэ endpoint-ийн хамгийн их буцаадаг алдаа байна. Бүрэн жагсаалт, юуг дахин оролдохыг тусдаа хуудсанд харуулсан. Алдаа боловсруулах

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Төлөв Төрөл Мессеж Хэзээ
401 authentication_error Missing authentication
Invalid API key
API түлхүүр илгээгдээгүй, эсвэл түлхүүр тодорхойгүй буюу хүчингүй болсон.
400 invalid_request_error unknown model: <id> model нь нийтэлсэн id биш.
400 invalid_request_error No user message provided Shannon түвшингүүд: хүсэлтэд хэрэглэгчийн текст ч, tools ч алга.
400 invalid_request_error <id> does not accept image input Зураг оролтгүй hosted open-weight загварт зургийн хэсэг илгээсэн.
400 invalid_request_error <id> does not accept response_format Бүтэцтэй гаралтгүй hosted open-weight загварт response_format илгээсэн.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning_effort жагсаалтаас гадуурх утга агуулсан.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … messages алга, эсвэл талбарын JSON төрөл буруу.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens таны үлдэгдлээс их байна.
429 rate_limit_error Too many requests. Retry in <n>s. Flood protection: таны бүртгэлээс нэг минутад 120-оос олон хүсэлт ирсэн.
500 server_error The model backend failed to answer. Please retry. Загвар хариулт гаргасангүй. Хүсэлтээ дахин илгээнэ үү.
502 api_error The model backend failed to answer. Please retry. Ижил, Shannon 3 гэр бүл болон hosted open-weight загварууд дээр.