ഉള്ളടക്കത്തിലേക്ക് പോകുക
ടോക്കൺ എണ്ണൽ

ടോക്കൺ എണ്ണൽ

ഒരു ടെക്സ്റ്റിന്റെയോ മുഴുവൻ റിക്വസ്റ്റിന്റെയോ ടോക്കണുകൾ അയയ്ക്കുന്നതിന് മുമ്പ് എണ്ണുക.

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

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

രണ്ട് എൻഡ്‌പോയിന്റുകളും നിങ്ങൾ പേരുനൽകുന്ന മോഡലിന്റെ ടോക്കണൈസർ ഉപയോഗിച്ച് എണ്ണുന്നു, ഒരു മോഡലും പ്രവർത്തിക്കുന്നില്ല. അവ ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകളെ ഉൾക്കൊള്ളുന്നു. /v1/tokenize സാധാരണ ടെക്സ്റ്റോ Chat Completions സംഭാഷണമോ സ്വീകരിക്കുന്നു. /v1/messages/count_tokens Anthropic Messages ഫോർമാറ്റിലെ റിക്വസ്റ്റ് സ്വീകരിക്കുന്നു, Anthropic SDK-യും Claude Code-ഉം നടത്തുന്ന കോൾ അതാണ്.

എണ്ണൽ സൗജന്യമാണ്. കോളിന് നിങ്ങളുടെ API കീ വേണം, നിങ്ങളുടെ ബാലൻസിൽ നിന്ന് ഒന്നും എടുക്കില്ല, ഉപയോഗ ലോഗിൽ കാണിക്കുകയുമില്ല.

ഒരു ടെക്സ്റ്റ് എണ്ണുക

model-ഉം text-ഉം അയയ്ക്കുക. ടെക്സ്റ്റ് ചാറ്റ് ഫോർമാറ്റിംഗ് ഇല്ലാതെ, അതേപടി എണ്ണുന്നു.

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
}

ഈ പേജിലെ മറുപടികളിലെ സംഖ്യകൾ ഉദാഹരണങ്ങളാണ്. ഒരേ ടെക്സ്റ്റ് മറ്റൊരു മോഡലിൽ വ്യത്യസ്ത എണ്ണം നൽകും.

ഒരു ചാറ്റ് റിക്വസ്റ്റ് എണ്ണുക

/v1/chat/completions-ലേക്ക് അയയ്ക്കുന്നതുപോലെ തന്നെ model-ഉം messages-ഉം, റിക്വസ്റ്റിൽ ഉണ്ടെങ്കിൽ tools-ഉം അയയ്ക്കുക. മറുപടി മുഴുവൻ ഇൻപുട്ടിന്റെയും വലിപ്പമാണ്.

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-ന്റെ ഫീൽഡുകൾ

ഫീൽഡ് ടൈപ്പ് വിവരണം
model string നിർബന്ധം. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡൽ ഐഡി. വലിയക്ഷരവും ചെറിയക്ഷരവും ഒരുപോലെ കണക്കാക്കും.
text string ചാറ്റ് ഫോർമാറ്റിംഗ് ഇല്ലാതെ, അതേപടി എണ്ണേണ്ട ടെക്സ്റ്റ്. 4,000,000 ബൈറ്റ് വരെ. text അല്ലെങ്കിൽ messages അയയ്ക്കുക; രണ്ടും ഉണ്ടെങ്കിൽ text എണ്ണും.
messages array Chat Completions ഫോർമാറ്റിലെ ചാറ്റ് മെസേജുകൾ. റിക്വസ്റ്റിന്റെ മുഴുവൻ ഇൻപുട്ടായി എണ്ണുന്നു: ഓരോ മെസേജും മോഡലിന്റെ ചാറ്റ് ടെംപ്ലേറ്റ് അതിന് ചുറ്റും വയ്ക്കുന്ന ഫോർമാറ്റിംഗോടെ.
tools array എണ്ണത്തിൽ ഉൾപ്പെടുത്തേണ്ട ടൂൾ നിർവചനങ്ങൾ. messages-നൊപ്പം ഉപയോഗിക്കുന്നു.

മറുപടി ഈ ഫീൽഡുകളുള്ള ഒരു JSON ഒബ്ജക്റ്റ് ആണ്:

