Kontentga o'tish
Chat Completions

Chat Completions

POST /v1/chat/completions suhbatni qabul qiladi va modelning keyingi xabarini OpenAI Chat Completions formatida qaytaradi. Uni istalgan OpenAI SDK'dan yoki oddiy HTTP orqali ishlating; bu sahifa maydonma-maydon ma'lumotnoma.

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

Eng kichik so'rov — model id va bitta foydalanuvchi xabari.

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)

Javob — bitta JSON obyekti:

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

Sarlavhalar

So'rov sarlavhalari

Sarlavha Qiymat Tavsif
Authorization Bearer YOUR_API_KEY API kalitingiz. Uning o'rniga har bir endpointda x-api-key: YOUR_API_KEY ham qabul qilinadi.
Content-Type application/json Majburiy. Boshqa har qanday qiymat 415 qaytaradi.
x-request-id Ixtiyoriy. So'rov uchun o'zingizning id'ingiz. U javobda o'zgarishsiz qaytadi.

Javob sarlavhalari

Sarlavha Tavsif
x-request-id Har bir javobda, xatolar va oqimlarda ham: siz yuborgan qiymat, yubormagan bo'lsangiz 12 ta o'n oltilik belgi. Muammo haqida xabar berganda uni keltiring.
content-type application/json, stream true bo'lsa esa text/event-stream.

So'rov maydonlari

Faqat messages majburiy. Qo'llaydi ustuni maydon javobni o'zgartiradigan modellarni nomlaydi. Xostingdagi open-weight modellar — model ro'yxatidagi o'n ikkita id; Shannon 3 oilasi — shannon-3, shannon-3-pro, shannon-3.1 va shannon-3.1-pro. Modellar va narxlar

Maydon Tur Standart Tavsif Qo'llaydi
model string shannon-1.6-lite Javob beradigan model: model ro'yxatidagi id. Uni har bir so'rov bilan yuboring. Moslashtirishda harf registri hisobga olinmaydi. E'lon qilinmagan id 400 unknown model qaytaradi. Barcha modellar
messages array Majburiy. Suhbat, eng eski xabar birinchi. Quyida Xabarlarga qarang. Barcha modellar
stream boolean false true javobni yozilayotgan paytda server-sent events sifatida yuboradi. Barcha modellar
max_tokens integer 4096 Javobning yuqori chegarasi, token bilan. 1 dan 65,536 gacha oraliqdan tashqaridagi qiymat shu oraliqqa keltiriladi. Shuningdek, so'rov bajarilayotganda balansingizdan ajratib qo'yiladigan miqdor ham shu. Quyida Chiqish uzunligiga qarang. Xostingdagi open-weight modellar, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer max_tokens bilan bir xil. Ikkalasi yuborilsa, max_tokens ishlatiladi. Xostingdagi open-weight modellar, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Sampling temperaturasi. Xostingdagi open-weight modellarda standart qiymat 1 va qiymatlar 0 va 2 oralig'ida saqlanadi. Xostingdagi open-weight modellar, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 Nucleus sampling. Qiymatlar 0 va 1 oralig'ida saqlanadi. Xostingdagi open-weight modellar
seed integer Sampler seed'i, istalgan butun son. Bo'lmasa, seed model va suhbatdan olinadi, shuning uchun ikki marta yuborilgan bir xil so'rov bir xil seed'dan foydalanadi. Xostingdagi open-weight modellar
stop string | array Satr yoki satrlar massivi. 4 tagacha ishlatiladi. Javob paydo bo'lgan birinchisidan oldin tugaydi; to'xtash matnining o'zi qaytarilmaydi. Xostingdagi open-weight modellar
reasoning_effort string high Model javob berishdan oldin qanchalik mulohaza qilishi: off, low, medium yoki high. none va minimal offni, default mediumni, max esa highni bildiradi. Boshqa har qanday qiymat 400 qaytaradi. Xostingdagi open-weight modellar
reasoning object Xuddi shu sozlama obyekt shaklida: {"effort": "low"}. Ikkalasi yuborilsa, reasoning_effort ishlatiladi. Xostingdagi open-weight modellar
tools array Model chaqirishi mumkin bo'lgan funksiyalar, har biri {"type": "function", "function": {"name", "description", "parameters"}} shaklida. Modelning chaqiruvlari tool_callsda qaytadi; ularni kodingiz bajaradi. Barcha modellar
tool_choice string | object auto "auto" modelga o'zi qaror qilishga imkon beradi. "required" uni tool chaqirishga majbur qiladi. {"type": "function", "function": {"name": "…"}} aynan o'sha tool'ni chaqirishga majbur qiladi. Xostingdagi open-weight modellar
response_format object JSON javob uchun {"type": "json_object"}, sxemangizga amal qiladigan javob uchun esa {"type": "json_schema", "json_schema": {…}}. Barcha Shannon darajalari; xostingdagi open-weight modellar har bir id uchun ko'rsatilganidek
web_search boolean false true modelga javob berishdan oldin veb'da qidirishga imkon beradi. shannon-1.6-*, shannon-2-*, Shannon 3 oilasi

