Məzmuna keç
Chat Completions

Chat Completions

POST /v1/chat/completions söhbəti qəbul edir və modelin növbəti mesajını OpenAI Chat Completions formatında qaytarır. Onu istənilən OpenAI SDK-dan və ya sadə HTTP üzərindən istifadə edin; bu səhifə sahə-sahə soraqdır.

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

Ən kiçik sorğu model id-si və bir istifadəçi mesajıdır.

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)

Cavab bir JSON obyektidir:

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

Başlıqlar

Sorğu başlıqları

Başlıq Dəyər Təsvir
Authorization Bearer YOUR_API_KEY API açarınız. Onun əvəzinə hər endpoint-də x-api-key: YOUR_API_KEY qəbul edilir.
Content-Type application/json Məcburi. Hər hansı başqa dəyər 415 qaytarır.
x-request-id İxtiyari. Sorğu üçün öz id-niz. O, cavabda dəyişmədən qayıdır.

Cavab başlıqları

Başlıq Təsvir
x-request-id Hər cavabda, xətalar və axınlar daxil: göndərdiyiniz dəyər, heç nə göndərmədikdə isə 12 onaltılıq simvol. Problem bildirərkən onu qeyd edin.
content-type application/json, yaxud stream dəyəri true olduqda text/event-stream.

Sorğu sahələri

Yalnız messages məcburidir. Tətbiq edən sütunu sahənin cavabı dəyişdirdiyi modelləri göstərir. Host edilmiş açıq çəkili modellər model siyahısındakı on iki id-dir; Shannon 3 ailəsi shannon-3, shannon-3-pro, shannon-3.1 və shannon-3.1-pro-dur. Modellər və qiymətlər

Sahə Tip Defolt Təsvir Tətbiq edən
model string shannon-1.6-lite Cavab verən model: model siyahısından id. Hər sorğu ilə göndərin. Uyğunlaşdırma böyük-kiçik hərfə həssas deyil. Dərc olunmamış id 400 unknown model qaytarır. Bütün modellər
messages array Məcburi. Söhbət, ən köhnə mesaj birinci. Aşağıda Mesajlar bölməsinə baxın. Bütün modellər
stream boolean false true cavabı yazılarkən server-sent events kimi göndərir. Bütün modellər
max_tokens integer 4096 Cavabın token ilə yuxarı həddi. 1 ilə 65,536 aralığından kənar dəyər həmin aralığa gətirilir. Həmçinin sorğu işləyərkən balansınızdan ayrılan məbləğdir. Aşağıda Çıxış uzunluğu bölməsinə baxın. Host edilmiş açıq çəkili modellər, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer max_tokens ilə eynidir. Hər ikisi göndərildikdə max_tokens istifadə olunur. Host edilmiş açıq çəkili modellər, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Seçmə temperaturu. Host edilmiş açıq çəkili modellərdə defolt 1-dir və dəyərlər 0 ilə 2 arasında saxlanılır. Host edilmiş açıq çəkili modellər, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 Nucleus sampling. Dəyərlər 0 ilə 1 arasında saxlanılır. Host edilmiş açıq çəkili modellər
seed integer Sampler-in seed dəyəri, istənilən tam ədəd. Olmadıqda seed modeldən və söhbətdən törədilir, buna görə iki dəfə göndərilən eyni sorğu eyni seed-dən istifadə edir. Host edilmiş açıq çəkili modellər
stop string | array Sətir və ya sətirlər massivi. 4-ə qədəri istifadə olunur. Cavab görünən ilk sətirdən əvvəl bitir; dayanma mətninin özü qaytarılmır. Host edilmiş açıq çəkili modellər
reasoning_effort string high Modelin cavab verməzdən əvvəl nə qədər reasoning apardığı: off, low, medium və ya high. none və minimal off deməkdir, default medium deməkdir, max isə high deməkdir. Hər hansı başqa dəyər 400 qaytarır. Host edilmiş açıq çəkili modellər
reasoning object Eyni parametr obyekt formasında: {"effort": "low"}. Hər ikisi göndərildikdə reasoning_effort istifadə olunur. Host edilmiş açıq çəkili modellər
tools array Modelin çağıra biləcəyi funksiyalar, hər biri {"type": "function", "function": {"name", "description", "parameters"}} şəklində. Modelin çağırışları tool_calls daxilində qayıdır; kodunuz onları işlədir. Bütün modellər
tool_choice string | object auto "auto" modelin özünün qərar verməsinə icazə verir. "required" onu alət çağırmağa məcbur edir. {"type": "function", "function": {"name": "…"}} məhz həmin aləti çağırmağa məcbur edir. Host edilmiş açıq çəkili modellər
response_format object JSON cavabı üçün {"type": "json_object"}, sxeminizə uyğun cavab üçün isə {"type": "json_schema", "json_schema": {…}}. Bütün Shannon səviyyələri; host edilmiş açıq çəkili modellər hər id üçün göstərildiyi kimi
web_search boolean false true modelə cavab verməzdən əvvəl veb-də axtarış etməyə icazə verir. shannon-1.6-*, shannon-2-*, Shannon 3 ailəsi

