Անցնել բովանդակությանը
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
  }
}

Headers

Հարցման 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 Յուրաքանչյուր պատասխանում, ներառյալ սխալները և հոսքերը. ձեր ուղարկած արժեքը, կամ 12 տասնվեցական նիշ, եթե ոչինչ չեք ուղարկել։ Նշեք այն, երբ հայտնում եք խնդրի մասին։
content-type application/json, կամ text/event-stream, երբ stream-ը true է։

Հարցման դաշտեր

Պարտադիր է միայն 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 Տող կամ տողերի զանգված։ Օգտագործվում են մինչև 4-ը։ Պատասխանն ավարտվում է դրանցից առաջինի հայտնվելուց առաջ. stop տեքստն ինքը չի վերադարձվում։ Hosted open-weight մոդելներ
reasoning_effort string high Որքան է մոդելը տրամաբանում պատասխանելուց առաջ՝ 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"-ը ստիպում է կանչել գործիք։ {"type": "function", "function": {"name": "…"}}-ը ստիպում է կանչել հենց այդ գործիքը։ Hosted open-weight մոդելներ
response_format object {"type": "json_object"}՝ JSON պատասխանի համար, կամ {"type": "json_schema", "json_schema": {…}}՝ ձեր schema-ին հետևող պատասխանի համար։ Shannon բոլոր մակարդակները. hosted open-weight մոդելները՝ ըստ id-ների ցանկի
web_search boolean false true-ը թույլ է տալիս մոդելին պատասխանելուց առաջ որոնել համացանցում։ shannon-1.6-*, shannon-2-*, Shannon 3 ընտանիք

OpenAI-ի մյուս դաշտերը, ինչպիսիք են n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store և prompt_cache_key, ընդունվում են, որպեսզի առկա կլիենտային կոդը աշխատի առանց փոփոխության։ Դրանք չեն փոխում պատասխանը. միշտ կա մեկ choice, և հոսքը միշտ ավարտվում է usage-ով։

Սխալ JSON տեսակ ունեցող դաշտը, օրինակ՝ "max_tokens": "100", վերադարձնում է 422։ Նույնը վերաբերում է messages-ից զուրկ հարցմանը։

Գործիքները, կառուցվածքային արդյունքը, 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-ը ավելացնում է երկու մանրամասն՝ cache-ից կարդացված 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 Պատասխանը կանգ է առնում, երբ հասնում է սահմանաչափին։ Այդ դեպքում հոսքն ավարտվում է 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-ը տող է, կամ մասերի զանգված, երբ հաղորդագրությունը տեքստից բացի այլ բան է կրում։

Դեր Նկարագրություն Կիրառվում է
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_calls-ը, երբ դրանից հետո ուղարկում եք գործիքի արդյունք։ Բոլոր մոդելները
tool Գործիքի կանչի արդյունքը. tool_call_id-ը պարունակում է կանչի id-ն, իսկ content-ը՝ արդյունքը որպես տող։ Բոլոր մոդելները

Shannon 3 ընտանիքի id-ի դեպքում պարտադիր հրահանգները դրեք user հաղորդագրության մեջ։

Shannon մակարդակներում օգտատիրոջ տեքստ և tools չունեցող հարցումը վերադարձնում է 400 No user message provided։

Բովանդակության մասեր

Մաս Նկարագրություն Հասանելի է
{"type": "text", "text": "…"} Պարզ տեքստ։ Բոլոր մոդելները
{"type": "image_url", "image_url": {"url": "…"}} Պատկեր՝ որպես data: URL base64 բովանդակությամբ կամ որպես 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 Առկա է միայն այն դեպքում, երբ մոդելը կանչում է գործիքներ։ Յուրաքանչյուր գրառում ունի id, type function և function՝ name-ով և arguments-ով՝ որպես JSON տող։
choices[0].message.annotations array Միայն web_search: true ունեցող հարցման վրա, որի որոնումը ինչ-որ բան է գտել։ Մեկ url_citation content-ում նշիչի անվանած յուրաքանչյուր աղբյուրի համար՝ 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 տողը։
tool_calls Մոդելը կանչում է մեկ կամ մի քանի գործիք։ Կատարեք դրանք և արդյունքները ուղարկեք tool հաղորդագրություններով։
length Պատասխանը կտրվել է ելքի սահմանաչափում։ Նշվում է shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 և Shannon 3 ընտանիքի հոսքերում։

Հոսքով չուղարկված պատասխանը նշում է stop կամ tool_calls։

Usage

Դաշտ Տեսակ Նկարագրություն Հասանելի է
usage.prompt_tokens integer Մուտքի թոքեններ։ Բոլոր մոդելները
usage.completion_tokens integer Ելքի թոքեններ՝ reasoning, պատասխան և գործիքների կանչեր միասին։ Բոլոր մոդելները
usage.total_tokens integer prompt_tokens գումարած completion_tokens։ Բոլոր մոդելները
usage.prompt_tokens_details.cached_tokens integer prompt_tokens-ի այն մասը, որը կարդացվել է prompt cache-ից։ Hosted open-weight մոդելներ
usage.completion_tokens_details.reasoning_tokens integer completion_tokens-ի այն մասը, որը ծախսվել է reasoning-ի վրա։ Hosted open-weight մոդելներ

Hosted open-weight մոդելների վրա prompt_tokens-ը ձեր հաղորդագրություններն ու գործիքների սահմանումներն են՝ հաշվված մոդելի սեփական tokenizer-ով, գումարած պատկերների թոքենները։ Թոքենների հաշվարկի endpoint-ները նույն թիվը վերադարձնում են ուղարկելուց առաջ։ Թոքենների հաշվարկ

Shannon մակարդակներում prompt_tokens-ը հաշվում է այն ամենը, ինչ մոդելը կարդացել է պատասխանը գրելու համար, ուստի այն մեծ է միայն ձեր հաղորդագրությունների տեքստից։

Streaming

Երբ stream-ը true է, պատասխանը գալիս է որպես chat.completion.chunk իրադարձություններ և ավարտվում է data: [DONE]-ով։ Դրանից առաջ վերջին chunk-ը կրում է finish_reason և usage. stream_options պետք չեն։ Chunk-երի կառուցվածքները, keep-alive տողերը և հոսքի ներսի սխալներն ունեն իրենց էջը։ Ստրիմինգ

Սխալներ

Սխալը JSON օբյեկտ է error անդամով։ Ստուգումները կատարվում են այս հերթականությամբ՝ API բանալի, հարցման մարմին, մոդելի 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 response_format է ուղարկվել hosted open-weight մոդելին, որը կառուցվածքային արդյունք չունի։
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-պաշտպանություն. ձեր հաշվից մեկ րոպեում ավելի քան 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 մոդելներում։