Boshqa OpenAI maydonlari, masalan n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store va prompt_cache_key, mavjud mijoz kodi o'zgarishsiz ishlashi uchun qabul qilinadi. Ular javobni o'zgartirmaydi: doim bitta choice bor va oqim doim usage bilan tugaydi.

Noto'g'ri JSON turidagi maydon, masalan "max_tokens": "100", 422 qaytaradi. messagessiz so'rov ham shunday.

Tool'lar, tuzilmali chiqish, mulohaza va veb-qidiruvning har birining o'z sahifasi bor: Funksiya chaqirish, Tuzilgan chiqishlar, Mulohaza darajasi, O‘rnatilgan veb qidiruv.

Parametrlar bilan so'rov

Bu so'rov system xabari, sampling maydonlari va mulohaza darajasini belgilaydi. U xostingdagi open-weight modeldan foydalanadi, u hammasini qo'llaydi.

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)

Javob yuqoridagi bilan bir xil shaklda. Uning usage'i xostingdagi open-weight modellarda ikkita tafsilot qo'shadi: keshdan o'qilgan prompt tokenlari va mulohazaga sarflangan tokenlar.

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

Chiqish uzunligi

max_tokens ikki ish qiladi. Birinchidan, so'rov boshlanganda balansingizdan ajratib qo'yiladigan tokenlar soni shu. Javob to'liq bo'lgach, bu miqdor so'rov ishlatgan tokenlar bilan almashtiriladi. Agar max_tokens balansingizda qolgan miqdordan katta bo'lsa, javobning o'zi sig'sa ham so'rov 429 Quota exceeded qaytaradi. Kamroq ajratish uchun pastroq max_tokens yuboring.

shannon-coder-1 bu endpointda boshqacha hisoblanadi: har bir so'rov rejangizdagi Shannon Coder chaqiruvlaridan biri bo'ladi va uning uchun token ajratib qo'yilmaydi. Limitlar va balans

Ikkinchidan, u bu modellarda javob uzunligini cheklaydi:

Modellar max_tokens nima qiladi
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 Javob limitga yetganda to'xtaydi. Oqim bunda finish_reason length bilan tugaydi.
Xostingdagi open-weight modellar Javob matni max_tokensda to'xtaydi. Mulohaza unga hisoblanmaydi. 256 dan past qiymatlar 256 kabi ishlaydi.

max_tokens yoki max_completion_tokens bo'lmasa, qiymat 4,096. shannon-coder-1 da u 65,536.

Xabarlar

Har bir xabar — role va contentli obyekt. content — satr, xabar matndan ko'proq narsani olib kelsa esa qismlar massivi.

Rol Tavsif Qo'llaydi
system Model uchun ko'rsatmalar. Uni birinchi qo'ying. Shannon darajalarida birinchi system xabari ishlatiladi. Xostingdagi open-weight modellar, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer system sifatida o'qiladi. Xostingdagi open-weight modellar
user Siz so'raydigan narsa. Shannon darajalarida oxirgi user xabari prompt, undan oldingi xabarlar esa tarix hisoblanadi. Barcha modellar
assistant Modelning oldingi javoblari. Undan keyin tool natijasini yuborganda uning tool_callsini saqlang. Barcha modellar
tool Tool chaqiruvi natijasi: tool_call_id chaqiruv id'sini, content esa natijani satr sifatida o'z ichiga oladi. Barcha modellar

Shannon 3 oilasi id'sida bajarilishi shart bo'lgan ko'rsatmalarni user xabariga qo'ying.

Shannon darajalarida foydalanuvchi matni ham, tools ham bo'lmagan so'rov 400 No user message provided qaytaradi.

Kontent qismlari

Qism Tavsif Mavjud
{"type": "text", "text": "…"} Oddiy matn. Barcha modellar
{"type": "image_url", "image_url": {"url": "…"}} Rasm, base64 mazmunli data: URL yoki http(s) URL sifatida. Shannon 3 oilasi, shannon-1.6-lite, shannon-1.6-pro va rasm kirishini ko'rsatgan xostingdagi open-weight modellar
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Hujjat (PDF, Word, PowerPoint yoki Excel), base64 yoki URL orqali. Shannon 3 oilasi

O'lchamlar, limitlar va shakllarning to'liq ro'yxati alohida sahifada. Rasmlar va fayllar

Javob obyekti

