Гузариш ба мундариҷа
Anthropic

Anthropic

POST /v1/messages дархостро дар формати Anthropic Messages қабул мекунад ва бо ҳамон формат ҷавоб медиҳад, streaming ё не. Онро бо SDK-и Anthropic ва абзорҳои болояш сохташуда, ба монанди Claude Code, истифода баред: base URL-ро танзим кунед, калиди API-и Shannon-и худро истифода баред ва id-и модели Shannon-ро номбар кунед.

POST https://api.shannon-ai.com/v1/messages

SDK-и Anthropic-ро ба base URL-и Shannon равона кунед. SDK /v1/messages-ро илова мекунад ва калиди шуморо дар сарлавҳаи x-api-key мефиристад.

import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com",
)

message = client.messages.create(
    model="shannon-3",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Say hello in one sentence."}],
)

for block in message.content:
    if block.type == "text":
        print(block.text)

Ҷавоб паёмест, ки content-и он рӯйхати блокҳост. Блокҳоро аз рӯи type-и онҳо ёбед: вақте ки модел reasoning кардааст, блоки аввал thinking аст ва матн пас аз он меояд.

200 JSON
{
  "id": "msg_5f0c1e7a9b3d4c62a8e1f07d2b46c9a3",
  "type": "message",
  "role": "assistant",
  "model": "shannon-3",
  "content": [
    {
      "type": "thinking",
      "thinking": "The user wants a greeting in one sentence. Keep it short and friendly."
    },
    {
      "type": "text",
      "text": "Hello, it is good to meet you."
    }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 1184,
    "output_tokens": 46
  }
}

Сарлавҳаҳо

Сарлавҳа Қимат Тавсиф
x-api-key YOUR_API_KEY Калиди API-и шумо. Authorization: Bearer YOUR_API_KEY ба ҷои он қабул мешавад.
content-type application/json Ҳатмӣ.
anthropic-version 2023-06-01 Қабул мешавад, ҳатмӣ нест. SDK-и Anthropic 2023-06-01-ро мефиристад; ҷавоб новобаста аз қимат ҳамон формат дорад.
anthropic-beta Қабул мешавад, ҳатмӣ нест.
x-request-id Ихтиёрӣ. Id-и худи шумо барои дархост. Он дар ҷавоб бетағйир бармегардад; бе он ҷавоб id-и 12 аломати шонздаҳӣ дорад.

Майдонҳои дархост

Танҳо messages ҳатмист. Сутуни Татбиқ мекунад моделҳоеро номбар мекунад, ки дар онҳо майдон ҷавобро тағйир медиҳад. Моделҳои open-weight-и хостшуда дувоздаҳ id-и рӯйхати моделҳо мебошанд; оилаи Shannon 3 shannon-3, shannon-3-pro, shannon-3.1 ва shannon-3.1-pro мебошад. Моделҳо ва нархҳо

