ഉള്ളടക്കത്തിലേക്ക് പോകുക
Anthropic

Anthropic

POST /v1/messages Anthropic Messages ഫോർമാറ്റിലുള്ള റിക്വസ്റ്റ് സ്വീകരിച്ച് അതേ ഫോർമാറ്റിൽ, സ്ട്രീം ചെയ്തോ അല്ലാതെയോ, മറുപടി നൽകുന്നു. Anthropic SDK-യിലും Claude Code പോലെ അതിനെ ആശ്രയിക്കുന്ന ടൂളുകളിലും ഇത് ഉപയോഗിക്കുക: base URL സജ്ജമാക്കുക, നിങ്ങളുടെ Shannon API കീ ഉപയോഗിക്കുക, ഒരു Shannon മോഡൽ ഐഡി നൽകുക.

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

Anthropic SDK-യെ Shannon base URL-ലേക്ക് ചൂണ്ടുക. 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 നോക്കി കണ്ടെത്തുക: മോഡൽ റീസൺ ചെയ്തെങ്കിൽ ആദ്യ ബ്ലോക്ക് 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 സ്വീകരിക്കും, നിർബന്ധമില്ല. Anthropic SDK 2023-06-01 അയയ്ക്കുന്നു; മൂല്യം എന്തായാലും മറുപടിയുടെ ഫോർമാറ്റ് ഒന്നുതന്നെയാണ്.
anthropic-beta സ്വീകരിക്കും, നിർബന്ധമില്ല.
x-request-id ഓപ്ഷണൽ. റിക്വസ്റ്റിനുള്ള നിങ്ങളുടെ സ്വന്തം ഐഡി. ഇത് മറുപടിയിൽ മാറ്റമില്ലാതെ തിരികെ വരും; ഇല്ലെങ്കിൽ മറുപടിയിൽ 12 ഹെക്സാഡെസിമൽ അക്ഷരങ്ങളുള്ള ഒരു ഐഡി ഉണ്ടാകും.

റിക്വസ്റ്റ് ഫീൽഡുകൾ

messages മാത്രമാണ് നിർബന്ധം. ഒരു ഫീൽഡ് മറുപടിയെ മാറ്റുന്ന മോഡലുകളുടെ പേര് ബാധകമാക്കുന്നത് കോളം നൽകുന്നു. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ എന്നത് മോഡൽ പട്ടികയിലെ പന്ത്രണ്ട് ഐഡികളാണ്; Shannon 3 കുടുംബം shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro എന്നിവയാണ്. മോഡലുകളും വിലയും

