Məzmuna keç
Anthropic

Anthropic

POST /v1/messages Anthropic Messages formatında sorğu qəbul edir və eyni formatda cavab verir, axınla və ya axınsız. Onu Anthropic SDK ilə və Claude Code kimi onun üzərində qurulmuş alətlərlə istifadə edin: əsas URL-i təyin edin, Shannon API açarınızı istifadə edin və Shannon model id-si göstərin.

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

Anthropic SDK-nı Shannon əsas URL-nə yönəldin. SDK /v1/messages yolunu əlavə edir və açarınızı x-api-key başlığında göndərir.

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)

Cavab content sahəsi bloklar siyahısı olan mesajdır. Blokları type ilə tapın: model reasoning aparıbsa, birinci blok thinking olur, mətn isə ondan sonra gəlir.

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

Başlıqlar

Başlıq Dəyər Təsvir
x-api-key YOUR_API_KEY API açarınız. Onun əvəzinə Authorization: Bearer YOUR_API_KEY qəbul edilir.
content-type application/json Məcburi.
anthropic-version 2023-06-01 Qəbul edilir, məcburi deyil. Anthropic SDK 2023-06-01 göndərir; dəyərdən asılı olmayaraq cavab eyni formatdadır.
anthropic-beta Qəbul edilir, məcburi deyil.
x-request-id İxtiyari. Sorğu üçün öz id-niz. O, cavabda dəyişmədən qayıdır; olmadıqda cavabda 12 onaltılıq simvoldan ibarət id olur.

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 Model siyahısından Shannon model id-si. Hər sorğu ilə göndərin. Uyğunlaşdırma böyük-kiçik hərfə həssas deyil. Hər hansı başqa ad 400 unknown model qaytarır, buna görə öz model adlarını göndərən alət Shannon id-sinə qurulmalıdır. Bütün modellər
messages array Məcburi. Söhbət, ən köhnə mesaj birinci, user və assistant rolları ilə. Aşağıda Mesajlar və məzmun blokları bölməsinə baxın. Bütün modellər
system string | array Model üçün təlimatlar: sətir və ya mətn blokları massivi. Aşağıda System prompt bölməsinə baxın. Host edilmiş açıq çəkili modellər, shannon-1.6-*, shannon-2-*, shannon-coder-1
max_tokens integer 4096 Cavabın token ilə yuxarı həddi. Bu endpoint-də məcburi deyil; Anthropic SDK onu həmişə göndərir. 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. Host edilmiş açıq çəkili modellər, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
stream boolean false true cavabı server-sent events kimi göndərir. Aşağıda Streaming bölməsinə baxın. Bütün modellər
temperature number Seçmə temperaturu. Host edilmiş açıq çəkili modellərdə 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 Nucleus sampling. Host edilmiş açıq çəkili modellər
stop_sequences array 4-ə qədər sətir. Cavab görünən ilk sətirdən əvvəl bitir. stop_reason end_turn olaraq qalır. Host edilmiş açıq çəkili modellər
tools array Modelin çağıra biləcəyi alətlər, hər biri {"name", "description", "input_schema"} şəklində. Aşağıda Tools bölməsinə baxın. Bütün modellər
tool_choice object {"type": "auto"} modelin özünün qərar verməsinə icazə verir, {"type": "any"} onu alət çağırmağa məcbur edir, {"type": "tool", "name": "…"} isə məhz həmin aləti çağırmağa məcbur edir. Host edilmiş açıq çəkili modellər
thinking object Modelin cavab verməzdən əvvəl nə qədər reasoning apardığı. Aşağıda Thinking bölməsinə baxın. Host edilmiş açıq çəkili modellər
web_search boolean false Formata Shannon əlavəsi: true modelə cavab verməzdən əvvəl veb-də axtarış etməyə icazə verir. shannon-1.6-*, shannon-2-*, Shannon 3 ailəsi

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

Mövcud klient kodu dəyişmədən işləsin deyə metadata, top_k, service_tier və bloklardakı cache_control işarələri qəbul edilir. Onlar cavabı dəyişmir; host edilmiş açıq çəkili modellərdə prompt keşləmə avtomatikdir.

Sxemə uyğun JSON cavabı Chat Completions-da response_format ilə, Responses-da isə text.format ilə istənilir. Strukturlaşdırılmış çıxışlar

System prompt və thinking ilə sorğu

Bu sorğu system prompt, thinking büdcəsi, temperatur və dayanma ardıcıllığı göndərir. O, hamısını tətbiq edən host edilmiş açıq çəkili modeldən istifadə edir.

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)

