Mine sisu juurde
Anthropic

Anthropic

POST /v1/messages võtab vastu päringu Anthropic Messages vormingus ja vastab samas vormingus, voona või ilma. Kasuta seda Anthropic SDK-ga ja selle peal ehitatud tööriistadega, näiteks Claude Code: sea baas-URL, kasuta oma Shannoni API võtit ja nimeta Shannoni mudeli id.

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

Suuna Anthropic SDK Shannoni base URL-ile. SDK lisab /v1/messages ja saadab sinu võtme päises 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)

Vastus on sõnum, mille content on plokkide loend. Leia plokid nende type järgi: kui mudel arutles, on esimene plokk thinking ja tekst tuleb pärast seda.

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

Päised

Päis Väärtus Kirjeldus
x-api-key YOUR_API_KEY Sinu API võti. Selle asemel võetakse vastu ka Authorization: Bearer YOUR_API_KEY.
content-type application/json Kohustuslik.
anthropic-version 2023-06-01 Võetakse vastu, ei ole kohustuslik. Anthropic SDK saadab 2023-06-01; vastuse vorming on sama olenemata väärtusest.
anthropic-beta Võetakse vastu, ei ole kohustuslik.
x-request-id Valikuline. Sinu enda päringu id. See tuleb vastuses muutmata kujul tagasi; ilma selleta on vastuse id 12 kuueteistkümnendmärgiga.

Päringu väljad

Kohustuslik on ainult messages. Veerg Rakendavad nimetab mudelid, millel väli vastust muudab. Hostitud avatud kaaludega mudelid on mudelite loendi kaksteist id-d; Shannon 3 perekond on shannon-3, shannon-3-pro, shannon-3.1 ja shannon-3.1-pro. Mudelid ja hinnad

Väli Tüüp Vaikeväärtus Kirjeldus Rakendavad
model string shannon-1.6-lite Shannoni mudeli id mudelite loendist. Saada see iga päringuga. Võrdlemisel ei arvestata suur- ja väiketähti. Iga muu nimi tagastab 400 unknown model, seega tööriist, mis saadab oma mudelinimesid, tuleb seada Shannoni id peale. Kõik mudelid
messages array Kohustuslik. Vestlus, vanim sõnum esimesena, rollidega user ja assistant. Vaata allpool jaotist Sõnumid ja sisuplokid. Kõik mudelid
system string | array Juhised mudelile: string või tekstiplokkide massiiv. Vaata allpool jaotist Süsteemiprompt. Hostitud avatud kaaludega mudelid, shannon-1.6-*, shannon-2-*, shannon-coder-1
max_tokens integer 4096 Vastuse ülempiir tokenites. Sellel lõpp-punktil valikuline; Anthropic SDK saadab selle alati. Väärtus väljaspool vahemikku 1 kuni 65,536 viiakse sellesse vahemikku. See on ka summa, mis päringu töötamise ajal sinu saldost kõrvale pannakse. Hostitud avatud kaaludega mudelid, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
stream boolean false true saadab vastuse server-sent events kujul. Vaata allpool jaotist Voogedastus. Kõik mudelid
temperature number Valimi temperatuur. Hostitud avatud kaaludega mudelitel hoitakse väärtused vahemikus 0 kuni 2. Hostitud avatud kaaludega mudelid, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number Nucleus sampling. Hostitud avatud kaaludega mudelid
stop_sequences array Kuni 4 stringi. Vastus lõpeb enne esimest, mis ilmub. stop_reason jääb end_turn. Hostitud avatud kaaludega mudelid
tools array Tööriistad, mida mudel võib kutsuda, igaüks kujul {"name", "description", "input_schema"}. Vaata allpool jaotist Tööriistad. Kõik mudelid
tool_choice object {"type": "auto"} laseb mudelil otsustada, {"type": "any"} sunnib tööriista kutsuma, {"type": "tool", "name": "…"} sunnib kutsuma just selle tööriista. Hostitud avatud kaaludega mudelid
thinking object Kui palju mudel enne vastamist arutleb. Vaata allpool jaotist Mõtlemine. Hostitud avatud kaaludega mudelid
web_search boolean false Shannoni täiendus vormingule: true laseb mudelil enne vastamist veebist otsida. shannon-1.6-*, shannon-2-*, Shannon 3 perekond

Ilma max_tokens väljata on väärtus 4,096 ja shannon-coder-1 puhul 65,536.

metadata, top_k, service_tier ja cache_control markerid plokkidel võetakse vastu, et olemasolev kliendikood töötaks muutmata kujul. Need ei muuda vastust; prompt caching hostitud avatud kaaludega mudelitel on automaatne.

JSON-vastust skeemi järgi küsitakse Chat Completionsis response_format ja Responsesis text.format abil. Struktureeritud väljundid

Päring süsteemiprompti ja mõtlemisega

See päring saadab süsteemiprompti, thinking-eelarve, temperatuuri ja stop-jada. Kasutusel on hostitud avatud kaaludega mudel, mis rakendab neid kõiki.

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)