Майдон Навъ Пешфарз Тавсиф Татбиқ мекунад
model string shannon-1.6-lite Id-и модели Shannon аз рӯйхати моделҳо. Онро бо ҳар дархост фиристед. Мутобиқат ба регистр ҳассос нест. Ҳар номи дигар 400 unknown model бармегардонад, бинобар ин абзоре, ки номҳои моделҳои худро мефиристад, бояд ба id-и Shannon танзим шавад. Ҳамаи моделҳо
messages array Ҳатмӣ. Гуфтугӯ, паёми кӯҳнатарин аввал, бо нақшҳои user ва assistant. Поёнтар Паёмҳо ва блокҳои мундариҷаро бинед. Ҳамаи моделҳо
system string | array Дастур барои модел: сатр ё массиви блокҳои матнӣ. Поёнтар System prompt-ро бинед. Моделҳои open-weight-и хостшуда, shannon-1.6-*, shannon-2-*, shannon-coder-1
max_tokens integer 4096 Ҳадди болоии ҷавоб, бо токен. Дар ин endpoint ихтиёрист; SDK-и Anthropic онро ҳамеша мефиристад. Қимате берун аз 1 то 65,536 ба ин диапазон оварда мешавад. Ҳамчунин ин миқдорест, ки ҳангоми иҷрои дархост аз балансатон ҷудо карда мешавад. Моделҳои open-weight-и хостшуда, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
stream boolean false true ҷавобро ҳамчун рӯйдодҳои фиристодаи сервер мефиристад. Поёнтар Streaming-ро бинед. Ҳамаи моделҳо
temperature number Ҳарорати намунагирӣ. Дар моделҳои open-weight-и хостшуда қиматҳо дар байни 0 ва 2 нигоҳ дошта мешаванд. Моделҳои open-weight-и хостшуда, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number Намунагирии nucleus. Моделҳои open-weight-и хостшуда
stop_sequences array То 4 сатр. Ҷавоб пеш аз аввалинаш, ки пайдо мешавад, тамом мешавад. stop_reason end_turn мемонад. Моделҳои open-weight-и хостшуда
tools array Абзорҳое, ки модел даъват карда метавонад, ҳар кадом ҳамчун {"name", "description", "input_schema"}. Поёнтар Tools-ро бинед. Ҳамаи моделҳо
tool_choice object {"type": "auto"} ихтиёрро ба модел мегузорад, {"type": "any"} моделро ба даъвати абзор маҷбур мекунад, {"type": "tool", "name": "…"} онро ба даъвати ҳамон абзор маҷбур мекунад. Моделҳои open-weight-и хостшуда
thinking object Модел то ҷавоб додан чӣ қадар reasoning мекунад. Поёнтар Thinking-ро бинед. Моделҳои open-weight-и хостшуда
web_search boolean false Иловаи Shannon ба формат: true ба модел имкон медиҳад, ки пеш аз ҷавоб дар веб ҷустуҷӯ кунад. shannon-1.6-*, shannon-2-*, оилаи Shannon 3

Бе max_tokens қимат 4,096 аст, ва дар shannon-coder-1 65,536.

metadata, top_k, service_tier ва нишонаҳои cache_control дар блокҳо қабул мешаванд, то коди мавҷудаи клиент бетағйир кор кунад. Онҳо ҷавобро тағйир намедиҳанд; кэшкунии prompt дар моделҳои open-weight-и хостшуда худкор аст.

Ҷавоби JSON мувофиқи схема дар Chat Completions бо response_format ва дар Responses бо text.format дархост карда мешавад. Баромадҳои сохторӣ

Дархост бо system prompt ва thinking

Ин дархост system prompt, буҷаи thinking, ҳарорат ва пайдарпаии таваққуфро мефиристад. Он модели open-weight-и хостшударо истифода мебарад, ки ҳамаи инҳоро татбиқ мекунад.

import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com",
)

message = client.messages.create(
    model="DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
    max_tokens=4096,
    system="You are a physics teacher. Answer in two sentences.",
    thinking={"type": "enabled", "budget_tokens": 2048},
    temperature=0.3,
    stop_sequences=["\n\n"],
    messages=[{"role": "user", "content": "Why is the sky blue?"}],
)

for block in message.content:
    if block.type == "thinking":
        print("reasoning:", block.thinking)
    elif block.type == "text":
        print("answer:", block.text)
print(message.usage)

Дар моделҳои open-weight-и хостшуда usage токенҳои аз кэши prompt хондашударо ҷудо аз дигар токенҳои вуруд ҳисобот медиҳад.

200 JSON
{
  "usage": {
    "input_tokens": 31,
    "cache_read_input_tokens": 0,
    "cache_creation_input_tokens": 0,
    "output_tokens": 62
  }
}

System prompt

system сатр ё массиви блокҳои матнӣ дар шакли [{"type": "text", "text": "…"}] аст. Матнҳои блокҳо бо хати нав пайваст карда мешаванд.

Онро моделҳои open-weight-и хостшуда, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro ва shannon-coder-1 татбиқ мекунанд. Бо id-и оилаи Shannon 3 дастурҳоеро, ки бояд риоя шаванд, ба паёми корбар гузоред.

Паёмҳо ва блокҳои мундариҷа

Паём role дорад, user ё assistant, ва content. content сатр ё массиви блокҳо аст.