Host edilmiş açıq çəkili modellərdə usage prompt keşindən oxunan tokenləri digər giriş tokenlərindən ayrı bildirir.

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

System prompt

system sətir və ya [{"type": "text", "text": "…"}] formasında mətn blokları massividir. Blokların mətnləri sətir sonu ilə birləşdirilir.

Onu host edilmiş açıq çəkili modellər, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro və shannon-coder-1 tətbiq edir. Shannon 3 ailəsinin id-si ilə, mütləq yerinə yetirilməli təlimatları istifadəçi mesajına qoyun.

Mesajlar və məzmun blokları

Mesajın role sahəsi (user və ya assistant) və content sahəsi var. content sətir və ya bloklar massivi ola bilər.

Blok Təsvir Mövcud olduğu yer
{"type": "text", "text": "…"} Mətn. Bütün modellər
{"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "…"}}
{"type": "image", "source": {"type": "url", "url": "…"}}
user mesajında şəkil, base64 şəklində və ya URL ilə. 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": "document", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} user mesajında sənəd (PDF, Word, PowerPoint və ya Excel), base64 şəklində və ya URL ilə. Shannon 3 ailəsi
{"type": "tool_use", "id": "toolu_…", "name": "…", "input": {…}} assistant mesajında: modelin əvvəlki cavabda etdiyi alət çağırışı. Bütün modellər
{"type": "tool_result", "tool_use_id": "toolu_…", "content": "…"} user mesajında: həmin çağırışın nəticəsi. content sətir və ya mətn blokları siyahısı ola bilər. Bütün modellər

Əvvəlki cavabın content hissəsini olduğu kimi geri göndərə bilərsiniz: text və tool_use blokları oxunur, thinking blokları atlanır.

Shannon səviyyələrində şəkillər və sənədlər sonuncu user mesajından oxunur. Ölçülər və limitlər üçün ayrıca səhifə var. Təsvirlər və fayllar

Thinking

Host edilmiş açıq çəkili modellər thinking sahəsini reasoning effort-a uyğunlaşdırır. Sahə olmadıqda effort yüksəkdir.

Forma budget_tokens Təsir
{"type": "disabled"} Reasoning yoxdur. Cavabda thinking bloku olmur.
{"type": "enabled", "budget_tokens": 2048} ≤ 2,048 Aşağı effort.
{"type": "enabled", "budget_tokens": 8192} ≤ 8,192 Orta effort.
{"type": "enabled", "budget_tokens": 16000} > 8,192 Yüksək effort.

Reasoning aparan model reasoning-ini mətndən əvvəl {"type": "thinking", "thinking": "…"} bloku kimi qaytarır. Reasoning aparan Shannon səviyyələri də onu göndərir.

Effort səviyyələri ayrıca səhifədə təsvir olunub. Reasoning effort

Alətlər

Alət kodunuzun işlətdiyi funksiyadır. Hər birini name, description və input_schema ilə təsvir edin. Model alət istədikdə cavabda tool_use bloku olur və stop_reason dəyəri tool_use olur.

tools daxilində alət təyini:

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

Onu çağıran cavabın content hissəsi:

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

Aləti işlədin, sonra çağırışı və messages siyahısına əlavə edilmiş tool_result blokunu daxil edərək sorğunu yenidən göndərin:

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

Forma Təsir Tətbiq edən
{"type": "auto"} Model alət çağırıb-çağırmamağa özü qərar verir. Bu defolt dəyərdir. Bütün modellər
{"type": "any"} Model alətlərdən birini çağırmalıdır. Host edilmiş açıq çəkili modellər
{"type": "tool", "name": "…"} Model adı verilmiş aləti çağırmalıdır. Host edilmiş açıq çəkili modellər

Yalnız input_schema olan alətlər oxunur. Veb axtarışı bu endpoint-də alət deyil: web_search sahəsini təyin edin.

Alət dövrəsi tam şəkildə ayrıca səhifədə təsvir olunub. Funksiya çağırışı

Cavab

Sahə Tip Təsvir Göndərən
id string msg_ və ardınca 32 onaltılıq simvol. Bütün modellər
type string Həmişə message. Bütün modellər
role string Həmişə assistant. Bütün modellər
model string Cavab verən modelin kanonik id-si. Bütün modellər
content array Cavabın blokları bu ardıcıllıqla: model reasoning aparıbsa thinking, sonra text, sonra hər alət çağırışı üçün bir tool_use. Bütün modellər
stop_reason string Cavabın niyə bitdiyi. Aşağıdakı dəyərlərə baxın. Bütün modellər
usage object input_tokens və output_tokens. Bütün modellər
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. Axında o, message_delta hadisəsi ilə gəlir. shannon-1.6-*, shannon-2-*, Shannon 3 ailəsi
usage.cache_read_input_tokens integer cache_read_input_tokens promptun keşdən oxunan hissəsidir; input_tokens qalan hissədir. cache_creation_input_tokens həmişə 0-dır. Host edilmiş açıq çəkili modellər

Cavab blokları

Blok Təsvir
{"type": "thinking", "thinking": "…"} Modelin reasoning-i. signature üzvü yoxdur.
{"type": "text", "text": "…"} Cavab mətni. Cavab alət çağırışı olduqda boş ola bilər.
{"type": "tool_use", "id": "toolu_…", "name": "…", "input": {…}} Alət çağırışı. input JSON obyektidir. Nəticəni eyni id ilə geri göndərin.

stop_reason

stop_reason Təsvir Göndərən
end_turn Model cavabını bitirdi və ya stop_sequences ardıcıllıqlarınızdan biri göründü. Bütün modellər
tool_use Cavabda bir və ya bir neçə alət çağırışı var. Bütün modellər
max_tokens Cavab çıxış limitində kəsildi. Shannon 3 ailəsi, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1, axınlarda

Streaming

Server-sent events üçün stream dəyərini true təyin edin. Hər frame-də hadisənin adı olan event: sətri və adı type sahəsində təkrarlayan JSON obyekti olan data: sətri var. Anthropic SDK-nın stream köməkçiləri bu hadisələri sizin üçün oxuyur:

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)