Maydon Tur Tavsif
id string chatcmpl- va undan keyin 32 ta o'n oltilik belgi.
object string Doim chat.completion.
created integer Javob vaqti, Unix soniyalarida.
model string Javob bergan modelning kanonik id'si. U siz yuborgan id'dan yozilishi bilan farq qilishi mumkin.
choices array Doim aynan bitta choice, index 0 bilan.
choices[0].message.role string Doim assistant.
choices[0].message.content string | null Javob matni. tool_calls bilan u Shannon darajalarida null; xostingdagi open-weight modellar chaqiruvlar yonida matn yuborishi mumkin.
choices[0].message.reasoning_content string | null Model javobdan oldin yozgan mulohaza, yoki u bo'lmasa null.
choices[0].message.tool_calls array Faqat model tool chaqirganda bo'ladi. Har bir elementda id, type function va name hamda JSON satri sifatida argumentsli function bor.
choices[0].message.annotations array Faqat web_search: true bilan yuborilgan va qidiruvi nimadir topgan so'rovda. content dagi belgi nomlagan har bir manba uchun bitta url_citation, url, title, start_index va end_index bilan (belgining o'rni, belgilar bilan sanalgan, oxiri kirmaydi).
choices[0].finish_reason string Javob nima uchun tugadi. Tugash sabablariga qarang.
usage object So'rov tokenlari. Usage'ga qarang.
sources array Faqat web_search: true bilan yuborilgan va qidiruvi nimadir topgan so'rovda: modelga berilgan natijalar, har biri index, title va url bilan. Javobdagi [1] index 1 bo'lgan yozuvdir.

Tugash sabablari

finish_reason Tavsif
stop Model javobini tugatdi yoki stop satri paydo bo'ldi.
tool_calls Model bir yoki bir nechta tool chaqiradi. Ularni bajaring va natijalarni tool xabarlarida yuboring.
length Javob chiqish limitida uzildi. shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 va Shannon 3 oilasi oqimlarida ko'rsatiladi.

Oqimsiz javob stop yoki tool_callsni ko'rsatadi.

Usage

Maydon Tur Tavsif Mavjud
usage.prompt_tokens integer Kirish tokenlari. Barcha modellar
usage.completion_tokens integer Chiqish tokenlari: mulohaza, javob va tool chaqiruvlari birgalikda. Barcha modellar
usage.total_tokens integer prompt_tokens plyus completion_tokens. Barcha modellar
usage.prompt_tokens_details.cached_tokens integer prompt_tokensning prompt keshidan o'qilgan qismi. Xostingdagi open-weight modellar
usage.completion_tokens_details.reasoning_tokens integer completion_tokensning mulohazaga sarflangan qismi. Xostingdagi open-weight modellar

Xostingdagi open-weight modellarda prompt_tokens — xabarlaringiz va tool ta'riflari modelning o'z tokenizatori bilan sanalgani, qo'shimcha ravishda rasmlar tokenlari. Token sanash endpointlari yuborishdan oldin xuddi shu sonni qaytaradi. Tokenlarni sanash

Shannon darajalarida prompt_tokens model javob yozish uchun o'qigan hamma narsani sanaydi, shuning uchun u faqat xabarlaringiz matnidan kattaroq bo'ladi.

Streaming

stream true bo'lganda javob chat.completion.chunk hodisalari sifatida keladi va data: [DONE] bilan tugaydi. Undan oldingi oxirgi chunk finish_reason va usageni olib keladi; stream_options kerak emas. Chunk shakllari, keep-alive satrlari va oqim ichidagi xatolar alohida sahifada. Oqim

Xatolar

Xato — error a'zosi bor JSON obyekti. Tekshiruvlar shu tartibda bajariladi: API kalit, so'rov tanasi, model id, so'ng balans. Jadvalda bu endpoint eng ko'p qaytaradigan xatolar keltirilgan. To'liq ro'yxat, nimani qayta urinish kerakligi bilan, alohida sahifada. Xatolarni boshqarish

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Holat Tur Xabar Qachon
401 authentication_error Missing authentication
Invalid API key
API kalit yuborilmagan yoki kalit noma'lum yoxud bekor qilingan.
400 invalid_request_error unknown model: <id> model e'lon qilingan id emas.
400 invalid_request_error No user message provided Shannon darajalari: so'rovda foydalanuvchi matni ham, tools ham yo'q.
400 invalid_request_error <id> does not accept image input Rasm kirishi yo'q xostingdagi open-weight modelga rasm qismi yuborilgan.
400 invalid_request_error <id> does not accept response_format Tuzilmali chiqishi yo'q xostingdagi open-weight modelga response_format yuborilgan.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning_effort ro'yxatdan tashqaridagi qiymatni o'z ichiga oladi.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … messages yo'q yoki biror maydon noto'g'ri JSON turida.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens balansingizda qolgan miqdordan katta.
429 rate_limit_error Too many requests. Retry in <n>s. Flood himoyasi: hisobingizdan bir daqiqada 120 tadan ortiq so'rov.
500 server_error The model backend failed to answer. Please retry. Model javob yaratmadi. So'rovni qayta yuboring.
502 api_error The model backend failed to answer. Please retry. Xuddi shu, Shannon 3 oilasi va xostingdagi open-weight modellarda.