අන්තර්ගතයට යන්න
Token ගණන් කිරීම

Token ගණන් කිරීම

පෙළක හෝ සම්පූර්ණ ඉල්ලීමක tokens ඔබ එය යැවීමට පෙර ගණන් කරන්න.

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

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

Endpoints දෙකම ගණන් කරන්නේ ඔබ නම් කරන model එකේ tokenizer එකෙනි, සහ කිසිදු model එකක් ධාවනය නොවේ. ඒවා අපගේ සේවාදායකවල ධාවනය වන open-weight models ආවරණය කරයි. /v1/tokenize සරල පෙළක් හෝ Chat Completions සංවාදයක් ගනී. /v1/messages/count_tokens Anthropic Messages format එකේ ඉල්ලීමක් ගනී, එය Anthropic SDK එක සහ Claude Code කරන call එකයි.

ගණන් කිරීම නොමිලේ. Call එකකට ඔබේ API key එක අවශ්‍ය වන අතර, ඔබේ ශේෂයෙන් කිසිවක් ගන්නේ නැත සහ ඔබේ usage log එකේ දිස් නොවේ.

පෙළක් ගණන් කරන්න

model සහ text යවන්න. පෙළ chat හැඩතල ගැන්වීමක් නොමැතිව, එලෙසම ගණන් ගැනේ.

import requests

response = requests.post(
    "https://api.shannon-ai.com/v1/tokenize",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
        "text": "Hello, world",
    },
)
print(response.json()["tokens"])
200 පිළිතුර
{
  "model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
  "tokens": 3
}

මෙම පිටුවේ පිළිතුරුවල ඇති අංක උදාහරණ වේ. එකම පෙළ වෙනස් model එකක වෙනස් ගණනක් දෙයි.

Chat ඉල්ලීමක් ගණන් කරන්න

model සහ messages යවන්න, ඉල්ලීමේ ඇති විට tools සමඟ, ඔබ ඒවා /v1/chat/completions වෙත යවන ආකාරයටම. පිළිතුර යනු සම්පූර්ණ input එකේ ප්‍රමාණයයි.

import requests

request = {
    "model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
    "messages": [
        {"role": "system", "content": "You are a concise assistant."},
        {"role": "user", "content": "What is the weather in Paris?"},
    ],
    "tools": [
        {
            "type": "function",
            "function": {
                "name": "get_weather",
                "description": "Current weather for a city",
                "parameters": {
                    "type": "object",
                    "properties": {"city": {"type": "string"}},
                    "required": ["city"],
                },
            },
        }
    ],
}

response = requests.post(
    "https://api.shannon-ai.com/v1/tokenize",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json=request,
)
print(response.json()["tokens"])
200 පිළිතුර
{
  "model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
  "tokens": 164
}

/v1/tokenize හි fields

Field වර්ගය විස්තරය
model string අවශ්‍යයි. අපගේ සේවාදායකවල ධාවනය වන open-weight model id එකක්. ලොකු සහ කුඩා අකුරු එකම ලෙස සලකයි.
text string Chat හැඩතල ගැන්වීමක් නොමැතිව, එලෙසම ගණන් කළ යුතු පෙළක්. බයිට් 4,000,000 දක්වා. text හෝ messages යවන්න; දෙකම තිබේ නම් text ගණන් ගැනේ.
messages array Chat Completions format එකේ chat පණිවිඩ. ඒවා ඉල්ලීමක සම්පූර්ණ input එක ලෙස ගණන් ගැනේ: model එකේ chat template එක ඒ වටා තබන හැඩතල ගැන්වීම සමඟ සෑම පණිවිඩයක්ම.
tools array ගණනට ඇතුළත් කළ යුතු tool අර්ථ දැක්වීම්. messages සමඟ එකට භාවිතා කෙරේ.

පිළිතුර මෙම fields සහිත JSON object එකකි:

Field වර්ගය විස්තරය
model string ගණන සාදන ලද model id එක, එහි ප්‍රකාශිත අකුරු වින්‍යාසයෙන්.
tokens integer text සමඟ: පෙළේ tokens. messages සමඟ: රූප ඇතුළුව සම්පූර්ණ input එකේ tokens.

Messages ඉල්ලීමක් ගණන් කරන්න

ඔබ /v1/messages වෙත යවන body එකම යවන්න: model, messages, සහ ඔබ භාවිතා කරන විට system සහ tools. නිල Anthropic SDKs මෙම endpoint එක messages.count_tokens හරහා call කරයි.

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 concise assistant.",
    messages=[
        {"role": "user", "content": "Summarise the attached report."}
    ],
)
print(count.input_tokens)
200 පිළිතුර
{
  "input_tokens": 21
}

