मजकुराकडे जा
Anthropic फॉरमॅट

Anthropic फॉरमॅट

POST /v1/messages Anthropic Messages फॉरमॅटमधील रिक्वेस्ट घेतो आणि त्याच फॉरमॅटमध्ये उत्तर देतो, स्ट्रीम केलेले किंवा नसलेले. Anthropic SDK सोबत आणि त्यावर बनवलेल्या Claude Code सारख्या टूल्ससोबत वापरा: बेस URL सेट करा, तुमची Shannon API की वापरा आणि Shannon मॉडेल id द्या.

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

Anthropic SDK ला Shannon बेस 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 ऐच्छिक. रिक्वेस्टसाठी तुमचा स्वतःचा id. तो उत्तरात तसाच परत येतो; तो नसल्यास उत्तरात 12 हेक्साडेसिमल अक्षरांचा id असतो.

रिक्वेस्ट फील्ड्स

फक्त messages आवश्यक आहे. लागू करणारे स्तंभ ज्या मॉडेल्सवर फील्ड उत्तर बदलते त्यांची नावे देतो. होस्ट केलेली open-weight मॉडेल्स म्हणजे मॉडेल यादीतील बारा id; Shannon 3 कुटुंब म्हणजे shannon-3, shannon-3-pro, shannon-3.1 आणि shannon-3.1-pro. मॉडेल्स आणि किंमत

फील्ड प्रकार डिफॉल्ट वर्णन लागू करणारे
model string shannon-1.6-lite मॉडेल यादीतील Shannon मॉडेल id. प्रत्येक रिक्वेस्टसोबत पाठवा. जुळवताना अक्षरांचा केस (मोठे/लहान) विचारात घेतला जात नाही. इतर कोणतेही नाव 400 unknown model परत करते, त्यामुळे स्वतःची मॉडेल नावे पाठवणारे टूल Shannon id वर सेट करावे लागते. सर्व मॉडेल्स
messages array आवश्यक. संभाषण, सर्वात जुना संदेश आधी, user आणि assistant भूमिकांसह. खाली संदेश आणि कंटेंट ब्लॉक्स पहा. सर्व मॉडेल्स
system string | array मॉडेलसाठी सूचना: स्ट्रिंग किंवा मजकूर ब्लॉक्सची अ‍ॅरे. खाली सिस्टम प्रॉम्प्ट पहा. होस्ट केलेली open-weight मॉडेल्स, shannon-1.6-*, shannon-2-*, shannon-coder-1
max_tokens integer 4096 उत्तराची कमाल मर्यादा, टोकन्समध्ये. या एंडपॉइंटवर ऐच्छिक; Anthropic SDK नेहमी पाठवतो. 1 ते 65,536 बाहेरील व्हॅल्यू त्या श्रेणीत आणली जाते. रिक्वेस्ट चालू असताना तुमच्या बॅलन्समधून बाजूला ठेवली जाणारी ही रक्कम देखील आहे. होस्ट केलेली open-weight मॉडेल्स, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
stream boolean false true उत्तर सर्व्हर-सेंट इव्हेंट्स म्हणून पाठवते. खाली स्ट्रीमिंग पहा. सर्व मॉडेल्स
temperature number सॅम्पलिंग टेंपरेचर. होस्ट केलेल्या open-weight मॉडेल्सवर व्हॅल्यू 0 ते 2 च्या दरम्यान ठेवल्या जातात. होस्ट केलेली open-weight मॉडेल्स, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number न्यूक्लियस सॅम्पलिंग. होस्ट केलेली open-weight मॉडेल्स
stop_sequences array जास्तीत जास्त 4 स्ट्रिंग्ज. दिसणाऱ्या पहिल्या स्ट्रिंगच्या आधी उत्तर संपते. stop_reason हा end_turn राहतो. होस्ट केलेली open-weight मॉडेल्स
tools array मॉडेल कॉल करू शकणारी टूल्स, प्रत्येक {"name", "description", "input_schema"} म्हणून. खाली टूल्स पहा. सर्व मॉडेल्स
tool_choice object {"type": "auto"} मॉडेलला ठरवू देते, {"type": "any"} त्याला टूल कॉल करायला लावते, {"type": "tool", "name": "…"} त्याला तेच टूल कॉल करायला लावते. होस्ट केलेली open-weight मॉडेल्स
thinking object उत्तर देण्यापूर्वी मॉडेल किती रीझनिंग करते. खाली थिंकिंग पहा. होस्ट केलेली 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 मार्कर स्वीकारले जातात, जेणेकरून विद्यमान क्लायंट कोड न बदलता चालेल. ते उत्तर बदलत नाहीत; होस्ट केलेल्या open-weight मॉडेल्सवर प्रॉम्प्ट कॅशिंग आपोआप होते.