ഫീൽഡ് ടൈപ്പ് ഡിഫോൾട്ട് വിവരണം ബാധകമാക്കുന്നത്
model string shannon-1.6-lite മോഡൽ പട്ടികയിലെ ഒരു Shannon മോഡൽ ഐഡി. ഓരോ റിക്വസ്റ്റിലും ഇത് അയയ്ക്കുക. പൊരുത്തപ്പെടുത്തൽ വലിയക്ഷര/ചെറിയക്ഷര വ്യത്യാസം നോക്കില്ല. മറ്റേതൊരു പേരും 400 unknown model തിരികെ നൽകും, അതിനാൽ സ്വന്തം മോഡൽ പേരുകൾ അയയ്ക്കുന്ന ടൂൾ ഒരു Shannon ഐഡിയിലേക്ക് സജ്ജമാക്കണം. എല്ലാ മോഡലുകളും
messages array നിർബന്ധം. സംഭാഷണം, ഏറ്റവും പഴയ സന്ദേശം ആദ്യം, user, assistant റോളുകളോടെ. താഴെ സന്ദേശങ്ങളും ഉള്ളടക്ക ബ്ലോക്കുകളും കാണുക. എല്ലാ മോഡലുകളും
system string | array മോഡലിനുള്ള നിർദ്ദേശങ്ങൾ: ഒരു സ്ട്രിങ്ങോ ടെക്സ്റ്റ് ബ്ലോക്കുകളുടെ അറേയോ. താഴെ സിസ്റ്റം പ്രോംപ്റ്റ് കാണുക. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ, shannon-1.6-*, shannon-2-*, shannon-coder-1
max_tokens integer 4096 മറുപടിയുടെ ഉയർന്ന പരിധി, ടോക്കണുകളിൽ. ഈ എൻഡ്‌പോയിന്റിൽ ഓപ്ഷണൽ; Anthropic SDK ഇത് എപ്പോഴും അയയ്ക്കുന്നു. 1 മുതൽ 65,536 വരെയുള്ള പരിധിക്ക് പുറത്തുള്ള മൂല്യം ആ പരിധിയിലേക്ക് മാറ്റപ്പെടുന്നു. റിക്വസ്റ്റ് പ്രവർത്തിക്കുമ്പോൾ നിങ്ങളുടെ ബാലൻസിൽ നിന്ന് മാറ്റിവയ്ക്കുന്ന തുകയും ഇതാണ്. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
stream boolean false true മറുപടി സെർവർ-സെന്റ് ഇവന്റുകളായി അയയ്ക്കുന്നു. താഴെ സ്ട്രീമിംഗ് കാണുക. എല്ലാ മോഡലുകളും
temperature number സാമ്പ്ലിംഗ് ടെമ്പറേച്ചർ. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകളിൽ മൂല്യങ്ങൾ 0-നും 2-നും ഇടയിൽ നിലനിർത്തുന്നു. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number ന്യൂക്ലിയസ് സാമ്പ്ലിംഗ്. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ
stop_sequences array 4 സ്ട്രിങ്ങുകൾ വരെ. ആദ്യം പ്രത്യക്ഷപ്പെടുന്നതിന് തൊട്ടുമുമ്പ് ഉത്തരം അവസാനിക്കുന്നു. stop_reason end_turn ആയി തുടരുന്നു. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ
tools array മോഡലിന് വിളിക്കാവുന്ന ടൂളുകൾ, ഓരോന്നും {"name", "description", "input_schema"} ആയി. താഴെ ടൂളുകൾ കാണുക. എല്ലാ മോഡലുകളും
tool_choice object {"type": "auto"} മോഡലിനെ തീരുമാനിക്കാൻ അനുവദിക്കുന്നു, {"type": "any"} ഒരു ടൂൾ വിളിക്കാൻ നിർബന്ധിക്കുന്നു, {"type": "tool", "name": "…"} ആ ടൂൾ തന്നെ വിളിക്കാൻ നിർബന്ധിക്കുന്നു. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ
thinking object ഉത്തരം നൽകുംമുമ്പ് മോഡൽ എത്രത്തോളം റീസൺ ചെയ്യുന്നു. താഴെ തിങ്കിംഗ് കാണുക. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ
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 മാർക്കറുകൾ എന്നിവ സ്വീകരിക്കുന്നു. അവ മറുപടിയെ മാറ്റില്ല; ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകളിൽ പ്രോംപ്റ്റ് കാഷിംഗ് സ്വയമേവയാണ്.

ഒരു സ്കീമ അനുസരിച്ചുള്ള JSON ഉത്തരം Chat Completions-ൽ response_format ഉപയോഗിച്ചും Responses-ൽ text.format ഉപയോഗിച്ചും ആവശ്യപ്പെടുന്നു. ഘടനയുള്ള ഔട്ട്പുട്ടുകൾ

സിസ്റ്റം പ്രോംപ്റ്റും തിങ്കിംഗും ഉള്ള ഒരു റിക്വസ്റ്റ്

ഈ റിക്വസ്റ്റ് ഒരു സിസ്റ്റം പ്രോംപ്റ്റ്, ഒരു തിങ്കിംഗ് ബജറ്റ്, ഒരു ടെമ്പറേച്ചർ, ഒരു സ്റ്റോപ്പ് സീക്വൻസ് എന്നിവ അയയ്ക്കുന്നു. ഇത് ഒരു ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡൽ ഉപയോഗിക്കുന്നു, അത് ഇവയെല്ലാം ബാധകമാക്കുന്നു.

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)

ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകളിൽ usage പ്രോംപ്റ്റ് കാഷിൽ നിന്ന് വായിച്ച ടോക്കണുകളെ മറ്റ് ഇൻപുട്ട് ടോക്കണുകളിൽ നിന്ന് വേറിട്ട് റിപ്പോർട്ട് ചെയ്യുന്നു.

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

സിസ്റ്റം പ്രോംപ്റ്റ്

system ഒരു സ്ട്രിങ്ങോ [{"type": "text", "text": "…"}] രൂപത്തിലുള്ള ടെക്സ്റ്റ് ബ്ലോക്കുകളുടെ അറേയോ ആണ്. ബ്ലോക്കുകളുടെ ടെക്സ്റ്റുകൾ ഒരു ലൈൻ ബ്രേക്ക് ഉപയോഗിച്ച് ചേർക്കുന്നു.

ഇത് ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro, shannon-coder-1 എന്നിവ ബാധകമാക്കുന്നു. Shannon 3 കുടുംബത്തിലെ ഐഡി ഉപയോഗിക്കുമ്പോൾ, നിർബന്ധമായും പാലിക്കേണ്ട നിർദ്ദേശങ്ങൾ യൂസർ സന്ദേശത്തിൽ ചേർക്കുക.

സന്ദേശങ്ങളും ഉള്ളടക്ക ബ്ലോക്കുകളും

