ടോക്കൺ എണ്ണൽ
ഒരു ടെക്സ്റ്റിന്റെയോ മുഴുവൻ റിക്വസ്റ്റിന്റെയോ ടോക്കണുകൾ അയയ്ക്കുന്നതിന് മുമ്പ് എണ്ണുക.
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"]) const response = await fetch("https://api.shannon-ai.com/v1/tokenize", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
text: "Hello, world",
}),
});
const { tokens } = await response.json();
console.log(tokens); curl https://api.shannon-ai.com/v1/tokenize \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
"text": "Hello, world"
}' {
"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"]) const 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"],
},
},
},
],
};
const response = await fetch("https://api.shannon-ai.com/v1/tokenize", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify(request),
});
const { tokens } = await response.json();
console.log(tokens); curl https://api.shannon-ai.com/v1/tokenize \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"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"]
}
}
}
]
}' {
"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) import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com",
});
const count = await client.messages.countTokens({
model: "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
system: "You are a concise assistant.",
messages: [
{ role: "user", content: "Summarise the attached report." },
],
});
console.log(count.input_tokens); curl https://api.shannon-ai.com/v1/messages/count_tokens \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
"system": "You are a concise assistant.",
"messages": [
{"role": "user", "content": "Summarise the attached report."}
]
}' {
"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-REAPGLM-5.2-3BIT-REAPKimi-K3-3BIT-REAPNemotron3Ultra-3BIT-REAPMiniMax-M3-3BIT-REAPDeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAPKimi-K2.6-W4A16-AUTOROUND-REAPLaguna-S-2.1-W4A16-AUTOROUND-REAPinkling-W4A16-AUTOROUND-REAPMiMo-V2.5-Pro-W8A16MiMo-V2.5-W8A16Hy3-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-ഉം.
{
"error": {
"type": "invalid_request_error",
"message": "tokenize is available for the hosted open models; unknown model: shannon-3"
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "count_tokens is available for the hosted open models; unknown model: shannon-3"
}
}