स्कीमानुसार JSON उत्तर Chat Completions वर response_format ने आणि Responses वर text.format ने मागवले जाते. संरचित आउटपुट्स

सिस्टम प्रॉम्प्ट आणि थिंकिंगसह रिक्वेस्ट

ही रिक्वेस्ट सिस्टम प्रॉम्प्ट, थिंकिंग बजेट, टेंपरेचर आणि स्टॉप सीक्वेन्स पाठवते. ती होस्ट केलेले 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 प्रॉम्प्ट कॅशमधून वाचलेले टोकन्स इतर इनपुट टोकन्सपासून वेगळे दाखवतो.

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

सिस्टम प्रॉम्प्ट

system ही स्ट्रिंग असते, किंवा [{"type": "text", "text": "…"}] या रूपातील मजकूर ब्लॉक्सची अ‍ॅरे. ब्लॉक्सचे मजकूर ओळीच्या खंडाने जोडले जातात.

हे होस्ट केलेली open-weight मॉडेल्स, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro आणि shannon-coder-1 लागू करतात. Shannon 3 कुटुंबातील id सह, जे नियम पाळले पाहिजेत ते user संदेशात ठेवा.

संदेश आणि कंटेंट ब्लॉक्स

संदेशाला एक 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": "…"}} 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 संदेशातून वाचली जातात. आकार आणि मर्यादांसाठी स्वतंत्र पान आहे. इमेज आणि फाइल्स

थिंकिंग

होस्ट केलेली open-weight मॉडेल्स thinking ला रीझनिंग effort शी जोडतात. फील्ड नसल्यास effort उच्च असतो.

रूप budget_tokens परिणाम
{"type": "disabled"} रीझनिंग नाही. उत्तरात thinking ब्लॉक नसतो.
{"type": "enabled", "budget_tokens": 2048} ≤ 2,048 कमी effort.
{"type": "enabled", "budget_tokens": 8192} ≤ 8,192 मध्यम effort.
{"type": "enabled", "budget_tokens": 16000} > 8,192 उच्च effort.

रीझनिंग करणारे मॉडेल आपले रीझनिंग मजकुराच्या आधी {"type": "thinking", "thinking": "…"} या ब्लॉकमध्ये परत करते. रीझनिंग करणारे Shannon टियर्सही ते पाठवतात.

effort चे वर्णन स्वतंत्र पानावर आहे. रीझनिंग effort

टूल्स

टूल म्हणजे तुमचा कोड चालवतो असे फंक्शन. प्रत्येकाचे वर्णन 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 असलेली टूल्स वाचली जातात. या एंडपॉइंटवर वेब सर्च हे टूल नाही: web_search फील्ड सेट करा.

टूल लूपचे संपूर्ण वर्णन स्वतंत्र पानावर आहे. फंक्शन कॉलिंग

उत्तर

फील्ड प्रकार वर्णन पाठवणारा
id string msg_ नंतर 32 हेक्साडेसिमल अक्षरे. सर्व मॉडेल्स
type string नेहमी message. सर्व मॉडेल्स
role string नेहमी assistant. सर्व मॉडेल्स
model string उत्तर देणाऱ्या मॉडेलचा कॅनॉनिकल id. सर्व मॉडेल्स
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 असतो. होस्ट केलेली open-weight मॉडेल्स

उत्तराचे ब्लॉक्स

ब्लॉक वर्णन
{"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 मध्ये id, भूमिका, मॉडेल, रिकामा 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"}

Keep-alive

पाठवणारा वर्णन
Shannon 3 कुटुंब, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 {"type": "ping"} डेटा असलेला ping इव्हेंट, दर 15 सेकंदांनी.
होस्ट केलेली open-weight मॉडेल्स मॉडेल काम करत असताना दर 15 सेकंदांनी : keepalive ही कमेंट ओळ.

अयशस्वी होणारा स्ट्रीम

स्ट्रीम सुरू झाल्यानंतरचा बिघाड म्हणजे एरर उत्तराच्या बॉडीसारखीच बॉडी असलेला 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 मॉडेल id नाही.
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: सध्याच्या 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} परत करतो: रिक्वेस्टसाठी आकारल्या जाणाऱ्या इनपुट टोकन्सची संख्या. हे होस्ट केलेल्या 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)

टोकन मोजणीचे स्वतःचे पान आहे, ज्यात प्लेन-टेक्स्ट एंडपॉइंट आणि मर्यादा आहेत. टोकन मोजणी