Aqbeż għall-kontenut
Format Anthropic

Format Anthropic

POST /v1/messages jieħu talba fil-format Anthropic Messages u jwieġeb fl-istess format, bi streaming jew mingħajru. Uża dan mal-SDK Anthropic u ma' tools mibnija fuqu, bħal Claude Code: issettja l-base URL, uża ċ-ċavetta tal-API Shannon tiegħek u semmi id ta' mudell Shannon.

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

Immira l-SDK Anthropic lejn il-base URL ta' Shannon. L-SDK iżid /v1/messages u jibgħat iċ-ċavetta tiegħek fl-header 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)

It-tweġiba hija messaġġ li l-content tiegħu huwa lista ta' blokok. Sib il-blokok skont it-type tagħhom: meta l-mudell irraġuna, l-ewwel blokk huwa thinking u t-test jiġi warajh.

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

Headers

Header Valur Deskrizzjoni
x-api-key YOUR_API_KEY Iċ-ċavetta tal-API tiegħek. Authorization: Bearer YOUR_API_KEY tiġi aċċettata minflokha.
content-type application/json Meħtieġ.
anthropic-version 2023-06-01 Aċċettat, mhux meħtieġ. L-SDK Anthropic jibgħat 2023-06-01; it-tweġiba għandha l-istess format kwalunkwe valur.
anthropic-beta Aċċettat, mhux meħtieġ.
x-request-id Mhux obbligatorju. L-id tiegħek stess għat-talba. Jiġi lura mhux mibdul fit-tweġiba; mingħajru t-tweġiba ġġorr id ta' 12-il karattru eżadeċimali.

Kampi tat-talba

Hemm bżonn biss ta' messages. Il-kolonna Applikat minn issemmi l-mudelli li fuqhom qasam ibiddel it-tweġiba. Il-mudelli open-weight ospitati huma tnax-il id tal-lista tal-mudelli; il-familja Shannon 3 hija shannon-3, shannon-3-pro, shannon-3.1 u shannon-3.1-pro. Mudelli u prezzijiet

Qasam Tip Default Deskrizzjoni Applikat minn
model string shannon-1.6-lite Id ta' mudell Shannon mil-lista tal-mudelli. Ibgħatu ma' kull talba. It-tqabbil ma jiddistingwix bejn ittri kbar u żgħar. Kull isem ieħor jagħti lura 400 unknown model, għalhekk tool li jibgħat l-ismijiet tiegħu stess tal-mudelli jrid jiġi ssettjat b'id ta' Shannon. Il-mudelli kollha
messages array Meħtieġ. Il-konversazzjoni, bl-eqdem messaġġ l-ewwel, bir-rwoli user u assistant. Ara Messaġġi u blokok tal-kontenut hawn taħt. Il-mudelli kollha
system string | array Struzzjonijiet għall-mudell: string, jew array ta' blokok tat-test. Ara System prompt hawn taħt. Mudelli open-weight ospitati, shannon-1.6-*, shannon-2-*, shannon-coder-1
max_tokens integer 4096 Limitu massimu tat-tweġiba, f'tokens. Mhux obbligatorju fuq dan l-endpoint; l-SDK Anthropic dejjem jibgħatu. Valur barra minn 1 sa 65,536 jiġi mċaqlaq f'dak il-medda. Hija wkoll l-ammont li jitwarrab mill-bilanċ tiegħek waqt li t-talba tkun għaddejja. Mudelli open-weight ospitati, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
stream boolean false true jibgħat it-tweġiba bħala server-sent events. Ara Streaming hawn taħt. Il-mudelli kollha
temperature number Temperatura tas-sampling. Fuq il-mudelli open-weight ospitati l-valuri jinżammu bejn 0 u 2. Mudelli open-weight ospitati, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number Nucleus sampling. Mudelli open-weight ospitati
stop_sequences array Sa 4 strings. It-tweġiba tintemm qabel l-ewwel waħda li tidher. stop_reason jibqa' end_turn. Mudelli open-weight ospitati
tools array It-tools li l-mudell jista' jsejjaħ, kull wieħed bħala {"name", "description", "input_schema"}. Ara Tools hawn taħt. Il-mudelli kollha
tool_choice object {"type": "auto"} iħalli l-mudell jiddeċiedi, {"type": "any"} iġiegħlu jsejjaħ tool, {"type": "tool", "name": "…"} iġiegħlu jsejjaħ dak it-tool. Mudelli open-weight ospitati
thinking object Kemm jirraġuna l-mudell qabel ma jwieġeb. Ara Thinking hawn taħt. Mudelli open-weight ospitati
web_search boolean false Żieda ta' Shannon mal-format: true iħalli l-mudell ifittex fuq il-web qabel ma jwieġeb. shannon-1.6-*, shannon-2-*, familja Shannon 3