Hadisələr gəlmə ardıcıllığı ilə:

Hadisə Data Nə vaxt
message_start message Həmişə birincidir. message id, rol, model, boş content və sıfırdan başlayan usage saxlayır.
content_block_start index, content_block Blok açılır. content_block boş text və ya thinking bloku, yaxud id və name ilə tool_use blokudur.
content_block_delta index, delta {"type": "thinking_delta", "thinking"} thinking bloku üçün reasoning-in bir parçası.
content_block_delta index, delta {"type": "text_delta", "text"} text bloku üçün cavabın bir parçası.
content_block_delta index, delta {"type": "input_json_delta", "partial_json"} tool_use bloku üçün alət çağırışının arqumentləri, bir delta-da tam şəkildə.
content_block_stop index Bu index ilə blok tamamlandı.
message_delta delta {stop_reason, stop_sequence}, usage Cavabın sonu: delta.stop_reason və sorğunun usage məlumatı.
message_stop Həmişə sonuncudur.

Bloklar açılma ardıcıllığı ilə index üzrə nömrələnir və hər blok növbətisi açılmazdan əvvəl tamamlanır. Hər bloku nömrəsinə görə yox, tipinə görə oxuyun: axın əvvəlcə boş text bloku, sonra thinking bloku aça və cavabı sonrakı text blokunda çatdıra bilər.

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

Göndərən Təsvir
Shannon 3 ailəsi, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 Hər 15 saniyədən bir {"type": "ping"} datalı ping hadisəsi.
Host edilmiş açıq çəkili modellər Model işlədiyi müddətdə hər 15 saniyədən bir : keepalive şərh sətri.

Uğursuz olan axın

Axın başladıqdan sonrakı xəta, xəta cavabı ilə eyni gövdəli error hadisəsidir: {"type": "error", "error": {"type", "message"}}. Bağlayıcı hadisələr, message_delta və message_stop, yenə də ardınca gəlir. Cavabı uğursuz sayın və sorğunu yenidən göndərin.

Xətalar

Xətalar Anthropic xəta gövdəsindən istifadə edir: type dəyəri error-dur, error obyekti isə type və message saxlayır. 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
{
  "type": "error",
  "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 Shannon model id-si 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 göndərilib.
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.
429 rate_limit_error Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan shannon-coder-1: planınızın cari 4 saatlıq pəncərə üçün Shannon Coder çağırışları istifadə olunub.
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. Model cavab yaratmadı. Sorğunu yenidən göndərin.

Tokenlərin sayılması

POST /v1/messages/count_tokens mesaj sorğusu ilə eyni gövdəni (model, system, messages, tools) qəbul edir və {"input_tokens": n} qaytarır: sorğu üçün hesablanacaq giriş tokenlərinin sayı. Host edilmiş açıq çəkili modellər üçün işləyir, pulsuzdur və flood protection tərəfindən sayılmır.

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)

Sayma üçün ayrıca səhifə var: düz mətn endpoint-i və limitlər orada. Tokenlərin sayılması