/v1/messages/count_tokens වෙත යවන ක්ෂේත්‍ර මොනවාද

Field වර්ගය විස්තරය
model string අවශ්‍යයි. අපගේ සේවාදායකවල ධාවනය වන open-weight model id එකක්.
messages array අවශ්‍යයි. Anthropic Messages format එකේ පණිවිඩ. text, image, tool_use සහ tool_result blocks ගණන් ගැනේ.
system string | array System prompt එක: string එකක් හෝ පෙළ කොටස් (text blocks) සහිත array එකක්.
tools array name, description සහ input_schema සහිත tool අර්ථ දැක්වීම්.

අනුකූලතාව සඳහා පිළිගනී, ගණනට බලපෑමක් නොමැතිව: tool_choice, max_tokens, temperature, top_p, stop_sequences, stream, thinking. ඔබට සැබෑ ඉල්ලීමක body එක වෙනස් නොකර යැවිය හැක.

පිළිතුර මෙම fields සහිත JSON object එකකි:

Field වර්ගය විස්තරය
input_tokens integer සම්පූර්ණ input එකේ tokens: system prompt, පණිවිඩ, tools සහ රූප.

සහාය දක්වන models

Endpoints දෙකම ගණන් කරන්නේ අපගේ සේවාදායකවල ධාවනය වන open-weight models සඳහාය. GET /v1/models ඒවාට සහාය දක්වන සෑම model එකකම endpoints හි /v1/tokenize සහ /v1/messages/count_tokens ලැයිස්තුගත කරයි. Shannon ids ඇතුළුව වෙනත් ඕනෑම model අගයකට 400 සමඟ පිළිතුරු ලැබේ.

  • DeepSeek-V4-Pro-0813-3BIT-REAP
  • GLM-5.2-3BIT-REAP
  • Kimi-K3-3BIT-REAP
  • Nemotron3Ultra-3BIT-REAP
  • MiniMax-M3-3BIT-REAP
  • DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP
  • Kimi-K2.6-W4A16-AUTOROUND-REAP
  • Laguna-S-2.1-W4A16-AUTOROUND-REAP
  • inkling-W4A16-AUTOROUND-REAP
  • MiMo-V2.5-Pro-W8A16
  • MiMo-V2.5-W8A16
  • Hy3-W8A16

Shannon model එකක් සඳහා, token ගණන් පිළිතුරේ usage object එකෙන් කියවන්න.

ගණන සාදන ආකාරය

සෑම model එකක්ම ගණන් කරන්නේ එහිම tokenizer එකෙන් සහ එහිම chat template එකෙනි. අක්ෂර හෝ වචන වලින් කරන ඇස්තමේන්තුවක් භාවිතා නොකෙරේ.

ගණන් ගන්නේ කුමක්ද නීතිය
පෙළක් යැවූ ආකාරයටම string එකේ tokens. හිස් string එකක් 0 ලෙස ගණන් ගැනේ.
පණිවිඩ පණිවිඩ සහ tools model එකේම chat template එකෙන් පිළිතුර ආරම්භ වන තැන දක්වා සකස් කෙරෙන අතර, ඒ සම්පූර්ණ prompt එක ගණන් ගැනේ.
Roles system, user, assistant සහ tool පණිවිඩ ගණන් ගැනේ. developer system ලෙස ගණන් ගැනේ. අන්තර්ගතයක් සහ tool call එකක් නැති පණිවිඩයක් කිසිවක් එකතු නොකරයි.
Tool calls සහ ප්‍රතිඵල පෙර assistant turns වල tool calls සහ ඒවායේ ප්‍රතිඵල endpoints දෙකේම ගණනේ කොටසකි.
රූප Body එක තුළ යවන රූපයක් (base64 හෝ data: URL) 28 × 28 pixel patch එකකට එක token බැගින් එකතු කරයි: ceil(width / 28) × ceil(height / 28). http(s) URL එකක් ලෙස දෙන රූපයක් මෙම endpoints මගින් බාගත නොකරන අතර 1,024ක් ලෙස ගණන් ගැනේ.

උදාහරණය: pixel 1,024 × 768 රූපයක් ceil(1024 / 28) × ceil(768 / 28) = 37 × 28 = tokens 1,036ක් ලෙස ගණන් ගැනේ.

ගණන සහ ඉල්ලීමකට අය කරන දේ