ഫീൽഡ് ടൈപ്പ് വിവരണം
model string എണ്ണം ഉണ്ടാക്കിയ മോഡൽ ഐഡി, പ്രസിദ്ധീകരിച്ച രൂപത്തിൽ.
tokens integer text ഉള്ളപ്പോൾ: ടെക്സ്റ്റിന്റെ ടോക്കണുകൾ. messages ഉള്ളപ്പോൾ: ചിത്രങ്ങൾ ഉൾപ്പെടെ മുഴുവൻ ഇൻപുട്ടിന്റെ ടോക്കണുകൾ.

ഒരു Messages റിക്വസ്റ്റ് എണ്ണുക

/v1/messages-ലേക്ക് അയയ്ക്കുന്ന ബോഡി അയയ്ക്കുക: model, messages, ഉപയോഗിക്കുന്നെങ്കിൽ system, tools. ഔദ്യോഗിക Anthropic SDK-കൾ ഈ എൻഡ്‌പോയിന്റ് messages.count_tokens വഴി വിളിക്കുന്നു.

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 എന്നതിന്റെ റിക്വസ്റ്റ് ഫീൽഡുകൾ

ഫീൽഡ് ടൈപ്പ് വിവരണം
model string നിർബന്ധം. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡൽ ഐഡി.
messages array നിർബന്ധം. Anthropic Messages ഫോർമാറ്റിലെ മെസേജുകൾ. text, image, tool_use, tool_result ബ്ലോക്കുകൾ എണ്ണുന്നു.
system string | array സിസ്റ്റം പ്രോംപ്റ്റ്: ഒരു സ്ട്രിംഗ് അല്ലെങ്കിൽ ടെക്സ്റ്റ് ബ്ലോക്കുകളുടെ അറേ.
tools array name, description, input_schema ഉള്ള ടൂൾ നിർവചനങ്ങൾ.

അനുയോജ്യതയ്ക്കായി സ്വീകരിക്കുന്നു, എണ്ണത്തിൽ ഫലമില്ല: tool_choice, max_tokens, temperature, top_p, stop_sequences, stream, thinking. യഥാർത്ഥ റിക്വസ്റ്റിന്റെ ബോഡി മാറ്റമില്ലാതെ നൽകാം.

മറുപടി ഈ ഫീൽഡുകളുള്ള ഒരു JSON ഒബ്ജക്റ്റ് ആണ്:

ഫീൽഡ് ടൈപ്പ് വിവരണം
input_tokens integer മുഴുവൻ ഇൻപുട്ടിന്റെയും ടോക്കണുകൾ: സിസ്റ്റം പ്രോംപ്റ്റ്, മെസേജുകൾ, ടൂളുകൾ, ചിത്രങ്ങൾ.

പിന്തുണയ്ക്കുന്ന മോഡലുകൾ

രണ്ട് എൻഡ്‌പോയിന്റുകളും ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾക്ക് എണ്ണിത്തരുന്നു. GET /v1/models അവ പിന്തുണയ്ക്കുന്ന ഓരോ മോഡലിന്റെയും endpoints-ൽ /v1/tokenize, /v1/messages/count_tokens എന്നിവ ലിസ്റ്റ് ചെയ്യുന്നു. Shannon ഐഡികൾ ഉൾപ്പെടെ മറ്റേതൊരു 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 മോഡലിന്, ടോക്കൺ എണ്ണങ്ങൾ മറുപടിയിലെ usage ഒബ്ജക്റ്റിൽ നിന്ന് വായിക്കുക.

എണ്ണം എങ്ങനെ ഉണ്ടാക്കുന്നു

ഓരോ മോഡലും അതിന്റെ സ്വന്തം ടോക്കണൈസറും സ്വന്തം ചാറ്റ് ടെംപ്ലേറ്റും ഉപയോഗിച്ച് എണ്ണുന്നു. അക്ഷരങ്ങളുടെയോ വാക്കുകളുടെയോ അടിസ്ഥാനത്തിലുള്ള ഏകദേശ കണക്ക് ഉപയോഗിക്കുന്നില്ല.