Блок Тавсиф Дастрас дар
{"type": "text", "text": "…"} Матн. Ҳамаи моделҳо
{"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "…"}}
{"type": "image", "source": {"type": "url", "url": "…"}}
Тасвир дар паёми user, ҳамчун base64 ё тавассути URL. Оилаи Shannon 3, shannon-1.6-lite, shannon-1.6-pro ва моделҳои open-weight-и хостшуда, ки вуруди тасвирро нишон медиҳанд
{"type": "document", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Ҳуҷҷат (PDF, Word, PowerPoint ё Excel) дар паёми user, ҳамчун base64 ё тавассути URL. Оилаи Shannon 3
{"type": "tool_use", "id": "toolu_…", "name": "…", "input": {…}} Дар паёми assistant: даъвати абзоре, ки модел дар ҷавоби қаблӣ анҷом додааст. Ҳамаи моделҳо
{"type": "tool_result", "tool_use_id": "toolu_…", "content": "…"} Дар паёми user: натиҷаи он даъват. content сатр ё рӯйхати блокҳои матнӣ аст. Ҳамаи моделҳо

Шумо content-и ҷавоби қаблиро метавонед бетағйир баргардонед: блокҳои text ва tool_use хонда мешаванд, блокҳои thinking гузаронида мешаванд.

Дар сатҳҳои Shannon тасвирҳо ва ҳуҷҷатҳо аз паёми охирини user хонда мешаванд. Андозаҳо ва маҳдудиятҳо саҳифаи худро доранд. Тасвирҳо ва файлҳо

Thinking

Моделҳои open-weight-и хостшуда thinking-ро ба сатҳи кӯшиши reasoning табдил медиҳанд. Бе майдон сатҳи кӯшиш баланд аст.

Шакл budget_tokens Таъсир
{"type": "disabled"} Бе reasoning. Ҷавоб блоки thinking надорад.
{"type": "enabled", "budget_tokens": 2048} ≤ 2,048 Кӯшиши паст.
{"type": "enabled", "budget_tokens": 8192} ≤ 8,192 Кӯшиши миёна.
{"type": "enabled", "budget_tokens": 16000} > 8,192 Кӯшиши баланд.

Модели reasoning-кунанда reasoning-и худро ҳамчун блоки {"type": "thinking", "thinking": "…"} пеш аз матн бармегардонад. Сатҳҳои Shannon, ки reasoning мекунанд, онро низ мефиристанд.

Сатҳҳои кӯшиш дар саҳифаи худ тавсиф шудаанд. Сатҳи кӯшиши reasoning

Абзорҳо

Абзор функсияест, ки коди шумо иҷро мекунад. Ҳар якро бо name, description ва input_schema тавсиф кунед. Вақте ки модел абзор мехоҳад, ҷавоб блоки tool_use-ро дорад ва stop_reason — tool_use аст.

Таърифи абзор дар tools:

tools
[
  {
    "name": "get_weather",
    "description": "Current weather for a city.",
    "input_schema": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        }
      },
      "required": [
        "city"
      ]
    }
  }
]

content-и ҷавобе, ки онро даъват мекунад:

200 content
[
  {
    "type": "text",
    "text": ""
  },
  {
    "type": "tool_use",
    "id": "toolu_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
    "name": "get_weather",
    "input": {
      "city": "Paris"
    }
  }
]

Абзорро иҷро кунед, баъд дархостро бори дигар бо даъват ва блоки tool_result, ки ба messages илова шудаанд, фиристед:

messages
[
  {
    "role": "user",
    "content": "What is the weather in Paris?"
  },
  {
    "role": "assistant",
    "content": [
      {
        "type": "tool_use",
        "id": "toolu_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
        "name": "get_weather",
        "input": {
          "city": "Paris"
        }
      }
    ]
  },
  {
    "role": "user",
    "content": [
      {
        "type": "tool_result",
        "tool_use_id": "toolu_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
        "content": "{\"temperature_c\": 18, \"sky\": \"cloudy\"}"
      }
    ]
  }
]

tool_choice

Шакл Таъсир Татбиқ мекунад
{"type": "auto"} Модел худаш қарор медиҳад, ки абзорро даъват кунад ё не. Ин пешфарз аст. Ҳамаи моделҳо
{"type": "any"} Модел бояд яке аз абзорҳоро даъват кунад. Моделҳои open-weight-и хостшуда
{"type": "tool", "name": "…"} Модел бояд абзори номбаршударо даъват кунад. Моделҳои open-weight-и хостшуда

Танҳо абзорҳо бо input_schema хонда мешаванд. Ҷустуҷӯи веб дар ин endpoint абзор нест: майдони web_search-ро танзим кунед.