සම්පූර්ණ ඉල්ලීමක ගණන එම model එක, පණිවිඩ සහ tools සහිත සැබෑ ඉල්ලීමක input ගණන කරන ආකාරයටම කෙරේ. පිළිතුරක් එම අංකය Chat Completions හි usage.prompt_tokens ලෙසත්, Responses හි usage.input_tokens ලෙසත්, Messages හි usage.input_tokens එකතු usage.cache_read_input_tokens ලෙසත් වාර්තා කරයි.

  • ගණන යනු cached-input වට්ටම ලබා දීමට පෙර input එකයි. සැබෑ ඉල්ලීමක් එම input හි කොටසක් cache එකෙන් කියවා එම කොටස cached rate එකෙන් බිල් කළ හැක. Prompt caching
  • http(s) URL එකක් ලෙස දෙන රූපයක් මෙහි 1,024ක් ලෙස ගණන් ගනී. සැබෑ ඉල්ලීමක් රූපය බාගෙන එය pixels වල ප්‍රමාණයෙන් ගණන් කරයි, එබැවින් අංක දෙක වෙනස් විය හැක. එම අංකයම ලබා ගැනීමට රූපය base64 ලෙස යවන්න.
  • Output ගණනේ කොටසක් නොවේ. සැබෑ ඉල්ලීමක පිළිතුර, තර්කනය ඇතුළුව, ඊට අමතරව output tokens ලෙස බිල් කෙරේ.
  • text ගණනට chat හැඩතල ගැන්වීමක් නැත. ලේඛනයක් හෝ prompt කොටසක් මැනීමට එය භාවිතා කරන්න, සහ ඉල්ලීමක් මැනීමට messages ආකාරය භාවිතා කරන්න.

ගණනක් පිරිවැයකට හැරවීමට, එය model එකේ tokens 1Mකට input මිලෙන් ගුණ කරන්න. Models සහ මිල ගණන්

සීමා

සීමාව අගය එයට ඉහළින්
text හි දිග බයිට් 4,000,000 (UTF-8) text too long පණිවිඩය සහිත 413
ඉල්ලීමේ body එක 32 MiB 413
ඉල්ලීමකට එක පෙළක් හෝ එක සංවාදයක් පෙළ කිහිපයක් ගණන් කිරීමට පෙළකට එක ඉල්ලීම බැගින් යවන්න.

ගණන් කිරීමේ calls විනාඩියකට ඉල්ලීම් 120 සීමාවට ගණන් නොගනී. සීමා සහ ශේෂය

දෝෂ

Status Type පණිවිඩය කවදාද
400 invalid_request_error tokenize is available for the hosted open models; unknown model: <model> අපගේ සේවාදායකවල ධාවනය වන open-weight id එකක් නොවන model එකක් සමඟ /v1/tokenize.
400 invalid_request_error count_tokens is available for the hosted open models; unknown model: <model> අපගේ සේවාදායකවල ධාවනය වන open-weight id එකක් නොවන model එකක් සමඟ, හෝ model නොමැතිව /v1/messages/count_tokens.
400 invalid_request_error send `text` or `messages` text හෝ messages දෙකම නොමැතිව /v1/tokenize.
401 authentication_error Missing authentication / Invalid API key Key එකක් යවා නැත, නැතහොත් key එක වලංගු නොවේ.
413 invalid_request_error text too long text බයිට් 4,000,000ට වඩා දිගය. 32 MiB ට වැඩි body එකකට ද 413 සමඟ පිළිතුරු ලැබේ.
415 invalid_request_error Expected request with `Content-Type: application/json` ඉල්ලීමට JSON content type එකක් නැත.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … අවශ්‍ය field එකක් නැත (/v1/tokenize හි model, /v1/messages/count_tokens හි messages) නැතහොත් field එකක type එක වැරදිය.
503 api_error token counting is temporarily unavailable for this model මෙම මොහොතේ මෙම model එක සඳහා ගණන් කිරීම කළ නොහැක. පසුව නැවත උත්සාහ කරන්න.

/v1/tokenize දෝෂ OpenAI හැඩයෙන් ආපසු දෙයි. /v1/messages/count_tokens හි endpoint එකේම දෝෂ (model සඳහා 400, 503) Anthropic හැඩයෙන් පැමිණෙන අතර, 401, 413, 415 සහ 422 OpenAI හැඩයෙන් පැමිණේ. මුලින් status code එක කියවා, ඉන්පසු හැඩ දෙකේම ඇති error.type සහ error.message කියවන්න.

400 /v1/tokenize
{
  "error": {
    "type": "invalid_request_error",
    "message": "tokenize is available for the hosted open models; unknown model: shannon-3"
  }
}
400 /v1/messages/count_tokens
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "count_tokens is available for the hosted open models; unknown model: shannon-3"
  }
}