എണ്ണുന്നത് നിയമം
ഒരു ടെക്സ്റ്റ് അയച്ച സ്ട്രിംഗിന്റെ ടോക്കണുകൾ. ശൂന്യ സ്ട്രിംഗ് 0 ആയി കണക്കാക്കും.
മെസേജുകൾ മെസേജുകളും ടൂളുകളും മോഡലിന്റെ സ്വന്തം ചാറ്റ് ടെംപ്ലേറ്റ് ഉപയോഗിച്ച്, മറുപടി തുടങ്ങുന്ന ബിന്ദു വരെ ക്രമീകരിക്കുന്നു, ആ മുഴുവൻ പ്രോംപ്റ്റും എണ്ണുന്നു.
റോളുകൾ system, user, assistant, tool മെസേജുകൾ എണ്ണുന്നു. developer എന്നത് system ആയി കണക്കാക്കുന്നു. ഉള്ളടക്കവും ടൂൾ കോളും ഇല്ലാത്ത മെസേജ് ഒന്നും ചേർക്കുന്നില്ല.
ടൂൾ കോളുകളും ഫലങ്ങളും മുൻ അസിസ്റ്റന്റ് ടേണുകളിലെ ടൂൾ കോളുകളും അവയുടെ ഫലങ്ങളും, രണ്ട് എൻഡ്‌പോയിന്റുകളിലും, എണ്ണത്തിന്റെ ഭാഗമാണ്.
ചിത്രങ്ങൾ ബോഡിക്കുള്ളിൽ (base64 അല്ലെങ്കിൽ data: URL) അയച്ച ചിത്രം ഓരോ 28 × 28 പിക്സൽ പാച്ചിനും ഒരു ടോക്കൺ ചേർക്കുന്നു: ceil(width / 28) × ceil(height / 28). http(s) URL ആയി നൽകിയ ചിത്രം ഈ എൻഡ്‌പോയിന്റുകൾ ഡൗൺലോഡ് ചെയ്യില്ല, 1,024 ആയി കണക്കാക്കും.

ഉദാഹരണം: 1,024 × 768 പിക്സൽ ചിത്രം ceil(1024 / 28) × ceil(768 / 28) = 37 × 28 = 1,036 ടോക്കണുകളായി കണക്കാക്കും.

എണ്ണവും ഒരു റിക്വസ്റ്റിന് ഈടാക്കുന്നതും

മുഴുവൻ റിക്വസ്റ്റിന്റെയും എണ്ണം, ഇതേ മോഡൽ, മെസേജുകൾ, ടൂളുകൾ എന്നിവയുള്ള യഥാർത്ഥ റിക്വസ്റ്റിന്റെ ഇൻപുട്ട് എണ്ണം ഉണ്ടാക്കുന്ന അതേ രീതിയിലാണ് ഉണ്ടാക്കുന്നത്. മറുപടി ആ സംഖ്യയെ Chat Completions-ൽ usage.prompt_tokens ആയും, Responses-ൽ usage.input_tokens ആയും, Messages-ൽ usage.input_tokens കൂടാതെ usage.cache_read_input_tokens ആയും റിപ്പോർട്ട് ചെയ്യുന്നു.

  • എണ്ണം എന്നത് കാഷെഡ്-ഇൻപുട്ട് കിഴിവിന് മുമ്പുള്ള ഇൻപുട്ടാണ്. യഥാർത്ഥ റിക്വസ്റ്റ് ആ ഇൻപുട്ടിന്റെ ഒരു ഭാഗം കാഷിൽ നിന്ന് വായിക്കുകയും ആ ഭാഗം കാഷെഡ് നിരക്കിൽ ബിൽ ചെയ്യുകയും ചെയ്തേക്കാം. പ്രോംപ്റ്റ് കാഷിംഗ്
  • http(s) URL ആയി നൽകിയ ചിത്രം ഇവിടെ 1,024 ആയി കണക്കാക്കും. യഥാർത്ഥ റിക്വസ്റ്റ് ചിത്രം ഡൗൺലോഡ് ചെയ്ത് പിക്സലിലെ വലിപ്പത്തിൽ നിന്ന് എണ്ണുന്നു, അതിനാൽ രണ്ട് സംഖ്യകളും വ്യത്യസ്തമാകാം. ഒരേ സംഖ്യ ലഭിക്കാൻ ചിത്രം base64 ആയി അയയ്ക്കുക.
  • ഔട്ട്പുട്ട് എണ്ണത്തിന്റെ ഭാഗമല്ല. യഥാർത്ഥ റിക്വസ്റ്റിന്റെ മറുപടി, റീസണിംഗ് ഉൾപ്പെടെ, അതിന് പുറമെ ഔട്ട്പുട്ട് ടോക്കണുകളായി ബിൽ ചെയ്യും.
  • text എണ്ണത്തിന് ചാറ്റ് ഫോർമാറ്റിംഗ് ഇല്ല. ഒരു ഡോക്യുമെന്റോ പ്രോംപ്റ്റിന്റെ ഭാഗമോ അളക്കാൻ ഇത് ഉപയോഗിക്കുക, ഒരു റിക്വസ്റ്റ് അളക്കാൻ messages രൂപം ഉപയോഗിക്കുക.