Ҳалқаи абзорҳо дар саҳифаи худ пурра тавсиф шудааст. Даъвати функсия

Ҷавоб

Майдон Навъ Тавсиф Фиристанда
id string msg_ ва пас аз он 32 аломати шонздаҳӣ. Ҳамаи моделҳо
type string Ҳамеша message. Ҳамаи моделҳо
role string Ҳамеша assistant. Ҳамаи моделҳо
model string Id-и асосии моделе, ки ҷавоб дод. Ҳамаи моделҳо
content array Блокҳои ҷавоб, бо ин тартиб: thinking вақте ки модел reasoning кардааст, text, баъд як tool_use барои ҳар даъвати абзор. Ҳамаи моделҳо
stop_reason string Чаро ҷавоб тамом шуд. Қиматҳои поёнро бинед. Ҳамаи моделҳо
usage object input_tokens ва output_tokens. Ҳамаи моделҳо
sources array Танҳо дар дархости дорои web_search: true, ки ҷустуҷӯяш чизе ёфтааст: натиҷаҳое, ки ба модел дода шудаанд, ҳар кадом бо index, title ва url. [1] дар ҷавоб сабти бо index 1 аст. Дар ҷараён он бо рӯйдоди message_delta меояд. shannon-1.6-*, shannon-2-*, оилаи Shannon 3
usage.cache_read_input_tokens integer cache_read_input_tokens қисми prompt аст, ки аз кэш хонда шудааст; input_tokens боқимонда аст. cache_creation_input_tokens ҳамеша 0 аст. Моделҳои open-weight-и хостшуда

Блокҳои ҷавоб

Блок Тавсиф
{"type": "thinking", "thinking": "…"} Reasoning-и модел. Узви signature вуҷуд надорад.
{"type": "text", "text": "…"} Матни ҷавоб. Вақте ки ҷавоб даъвати абзор аст, он метавонад холӣ бошад.
{"type": "tool_use", "id": "toolu_…", "name": "…", "input": {…}} Даъвати абзор. input объекти JSON аст. Натиҷаро бо ҳамон id баргардонед.

stop_reason

stop_reason Тавсиф Фиристанда
end_turn Модел ҷавоби худро тамом кард, ё яке аз stop_sequences-и шумо пайдо шуд. Ҳамаи моделҳо
tool_use Ҷавоб як ё якчанд даъвати абзорро дорад. Ҳамаи моделҳо
max_tokens Ҷавоб дар ҳадди баромад бурида шуд. Оилаи Shannon 3, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1, дар ҷараёнҳо

Streaming

Барои рӯйдодҳои фиристодаи сервер stream-ро ба true гузоред. Ҳар фрейм хати event: бо номи рӯйдод ва хати data: бо объекти JSON дорад, ки ном дар type такрор мешавад. Ёвариҳои ҷараёни SDK-и Anthropic ин рӯйдодҳоро барои шумо мехонанд:

import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com",
)

with client.messages.stream(
    model="shannon-3",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain server-sent events in three sentences."}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
    message = stream.get_final_message()

print()
print(message.stop_reason, message.usage)

Рӯйдодҳо, мувофиқи тартиби омадан:

Рӯйдод Маълумот Кай
message_start message Ҳамеша аввал. message id, нақш, модел, content-и холӣ ва usage-ро, ки аз сифр оғоз мешавад, дорад.
content_block_start index, content_block Блок кушода мешавад. content_block блоки холии text ё thinking аст, ё блоки tool_use бо id ва name-и худ.
content_block_delta index, delta {"type": "thinking_delta", "thinking"} Пораи reasoning, барои блоки thinking.
content_block_delta index, delta {"type": "text_delta", "text"} Пораи ҷавоб, барои блоки text.
content_block_delta index, delta {"type": "input_json_delta", "partial_json"} Аргументҳои даъвати абзор, дар як delta пурра, барои блоки tool_use.
content_block_stop index Блок бо ин index пурра шуд.
message_delta delta {stop_reason, stop_sequence}, usage Охири ҷавоб: delta.stop_reason ва usage-и дархост.
message_stop Ҳамеша охирин.

Блокҳо бо index мувофиқи тартиби кушодашавиашон рақамгузорӣ мешаванд ва як блок пеш аз кушодани блоки баъдӣ пурра мешавад. Ҳар блокро аз рӯи навъаш хонед, на аз рӯи рақамаш: ҷараён метавонад аввал блоки холии text, баъд блоки thinking-ро кушояд ва ҷавобро дар блоки баъдинаи text расонад.

200 text/event-stream
event: message_start
data: {"type":"message_start","message":{"id":"msg_5f0c…","type":"message","role":"assistant","model":"shannon-3","content":[],"usage":{"input_tokens":0,"output_tokens":0}}}

event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}