Hostitud avatud kaaludega mudelitel näitab usage promptivahemälust loetud tokeneid eraldi muudest sisendtokenitest.

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

Süsteemiprompt

system on string või tekstiplokkide massiiv kujul [{"type": "text", "text": "…"}]. Plokkide tekstid ühendatakse reavahetusega.

Seda rakendavad hostitud avatud kaaludega mudelid, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro ja shannon-coder-1. Shannon 3 perekonna id puhul pane juhised, mis peavad kehtima, kasutaja sõnumisse.

Sõnumid ja sisuplokid

Sõnumil on role, user või assistant, ja content. content on string või plokkide massiiv.

Plokk Kirjeldus Saadaval
{"type": "text", "text": "…"} Tekst. Kõik mudelid
{"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "…"}}
{"type": "image", "source": {"type": "url", "url": "…"}}
Pilt user sõnumis, base64-na või URL-iga. Shannon 3 perekond, shannon-1.6-lite, shannon-1.6-pro ja hostitud avatud kaaludega mudelid, mis loetlevad pildisisendi
{"type": "document", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Dokument (PDF, Word, PowerPoint või Excel) user sõnumis, base64-na või URL-iga. Shannon 3 perekond
{"type": "tool_use", "id": "toolu_…", "name": "…", "input": {…}} assistant sõnumis: tööriistakutse, mille mudel tegi varasemas vastuses. Kõik mudelid
{"type": "tool_result", "tool_use_id": "toolu_…", "content": "…"} user sõnumis: selle kutse tulemus. content on string või tekstiplokkide loend. Kõik mudelid

Varasema vastuse content võid saata tagasi muutmata kujul: text ja tool_use plokid loetakse, thinking plokid jäetakse vahele.

Shannoni tasemetel loetakse pildid ja dokumendid viimasest user sõnumist. Suurustel ja piirangutel on oma leht. Pildid ja failid

Mõtlemine

Hostitud avatud kaaludega mudelid vastendavad thinking arutluse pingutuseks. Ilma selle väljata on pingutus kõrge.

Kuju budget_tokens Mõju
{"type": "disabled"} Ilma arutluseta. Vastuses ei ole thinking-plokki.
{"type": "enabled", "budget_tokens": 2048} ≤ 2,048 Madal pingutus.
{"type": "enabled", "budget_tokens": 8192} ≤ 8,192 Keskmine pingutus.
{"type": "enabled", "budget_tokens": 16000} > 8,192 Kõrge pingutus.

Arutlev mudel tagastab oma arutluse plokina {"type": "thinking", "thinking": "…"} teksti ees. Arutlevad Shannoni tasemed saadavad selle samuti.

Pingutuse tasemeid kirjeldatakse nende oma lehel. Reasoning-pingutus

Tööriistad

Tööriist on funktsioon, mida sinu kood käivitab. Kirjelda igaüks väljadega name, description ja input_schema. Kui mudel soovib tööriista, sisaldab vastus tool_use-plokki ja stop_reason on tool_use.

Tööriista definitsioon väljas tools:

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

Seda kutsuva vastuse content:

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

Käivita tööriist ja saada päring uuesti, lisades messages hulka kutse ja tool_result-ploki:

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

Kuju Mõju Rakendavad
{"type": "auto"} Mudel otsustab, kas tööriista kutsuda. See on vaikeväärtus. Kõik mudelid
{"type": "any"} Mudel peab kutsuma ühe tööriistadest. Hostitud avatud kaaludega mudelid
{"type": "tool", "name": "…"} Mudel peab kutsuma nimetatud tööriista. Hostitud avatud kaaludega mudelid

Loetakse ainult tööriistu, millel on input_schema. Veebiotsing ei ole selles lõpp-punktis tööriist: määra väli web_search.

Tööriistatsüklit kirjeldatakse täielikult selle oma lehel. Funktsioonikutse

Vastus

Väli Tüüp Kirjeldus Saatja
id string msg_, millele järgneb 32 kuueteistkümnendsüsteemi märki. Kõik mudelid
type string Alati message. Kõik mudelid
role string Alati assistant. Kõik mudelid
model string Vastanud mudeli kanooniline id. Kõik mudelid
content array Vastuse plokid selles järjekorras: thinking, kui mudel arutles, text ja seejärel üks tool_use iga tööriistakutse kohta. Kõik mudelid
stop_reason string Miks vastus lõppes. Vaata väärtusi allpool. Kõik mudelid
usage object input_tokens ja output_tokens. Kõik mudelid
sources array Ainult päringul, milles on web_search: true ja mille otsing leidis midagi: tulemused, mille mudel sai, igaühel index, title ja url. [1] vastuses on kirje, mille index on 1. Voos tuleb see sündmusega message_delta. shannon-1.6-*, shannon-2-*, Shannon 3 perekond
usage.cache_read_input_tokens integer cache_read_input_tokens on vahemälust loetud osa promptist; input_tokens on ülejäänu. cache_creation_input_tokens on alati 0. Hostitud avatud kaaludega mudelid

Vastuse plokid

Plokk Kirjeldus
{"type": "thinking", "thinking": "…"} Mudeli arutlus. Välja signature ei ole.
{"type": "text", "text": "…"} Vastuse tekst. See võib olla tühi, kui vastus on tööriistakutse.
{"type": "tool_use", "id": "toolu_…", "name": "…", "input": {…}} Tööriistakutse. input on JSON-objekt. Saada tulemus tagasi sama id-ga.

stop_reason

stop_reason Kirjeldus Saatja
end_turn Mudel lõpetas vastuse või ilmus üks sinu stop_sequences jada. Kõik mudelid
tool_use Vastus sisaldab ühte või mitut tööriistakutset. Kõik mudelid
max_tokens Vastus katkestati väljundi piirangu juures. Shannon 3 perekond, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1, voogudes

Voogedastus

Määra stream väärtuseks true, et saada server-sent events. Igal kaadril on event:-rida sündmuse nimega ja data:-rida JSON-objektiga, mis kordab nime väljas type. Anthropic SDK voohelperid loevad need sündmused sinu eest:

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)

Sündmused sellises järjekorras, nagu need saabuvad:

Sündmus Andmed Millal
message_start message Alati esimene. message sisaldab id-d, rolli, mudelit, tühja content ja nullist algavat usage.
content_block_start index, content_block Plokk avaneb. content_block on tühi text- või thinking-plokk või tool_use-plokk koos oma id ja name.
content_block_delta index, delta {"type": "thinking_delta", "thinking"} Arutluse tükk thinking-ploki jaoks.
content_block_delta index, delta {"type": "text_delta", "text"} Vastuse tükk text-ploki jaoks.
content_block_delta index, delta {"type": "input_json_delta", "partial_json"} Tööriistakutse argumendid tool_use-ploki jaoks, tervikuna ühes deltas.
content_block_stop index Selle index-iga plokk on lõpetatud.
message_delta delta {stop_reason, stop_sequence}, usage Vastuse lõpp: delta.stop_reason ja päringu usage.
message_stop Alati viimane.

Plokid nummerdatakse index järgi selles järjekorras, nagu nad avanevad, ja üks plokk on lõpetatud enne, kui järgmine avaneb. Loe iga plokki selle tüübi, mitte numbri järgi: voog võib avada kõigepealt tühja text-ploki, siis thinking-ploki ja anda vastuse hilisemas text-plokis.

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

Saatja Kirjeldus
Shannon 3 perekond, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 ping-sündmus andmetega {"type": "ping"}, iga 15 sekundi järel.
Hostitud avatud kaaludega mudelid Kommentaarirea : keepalive, iga 15 sekundi järel, kuni mudel töötab.

Voog, mis ebaõnnestub

Tõrge pärast voo algust on error-sündmus, mille sisu on sama mis veavastusel: {"type": "error", "error": {"type", "message"}}. Lõpusündmused message_delta ja message_stop järgnevad siiski. Käsitle vastust ebaõnnestununa ja saada päring uuesti.

Vead

Vead kasutavad Anthropicu vea sisu: type on error ja error objekt sisaldab type ja message välja. Tabelis on loetletud, mida see lõpp-punkt kõige sagedamini tagastab. Täielikul loendil, koos juhisega, mida korrata, on oma leht. Vigade käsitlus

400 JSON
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Olek Tüüp Teade Millal
401 authentication_error Missing authentication
Invalid API key
API võtit ei saadetud või võti on tundmatu või tühistatud.
400 invalid_request_error unknown model: <id> model ei ole Shannoni mudeli id.
400 invalid_request_error No user message provided Shannoni tasemed: päringul pole kasutaja teksti ega tools.
400 invalid_request_error <id> does not accept image input Pilt saadeti hostitud avatud kaaludega mudelile, millel pole pildisisendit.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … messages puudub või väljal on vale JSON-tüüp.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens on suurem kui sinu saldo järelejäänud osa.
429 rate_limit_error Too many requests. Retry in <n>s. Kiirusepiirang: üle 120 päringu minutis sinu kontol.
429 rate_limit_error Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan shannon-coder-1: sinu paketi Shannon Coderi kutsed jooksvas 4-tunnises aknas on ära kasutatud.
500 server_error The model backend failed to answer. Please retry. Mudel ei andnud vastust. Saada päring uuesti.
502 api_error The model backend failed to answer. Please retry. Mudel ei andnud vastust. Saada päring uuesti.

Tokenite lugemine

POST /v1/messages/count_tokens võtab sama sisu mis sõnumipäring (model, system, messages, tools) ja tagastab {"input_tokens": n}: sisendtokenite arvu, mille eest päringut arveldataks. See toimib hostitud avatud kaaludega mudelitel, on tasuta ja kiirusepiirang seda ei loe.

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)

Lugemisel on oma leht koos lihttekst-lõpp-punkti ja piirangutega. Tokenite lugemine