ഒരു എണ്ണത്തെ ചെലവാക്കി മാറ്റാൻ, അതിനെ മോഡലിന്റെ 1M ടോക്കണുകളുടെ ഇൻപുട്ട് വില കൊണ്ട് ഗുണിക്കുക. മോഡലുകളും വിലയും

പരിധികൾ

പരിധി മൂല്യം അതിന് മുകളിൽ
text-ന്റെ നീളം 4,000,000 ബൈറ്റ് (UTF-8) text too long സന്ദേശത്തോടെ 413
റിക്വസ്റ്റ് ബോഡി 32 MiB 413
ഓരോ റിക്വസ്റ്റിനും ഒരു ടെക്സ്റ്റ് അല്ലെങ്കിൽ ഒരു സംഭാഷണം ഒന്നിലധികം ടെക്സ്റ്റുകൾ എണ്ണാൻ ഓരോ ടെക്സ്റ്റിനും ഒരു റിക്വസ്റ്റ് അയയ്ക്കുക.

എണ്ണൽ കോളുകൾ മിനിറ്റിൽ 120 റിക്വസ്റ്റുകൾ എന്ന പരിധിയിൽ കണക്കാക്കില്ല. പരിധികളും ബാലൻസും

പിശകുകൾ

സ്റ്റാറ്റസ് ടൈപ്പ് സന്ദേശം എപ്പോൾ
400 invalid_request_error tokenize is available for the hosted open models; unknown model: <model> ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് ഐഡി അല്ലാത്ത model ഉള്ള /v1/tokenize.
400 invalid_request_error count_tokens is available for the hosted open models; unknown model: <model> ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് ഐഡി അല്ലാത്ത 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 കീ അയച്ചില്ല, അല്ലെങ്കിൽ കീ സാധുവല്ല.
413 invalid_request_error text too long text 4,000,000 ബൈറ്റിനേക്കാൾ നീളമുള്ളതാണ്. 32 MiB-യിൽ കൂടുതലുള്ള ബോഡിക്കും 413 മറുപടി ലഭിക്കും.
415 invalid_request_error Expected request with `Content-Type: application/json` റിക്വസ്റ്റിൽ JSON കണ്ടന്റ് ടൈപ്പ് ഇല്ല.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … ആവശ്യമായ ഒരു ഫീൽഡ് ഇല്ല (/v1/tokenize-ൽ model, /v1/messages/count_tokens-ൽ messages) അല്ലെങ്കിൽ ഒരു ഫീൽഡിന് തെറ്റായ ടൈപ്പ് ആണ്.
503 api_error token counting is temporarily unavailable for this model ഇപ്പോൾ ഈ മോഡലിന് എണ്ണൽ നടത്താൻ കഴിയില്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.

/v1/tokenize പിശകുകൾ OpenAI ഘടനയിൽ നൽകുന്നു. /v1/messages/count_tokens-ൽ എൻഡ്‌പോയിന്റിന്റെ സ്വന്തം പിശകുകൾ (മോഡലിന് 400, 503) Anthropic ഘടനയിലും, 401, 413, 415, 422 എന്നിവ OpenAI ഘടനയിലും വരും. ആദ്യം സ്റ്റാറ്റസ് കോഡ് വായിക്കുക, തുടർന്ന് രണ്ട് ഘടനകളിലും ഉള്ള 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"
  }
}