event: content_block_stop
data: {"type":"content_block_stop","index":0}

event: content_block_start
data: {"type":"content_block_start","index":1,"content_block":{"type":"thinking","thinking":""}}

event: content_block_delta
data: {"type":"content_block_delta","index":1,"delta":{"type":"thinking_delta","thinking":"Three sentences: what it is, how it is framed, why it is used."}}

event: ping
data: {"type": "ping"}

event: content_block_stop
data: {"type":"content_block_stop","index":1}

event: content_block_start
data: {"type":"content_block_start","index":2,"content_block":{"type":"text","text":""}}

event: content_block_delta
data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":"Server-sent events let a server push text over one HTTP reply."}}

event: content_block_stop
data: {"type":"content_block_stop","index":2}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":1190,"output_tokens":84}}

event: message_stop
data: {"type":"message_stop"}

Keep-alive

Фиристанда Тавсиф
Оилаи Shannon 3, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 Рӯйдоди ping бо маълумоти {"type": "ping"}, ҳар 15 сония.
Моделҳои open-weight-и хостшуда Хати эзоҳи : keepalive, ҳар 15 сония ҳангоми кори модел.

Ҷараёне, ки ноком мешавад

Нокомӣ пас аз оғози ҷараён ҳамчун рӯйдоди error бо ҳамон бадане меояд, ки ҷавоби хатогӣ: {"type": "error", "error": {"type", "message"}}. Рӯйдодҳои анҷомдиҳанда, message_delta ва message_stop, ҳамоно пайравӣ мекунанд. Ҷавобро ноком ҳисоб кунед ва дархостро бори дигар фиристед.

Хатогиҳо

Хатогиҳо бадани хатогии Anthropic-ро истифода мебаранд: type — error аст ва объекти error type ва message дорад. Ҷадвал он чиро нишон медиҳад, ки ин endpoint аксар вақт бармегардонад. Рӯйхати пурра, бо нишони он ки чӣ бояд такрор шавад, саҳифаи худро дорад. Идораи хатогиҳо

400 JSON
{
  "type": "error",
  "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-и модели Shannon нест.
400 invalid_request_error No user message provided Сатҳҳои Shannon: дархост матни корбар ва tools надорад.
400 invalid_request_error <id> does not accept image input Тасвир ба модели open-weight-и хостшуда фиристода шуд, ки вуруди тасвирро надорад.
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. Ҳифз аз дархостҳои аз ҳад зиёд: беш аз 120 дархост дар як дақиқа дар аккаунти шумо.
429 rate_limit_error Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan shannon-coder-1: даъватҳои Shannon Coder-и нақшаи шумо барои равзанаи 4-соатаи ҷорӣ истифода шудаанд.
500 server_error The model backend failed to answer. Please retry. Модел ҷавоб насохт. Дархостро бори дигар фиристед.
502 api_error The model backend failed to answer. Please retry. Модел ҷавоб насохт. Дархостро бори дигар фиристед.

Ҳисоби токенҳо

POST /v1/messages/count_tokens ҳамон баданеро қабул мекунад, ки дархости паём (model, system, messages, tools), ва {"input_tokens": n} бармегардонад: шумораи токенҳои вурудие, ки барои дархост ҳисоб карда мешавад. Он барои моделҳои open-weight-и хостшуда кор мекунад, ройгон аст ва аз ҷониби ҳифз аз дархостҳои аз ҳад зиёд ҳисоб карда намешавад.

import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com",
)

count = client.messages.count_tokens(
    model="DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
    system="You are a physics teacher. Answer in two sentences.",
    messages=[{"role": "user", "content": "Why is the sky blue?"}],
)

print(count.input_tokens)

Ҳисобкунӣ саҳифаи худро дорад, бо endpoint-и матни оддӣ ва маҳдудиятҳо. Ҳисоби токенҳо