Digər OpenAI sahələri, məsələn n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store və prompt_cache_key, mövcud klient kodu dəyişmədən işləsin deyə qəbul edilir. Onlar cavabı dəyişmir: həmişə bir choice olur və axın həmişə istifadə məlumatı ilə bitir.

JSON tipi yanlış olan sahə, məsələn "max_tokens": "100", 422 qaytarır. messages olmayan sorğu da belədir.

Alətlər, strukturlaşdırılmış çıxış, reasoning və veb axtarışının hər birinin ayrıca səhifəsi var: Funksiya çağırışı, Strukturlaşdırılmış çıxışlar, Reasoning effort, Veb axtarışı.

Seçimləri olan sorğu

Bu sorğu system mesajı, seçmə sahələri və reasoning effort təyin edir. O, hamısını tətbiq edən host edilmiş açıq çəkili modeldən istifadə edir.

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)

Cavab yuxarıdakı ilə eyni formadadır. Host edilmiş açıq çəkili modellərdə onun usage sahəsi iki təfərrüat əlavə edir: keşdən oxunan prompt tokenləri və reasoning-ə sərf olunan tokenlər.

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

Çıxış uzunluğu

max_tokens iki şey edir. Birincisi, sorğu başlayanda balansınızdan ayrılan tokenlərin sayıdır. Cavab tamamlandıqda həmin məbləğ sorğunun istifadə etdiyi tokenlərlə əvəz olunur. max_tokens balansınızda qalandan böyükdürsə, cavabın özü sığacaq olsa belə sorğu 429 Quota exceeded qaytarır. Daha az ayırmaq üçün daha kiçik max_tokens göndərin.

shannon-coder-1 bu endpoint-də fərqli sayılır: hər sorğu planınızın Shannon Coder çağırışlarından biridir və onun üçün token ayrılmır. Limitlər və balans

İkincisi, bu modellərdə cavabın uzunluğunu məhdudlaşdırır:

Modellər max_tokens nə edir
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 Cavab limitə çatdıqda dayanır. Axın bu halda finish_reason length ilə bitir.
Host edilmiş açıq çəkili modellər Cavab mətni max_tokens həddində dayanır. Reasoning ona daxil edilmir. 256-dan kiçik dəyərlər 256 kimi işləyir.

max_tokens və ya max_completion_tokens olmadıqda dəyər 4,096-dır. shannon-coder-1-də 65,536-dır.

Mesajlar

Hər mesaj role və content sahələri olan obyektdir. content sətir, yaxud mesaj mətndən çoxunu daşıyırsa hissələr massividir.

Rol Təsvir Tətbiq edən
system Model üçün təlimatlar. Onu birinci qoyun. Shannon səviyyələrində istifadə olunan ilk system mesajıdır. Host edilmiş açıq çəkili modellər, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer system kimi oxunur. Host edilmiş açıq çəkili modellər
user Nə soruşduğunuz. Shannon səviyyələrində son user mesajı promptdur, ondan əvvəlki mesajlar isə tarixçədir. Bütün modellər
assistant Modelin əvvəlki cavabları. Ondan sonra alət nəticəsi göndərdikdə onun tool_calls sahəsini saxlayın. Bütün modellər
tool Alət çağırışının nəticəsi: tool_call_id çağırışın id-sini, content isə nəticəni sətir kimi saxlayır. Bütün modellər

Shannon 3 ailəsinin id-si ilə, mütləq yerinə yetirilməli təlimatları user mesajına qoyun.

Shannon səviyyələrində istifadəçi mətni və tools olmayan sorğu 400 No user message provided qaytarır.

Məzmun hissələri

Hissə Təsvir Mövcud olduğu yer
{"type": "text", "text": "…"} Sadə mətn. Bütün modellər
{"type": "image_url", "image_url": {"url": "…"}} Şəkil, base64 məzmunlu data: URL kimi və ya http(s) URL kimi. Shannon 3 ailəsi, shannon-1.6-lite, shannon-1.6-pro və şəkil girişini dəstəkləyən host edilmiş açıq çəkili modellər
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Sənəd (PDF, Word, PowerPoint və ya Excel), base64 şəklində və ya URL ilə. Shannon 3 ailəsi

Ölçülər, limitlər və formaların tam siyahısı üçün ayrıca səhifə var. Təsvirlər və fayllar

Cavab obyekti