Mingħajr max_tokens il-valur huwa 4,096, u 65,536 fuq shannon-coder-1.

Il-markaturi metadata, top_k, service_tier u cache_control fuq il-blokok jiġu aċċettati sabiex il-kodiċi eżistenti tal-klijent jaħdem mingħajr bidla. Ma jbiddlux it-tweġiba; il-prompt caching fuq il-mudelli open-weight ospitati huwa awtomatiku.

Tweġiba JSON skont skema titlob b'response_format fuq Chat Completions u b'text.format fuq Responses. Outputs Strutturati

Talba b'system prompt u thinking

Din it-talba tibgħat system prompt, budget ta' thinking, temperatura u stop sequence. Tuża mudell open-weight ospitat, li japplika lil kollha.

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)

Fuq il-mudelli open-weight ospitati usage jirrapporta t-tokens moqrija mill-prompt cache separatament mill-input tokens l-oħra.

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

System prompt

system huwa string, jew array ta' blokok tat-test fil-forma [{"type": "text", "text": "…"}]. It-testi tal-blokok jingħaqdu b'qasma tal-linja.

Jiġi applikat mill-mudelli open-weight ospitati, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro u shannon-coder-1. B'id tal-familja Shannon 3, poġġi fil-messaġġ tal-utent l-istruzzjonijiet li jridu jinżammu.

Messaġġi u blokok tal-kontenut

Messaġġ għandu role, user jew assistant, u content. content huwa string, jew array ta' blokok.