ഒരു സന്ദേശത്തിന് user അല്ലെങ്കിൽ assistant എന്ന role-ഉം ഒരു 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, ചിത്രം ഇൻപുട്ടായി പട്ടികപ്പെടുത്തിയ ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ
{"type": "document", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} ഒരു user സന്ദേശത്തിലെ ഡോക്യുമെന്റ് (PDF, Word, PowerPoint അല്ലെങ്കിൽ Excel), 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-നെ ഒരു റീസണിംഗ് എഫർട്ടിലേക്ക് മാപ്പ് ചെയ്യുന്നു. ഫീൽഡ് ഇല്ലെങ്കിൽ എഫർട്ട് ഹൈ ആണ്.

രൂപം budget_tokens ഫലം
{"type": "disabled"} റീസണിംഗ് ഇല്ല. മറുപടിയിൽ thinking ബ്ലോക്ക് ഇല്ല.
{"type": "enabled", "budget_tokens": 2048} ≤ 2,048 കുറഞ്ഞ എഫർട്ട്.
{"type": "enabled", "budget_tokens": 8192} ≤ 8,192 ഇടത്തരം എഫർട്ട്.
{"type": "enabled", "budget_tokens": 16000} > 8,192 ഉയർന്ന എഫർട്ട്.

റീസൺ ചെയ്യുന്ന ഒരു മോഡൽ അതിന്റെ റീസണിംഗ് ടെക്സ്റ്റിന് മുമ്പായി {"type": "thinking", "thinking": "…"} എന്ന ബ്ലോക്കായി തിരികെ നൽകുന്നു. റീസൺ ചെയ്യുന്ന Shannon ടിയറുകളും അത് അയയ്ക്കുന്നു.

എഫർട്ടുകൾ അവയുടെ സ്വന്തം പേജിൽ വിവരിച്ചിരിക്കുന്നു. റീസണിംഗ് എഫർട്ട്

ടൂളുകൾ

ടൂൾ എന്നത് നിങ്ങളുടെ കോഡ് പ്രവർത്തിപ്പിക്കുന്ന ഒരു ഫംഗ്ഷനാണ്. ഓരോന്നിനെയും 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"} മോഡൽ ഏതെങ്കിലും ഒരു ടൂൾ വിളിക്കണം. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ
{"type": "tool", "name": "…"} മോഡൽ പേര് നൽകിയ ടൂൾ തന്നെ വിളിക്കണം. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ

input_schema ഉള്ള ടൂളുകൾ മാത്രമേ വായിക്കൂ. ഈ എൻഡ്‌പോയിന്റിൽ വെബ് സെർച്ച് ഒരു ടൂൾ അല്ല: web_search ഫീൽഡ് സജ്ജമാക്കുക.

ടൂൾ ലൂപ്പ് അതിന്റെ സ്വന്തം പേജിൽ പൂർണ്ണമായി വിവരിച്ചിരിക്കുന്നു. ഫംഗ്ഷൻ കോളിംഗ്

മറുപടി

ഫീൽഡ് ടൈപ്പ് വിവരണം അയയ്ക്കുന്നത്
id string msg_-നെ തുടർന്ന് 32 ഹെക്സാഡെസിമൽ അക്ഷരങ്ങൾ. എല്ലാ മോഡലുകളും
type string എപ്പോഴും message. എല്ലാ മോഡലുകളും
role string എപ്പോഴും assistant. എല്ലാ മോഡലുകളും
model string മറുപടി നൽകിയ മോഡലിന്റെ കാനോനിക്കൽ ഐഡി. എല്ലാ മോഡലുകളും
content array മറുപടിയുടെ ബ്ലോക്കുകൾ, ഈ ക്രമത്തിൽ: മോഡൽ റീസൺ ചെയ്തെങ്കിൽ thinking, പിന്നെ 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 എന്നത് കാഷിൽ നിന്ന് വായിച്ച പ്രോംപ്റ്റിന്റെ ഭാഗമാണ്; ബാക്കിയാണ് input_tokens. cache_creation_input_tokens എപ്പോഴും 0 ആണ്. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ

മറുപടി ബ്ലോക്കുകൾ

ബ്ലോക്ക് വിവരണം
{"type": "thinking", "thinking": "…"} മോഡലിന്റെ റീസണിംഗ്. 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, സ്ട്രീമുകളിൽ

സ്ട്രീമിംഗ്