Sahə Tip Təsvir
id string chatcmpl- və ardınca 32 onaltılıq simvol.
object string Həmişə chat.completion.
created integer Cavabın vaxtı, Unix saniyələri ilə.
model string Cavab verən modelin kanonik id-si. O, göndərdiyiniz id-dən yazılış baxımından fərqlənə bilər.
choices array Həmişə index 0 olan dəqiq bir choice.
choices[0].message.role string Həmişə assistant.
choices[0].message.content string | null Cavab mətni. tool_calls olduqda Shannon səviyyələrində null olur; host edilmiş açıq çəkili modellər çağırışların yanında mətn də göndərə bilər.
choices[0].message.reasoning_content string | null Modelin cavabdan əvvəl yazdığı reasoning, yoxdursa null.
choices[0].message.tool_calls array Yalnız model alətləri çağırdıqda olur. Hər elementdə id, type (function) və name ilə JSON sətri kimi arguments olan function var.
choices[0].message.annotations array Yalnız web_search: true olan və axtarışı nəsə tapan sorğuda. content-dəki işarənin adlandırdığı hər mənbə üçün bir url_citation, url, title, start_index və end_index ilə (işarənin mövqeyi, simvollarla sayılır, son daxil deyil).
choices[0].finish_reason string Cavabın niyə bitdiyi. Bitmə səbəblərinə baxın.
usage object Sorğunun tokenləri. İstifadə bölməsinə baxın.
sources array Yalnız web_search: true olan və axtarışı nəsə tapan sorğuda: modelə verilən nəticələr, hər biri index, title və url ilə. Cavabdakı [1] index 1 olan qeyddir.

Bitmə səbəbləri

finish_reason Təsvir
stop Model cavabını bitirdi və ya stop sətri göründü.
tool_calls Model bir və ya bir neçə alət çağırır. Onları işlədin və nəticələri tool mesajlarında göndərin.
length Cavab çıxış limitində kəsildi. shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 və Shannon 3 ailəsinin axınlarında bildirilir.

Axınsız cavab stop və ya tool_calls bildirir.

İstifadə

Sahə Tip Təsvir Mövcud olduğu yer
usage.prompt_tokens integer Giriş tokenləri. Bütün modellər
usage.completion_tokens integer Çıxış tokenləri: reasoning, cavab və alət çağırışları birlikdə. Bütün modellər
usage.total_tokens integer prompt_tokens üstəgəl completion_tokens. Bütün modellər
usage.prompt_tokens_details.cached_tokens integer prompt_tokens hissəsindən prompt keşindən oxunan hissə. Host edilmiş açıq çəkili modellər
usage.completion_tokens_details.reasoning_tokens integer completion_tokens hissəsindən reasoning-ə sərf olunan hissə. Host edilmiş açıq çəkili modellər

Host edilmiş açıq çəkili modellərdə prompt_tokens mesajlarınızın və alət təyinlərinin modelin öz tokenizer-i ilə sayılması üstəgəl hər hansı şəkillərin tokenləridir. Token sayma endpoint-ləri göndərməzdən əvvəl eyni ədədi qaytarır. Tokenlərin sayılması

Shannon səviyyələrində prompt_tokens modelin cavabı yazmaq üçün oxuduğu hər şeyi sayır, buna görə o, təkcə mesajlarınızın mətnindən böyükdür.

Streaming

stream dəyəri true olduqda cavab chat.completion.chunk hadisələri kimi gəlir və data: [DONE] ilə bitir. Ondan əvvəlki son chunk finish_reason və usage daşıyır; stream_options lazım deyil. Chunk formaları, keep-alive sətirləri və axın daxilindəki xətaların ayrıca səhifəsi var. Axın

Xətalar

Xəta error üzvü olan JSON obyektidir. Yoxlamalar bu ardıcıllıqla aparılır: API açarı, sorğu gövdəsi, model id-si, sonra balans. Cədvəldə bu endpoint-in ən çox qaytardıqları göstərilib. Təkrar cəhd ediləcəklərlə birgə tam siyahı ayrıca səhifədədir. Xəta idarəetməsi

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Status Tip Mesaj Nə vaxt
401 authentication_error Missing authentication
Invalid API key
API açarı göndərilməyib, ya da açar tanınmır və ya ləğv edilib.
400 invalid_request_error unknown model: <id> model dərc olunmuş id deyil.
400 invalid_request_error No user message provided Shannon səviyyələri: sorğuda istifadəçi mətni və tools yoxdur.
400 invalid_request_error <id> does not accept image input Şəkil girişi olmayan host edilmiş açıq çəkili modelə şəkil hissəsi göndərilib.
400 invalid_request_error <id> does not accept response_format Strukturlaşdırılmış çıxışı olmayan host edilmiş açıq çəkili modelə response_format göndərilib.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning_effort siyahıdan kənar dəyər saxlayır.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … messages yoxdur və ya sahənin JSON tipi yanlışdır.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens balansınızda qalandan böyükdür.
429 rate_limit_error Too many requests. Retry in <n>s. Flood protection: hesabınızdan bir dəqiqədə 120-dən çox sorğu göndərilib.
500 server_error The model backend failed to answer. Please retry. Model cavab yaratmadı. Sorğunu yenidən göndərin.
502 api_error The model backend failed to answer. Please retry. Shannon 3 ailəsində və host edilmiş açıq çəkili modellərdə eynidir.