Blokk Deskrizzjoni Disponibbli fuq
{"type": "text", "text": "…"} Test. Il-mudelli kollha
{"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "…"}}
{"type": "image", "source": {"type": "url", "url": "…"}}
Immaġni f'messaġġ user, bħala base64 jew permezz ta' URL. Familja Shannon 3, shannon-1.6-lite, shannon-1.6-pro, u l-mudelli open-weight ospitati li jelenkaw input ta' immaġni
{"type": "document", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Dokument (PDF, Word, PowerPoint jew Excel) f'messaġġ user, bħala base64 jew permezz ta' URL. Familja Shannon 3
{"type": "tool_use", "id": "toolu_…", "name": "…", "input": {…}} F'messaġġ assistant: sejħa ta' tool li l-mudell għamel f'tweġiba preċedenti. Il-mudelli kollha
{"type": "tool_result", "tool_use_id": "toolu_…", "content": "…"} F'messaġġ user: ir-riżultat ta' dik is-sejħa. content huwa string, jew lista ta' blokok tat-test. Il-mudelli kollha

Tista' tibgħat lura l-content ta' tweġiba preċedenti kif inhu: il-blokok text u tool_use jinqraw, il-blokok thinking jitqabżu.

Fuq il-livelli Shannon, l-immaġini u d-dokumenti jinqraw mill-aħħar messaġġ user. Id-daqsijiet u l-limiti għandhom paġna tagħhom. Immaġini u fajls

Thinking

Il-mudelli open-weight ospitati jimmappjaw thinking għal sforz ta' raġunament. Mingħajr il-qasam l-isforz huwa għoli.

Forma budget_tokens Effett
{"type": "disabled"} Ebda raġunament. It-tweġiba m'għandha ebda blokk thinking.
{"type": "enabled", "budget_tokens": 2048} ≤ 2,048 Sforz baxx.
{"type": "enabled", "budget_tokens": 8192} ≤ 8,192 Sforz medju.
{"type": "enabled", "budget_tokens": 16000} > 8,192 Sforz għoli.

Mudell li jirraġuna jagħti lura r-raġunament tiegħu bħala blokk {"type": "thinking", "thinking": "…"} quddiem it-test. Il-livelli Shannon li jirraġunaw jibagħtuh ukoll.

L-isforzi huma deskritti f'paġna tagħhom. Sforz ta' raġunament

Tools

Tool huwa funzjoni li l-kodiċi tiegħek iħaddem. Iddeskrivi kull wieħed b'name, description u input_schema. Meta l-mudell irid tool, it-tweġiba fiha blokk tool_use u stop_reason huwa tool_use.

Definizzjoni ta' tool f'tools:

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

Il-content ta' tweġiba li ssejjaħ it-tool:

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

Mexxi t-tool, imbagħad ibgħat it-talba mill-ġdid bis-sejħa u blokk tool_result miżjud ma' 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

Forma Effett Applikat minn
{"type": "auto"} Il-mudell jiddeċiedi jekk isejjaħx tool. Dan huwa d-default. Il-mudelli kollha
{"type": "any"} Il-mudell irid isejjaħ wieħed mit-tools. Mudelli open-weight ospitati
{"type": "tool", "name": "…"} Il-mudell irid isejjaħ it-tool imsemmi. Mudelli open-weight ospitati

Jinqraw biss tools b'input_schema. Il-fittxija fuq il-web mhijiex tool fuq dan l-endpoint: issettja l-qasam web_search.

Il-linja tat-tools hija deskritta bis-sħiħ f'paġna tagħha. Sejħiet ta' Funzjonijiet

It-tweġiba

Qasam Tip Deskrizzjoni Mibgħut minn
id string msg_ segwit minn 32 karattru eżadeċimali. Il-mudelli kollha
type string Dejjem message. Il-mudelli kollha
role string Dejjem assistant. Il-mudelli kollha
model string L-id kanoniku tal-mudell li wieġeb. Il-mudelli kollha
content array Il-blokok tat-tweġiba, f'dan l-ordni: thinking meta l-mudell irraġuna, text, imbagħad tool_use wieħed għal kull sejħa ta' tool. Il-mudelli kollha
stop_reason string Għaliex intemmet it-tweġiba. Ara l-valuri hawn taħt. Il-mudelli kollha
usage object input_tokens u output_tokens. Il-mudelli kollha
sources array Biss fuq talba b'web_search: true li t-tiftix tagħha sab xi ħaġa: ir-riżultati mogħtija lill-mudell, kull wieħed b'index, title u url. [1] fit-tweġiba huwa d-daħla b'index 1. F'stream jiġi mal-avveniment message_delta. shannon-1.6-*, shannon-2-*, familja Shannon 3
usage.cache_read_input_tokens integer cache_read_input_tokens hija l-parti tal-prompt moqrija mill-cache; input_tokens huwa l-bqija. cache_creation_input_tokens hija dejjem 0. Mudelli open-weight ospitati

Blokok tat-tweġiba

Blokk Deskrizzjoni
{"type": "thinking", "thinking": "…"} Ir-raġunament tal-mudell. M'hemm ebda membru signature.
{"type": "text", "text": "…"} It-test tat-tweġiba. Jista' jkun vojt meta t-tweġiba hija sejħa ta' tool.
{"type": "tool_use", "id": "toolu_…", "name": "…", "input": {…}} Sejħa ta' tool. input huwa oġġett JSON. Ibgħat ir-riżultat lura bl-istess id.

stop_reason

stop_reason Deskrizzjoni Mibgħut minn
end_turn Il-mudell spiċċa t-tweġiba tiegħu, jew deher wieħed mill-stop_sequences tiegħek. Il-mudelli kollha
tool_use It-tweġiba fiha sejħa waħda jew aktar ta' tools. Il-mudelli kollha
max_tokens It-tweġiba nqatgħet fil-limitu tal-output. Familja Shannon 3, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1, fl-istreams

Streaming

Issettja stream għal true għal server-sent events. Kull frame għandu linja event: bl-isem tal-avveniment u linja data: b'oġġett JSON li jirrepeti l-isem f'type. L-helpers tal-istream tal-SDK Anthropic jaqraw dawn l-avvenimenti għalik:

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)

L-avvenimenti, skont l-ordni li fiha jaslu:

Avveniment Dejta Meta
message_start message Dejjem l-ewwel. message fih l-id, ir-rwol, il-mudell, content vojt u usage li jibda minn żero.
content_block_start index, content_block Blokk jinfetaħ. content_block huwa blokk text jew thinking vojt, jew blokk tool_use bl-id u l-name tiegħu.
content_block_delta index, delta {"type": "thinking_delta", "thinking"} Biċċa mir-raġunament, għal blokk thinking.
content_block_delta index, delta {"type": "text_delta", "text"} Biċċa mit-tweġiba, għal blokk text.
content_block_delta index, delta {"type": "input_json_delta", "partial_json"} L-argumenti ta' sejħa ta' tool, sħaħ f'delta waħda, għal blokk tool_use.
content_block_stop index Il-blokk b'dan l-index itlesta.
message_delta delta {stop_reason, stop_sequence}, usage It-tmiem tat-tweġiba: delta.stop_reason, u l-usage tat-talba.
message_stop Dejjem l-aħħar.

Il-blokok huma mnumerati b'index skont l-ordni li fiha jinfetħu, u blokk wieħed jitlesta qabel ma jinfetaħ li jmiss. Aqra kull blokk skont it-tip tiegħu, mhux skont in-numru tiegħu: stream jista' jiftaħ l-ewwel blokk text vojt, imbagħad il-blokk thinking, u jwassal it-tweġiba f'blokk text aktar tard.

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

Mibgħut minn Deskrizzjoni
Familja Shannon 3, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 Avveniment ping bid-dejta {"type": "ping"}, kull 15-il sekonda.
Mudelli open-weight ospitati Linja ta' kumment : keepalive, kull 15-il sekonda waqt li l-mudell jaħdem.

Stream li jfalli

Falliment wara li jkun beda l-istream huwa avveniment error bl-istess body bħal tweġiba ta' żball: {"type": "error", "error": {"type", "message"}}. L-avvenimenti tal-għeluq, message_delta u message_stop, xorta jiġu warajh. Qis it-tweġiba bħala fallita u ibgħat it-talba mill-ġdid.

Żbalji

L-iżbalji jużaw il-body tal-iżball ta' Anthropic: type huwa error, u l-oġġett error fih type u message. It-tabella telenka dak li dan l-endpoint jagħti lura l-aktar spiss. Il-lista kompluta, b'dak li għandu jerġa' jiġi pprovat, għandha paġna tagħha. Ġestjoni tal-iżbalji

400 JSON
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Status Tip Messaġġ Meta
401 authentication_error Missing authentication
Invalid API key
Ma nbagħtitx ċavetta tal-API, jew iċ-ċavetta mhijiex magħrufa jew ġiet irrevokata.
400 invalid_request_error unknown model: <id> model mhuwiex id ta' mudell Shannon.
400 invalid_request_error No user message provided Livelli Shannon: it-talba m'għandha ebda test ta' utent u ebda tools.
400 invalid_request_error <id> does not accept image input Immaġni nbagħtet lil mudell open-weight ospitat mingħajr input ta' immaġni.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … messages nieqes, jew qasam għandu tip JSON ħażin.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens huwa akbar minn dak li fadal mill-bilanċ tiegħek.
429 rate_limit_error Too many requests. Retry in <n>s. Protezzjoni mill-flood: aktar minn 120 talba f'minuta waħda fuq il-kont tiegħek.
429 rate_limit_error Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan shannon-coder-1: is-sejħiet ta' Shannon Coder tal-pjan tiegħek għat-tieqa attwali ta' 4 sigħat intużaw.
500 server_error The model backend failed to answer. Please retry. Il-mudell ma pproduċiex tweġiba. Ibgħat it-talba mill-ġdid.
502 api_error The model backend failed to answer. Please retry. Il-mudell ma pproduċiex tweġiba. Ibgħat it-talba mill-ġdid.

Għadd ta' tokens

POST /v1/messages/count_tokens jieħu l-istess body ta' talba ta' messaġġ (model, system, messages, tools) u jagħti lura {"input_tokens": n}: in-numru ta' input tokens li titħallas għalihom it-talba. Jgħodd għall-mudelli open-weight ospitati, huwa b'xejn u ma jingħadx mill-protezzjoni mill-flood.

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)

L-għadd għandu paġna tiegħu, bl-endpoint tat-test sempliċi u l-limiti. Għadd ta' tokens