സെർവർ-സെന്റ് ഇവന്റുകൾക്കായി stream എന്നത് true ആക്കുക. ഓരോ ഫ്രെയിമിലും ഇവന്റിന്റെ പേരുള്ള ഒരു event: വരിയും, type-ൽ ആ പേര് ആവർത്തിക്കുന്ന JSON ഒബ്ജക്റ്റുള്ള ഒരു data: വരിയും ഉണ്ട്. Anthropic SDK-യുടെ സ്ട്രീം ഹെൽപ്പറുകൾ ഈ ഇവന്റുകൾ നിങ്ങൾക്കായി വായിക്കും:

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-ൽ ഐഡി, റോൾ, മോഡൽ, ശൂന്യമായ content, പൂജ്യത്തിൽ തുടങ്ങുന്ന usage എന്നിവയുണ്ട്.
content_block_start index, content_block ഒരു ബ്ലോക്ക് തുറക്കുന്നു. content_block ഒരു ശൂന്യമായ text അല്ലെങ്കിൽ thinking ബ്ലോക്ക് ആണ്, അല്ലെങ്കിൽ id, name എന്നിവയുള്ള tool_use ബ്ലോക്ക് ആണ്.
content_block_delta index, delta {"type": "thinking_delta", "thinking"} ഒരു thinking ബ്ലോക്കിനായി, റീസണിംഗിന്റെ ഒരു ഭാഗം.
content_block_delta index, delta {"type": "text_delta", "text"} ഒരു text ബ്ലോക്കിനായി, ഉത്തരത്തിന്റെ ഒരു ഭാഗം.
content_block_delta index, delta {"type": "input_json_delta", "partial_json"} ഒരു 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"}

കീപ്-എലൈവ്

അയയ്ക്കുന്നത് വിവരണം
Shannon 3 കുടുംബം, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 ഓരോ 15 സെക്കൻഡിലും {"type": "ping"} എന്ന ഡാറ്റയുള്ള ഒരു ping ഇവന്റ്.
ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ : keepalive എന്ന കമന്റ് വരി, മോഡൽ പ്രവർത്തിക്കുമ്പോൾ ഓരോ 15 സെക്കൻഡിലും.

പരാജയപ്പെടുന്ന ഒരു സ്ട്രീം

സ്ട്രീം തുടങ്ങിയ ശേഷമുള്ള പരാജയം, എറർ മറുപടിയുടെ അതേ ബോഡിയുള്ള ഒരു error ഇവന്റായി വരുന്നു: {"type": "error", "error": {"type", "message"}}. തുടർന്നും അവസാന ഇവന്റുകളായ message_delta, message_stop എന്നിവ വരും. മറുപടി പരാജയപ്പെട്ടതായി കണക്കാക്കി റിക്വസ്റ്റ് വീണ്ടും അയയ്ക്കുക.

എററുകൾ

എററുകൾ Anthropic എറർ ബോഡി ഉപയോഗിക്കുന്നു: type എന്നത് error ആണ്, error ഒബ്ജക്റ്റിൽ ഒരു type-ഉം message-ഉം ഉണ്ട്. ഈ എൻഡ്‌പോയിന്റ് ഏറ്റവും കൂടുതൽ തിരികെ നൽകുന്നവ പട്ടികയിലുണ്ട്. എന്തെല്ലാം വീണ്ടും ശ്രമിക്കണം എന്നതുൾപ്പെടെയുള്ള പൂർണ്ണ പട്ടികയ്ക്ക് സ്വന്തം പേജ് ഉണ്ട്. എറർ ഹാൻഡ്ലിംഗ്

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 ഒരു Shannon മോഡൽ ഐഡി അല്ല.
400 invalid_request_error No user message provided Shannon ടിയറുകൾ: റിക്വസ്റ്റിൽ ഉപയോക്തൃ ടെക്സ്റ്റും tools-ഉം ഇല്ല.
400 invalid_request_error <id> does not accept image input ചിത്രം ഇൻപുട്ട് ഇല്ലാത്ത ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലിലേക്ക് ഒരു ചിത്രം അയച്ചു.
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: നിലവിലെ 4 മണിക്കൂർ വിൻഡോയിലെ നിങ്ങളുടെ പ്ലാനിന്റെ Shannon Coder കോളുകൾ ഉപയോഗിച്ചുതീർന്നു.
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} തിരികെ നൽകുന്നു: ആ റിക്വസ്റ്റിന് ഈടാക്കുന്ന ഇൻപുട്ട് ടോക്കണുകളുടെ എണ്ണം. ഇത് ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾക്ക് ബാധകമാണ്, സൗജന്യമാണ്, ഫ്ലഡ് പ്രൊട്ടക്ഷനിൽ കണക്കാക്കില്ല.

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)

എണ്ണലിന് സ്വന്തം പേജ് ഉണ്ട്, പ്ലെയിൻ-ടെക്സ്റ്റ് എൻഡ്‌പോയിന്റും പരിധികളും സഹിതം. ടോക്കൺ എണ്ണൽ