Tókatalning
Teldu tóka texta eða heillar beiðni áður en þú sendir hana.
POST https://api.shannon-ai.com/v1/tokenize
POST https://api.shannon-ai.com/v1/messages/count_tokens
Báðir endapunktarnir telja með tokenizer líkansins sem þú nefnir, og ekkert líkan keyrir. Þeir ná yfir hýstu líkönin með opnum þyngdum. /v1/tokenize tekur venjulegan texta eða Chat Completions samtal. /v1/messages/count_tokens tekur beiðni á Anthropic Messages sniði, sem er kallið sem Anthropic SDK og Claude Code gera.
Talning er ókeypis. Kall þarf API lykilinn þinn, tekur ekkert af stöðunni þinni og birtist ekki í notkunarskránni þinni.
Telja texta
Sendu model og text. Textinn er talinn eins og hann er, án spjallsniðs utan um hann.
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
} Tölurnar í svörunum á þessari síðu eru dæmi. Sami texti gefur aðra talningu á öðru líkani.
Telja spjallbeiðni
Sendu model og messages, með tools þegar beiðnin hefur þau, nákvæmlega eins og þú myndir senda þau á /v1/chat/completions. Svarið er stærð alls inntaksins.
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
} Reitir /v1/tokenize
| Reitur | Gerð | Lýsing |
|---|---|---|
model | string | Nauðsynlegt. Auðkenni hýsts líkans með opnum þyngdum. Há- og lágstafir eru meðhöndlaðir eins. |
text | string | Texti sem á að telja eins og hann er, án spjallsniðs. Allt að 4,000,000 bæti. Sendu text eða messages; þegar bæði eru til staðar er text talið. |
messages | array | Spjallskilaboð á Chat Completions sniði. Þau eru talin sem fullt inntak beiðni: hver skilaboð með því sniði sem spjallsniðmát líkansins setur utan um þau. |
tools | array | Tólaskilgreiningar til að hafa með í talningunni. Notað ásamt messages. |
Svarið er JSON-hlutur með þessum reitum:
| Reitur | Gerð | Lýsing |
|---|---|---|
model | string | Líkanaauðkennið sem talningin var gerð fyrir, í útgefinni stafsetningu þess. |
tokens | integer | Með text: tókar textans. Með messages: tókar alls inntaksins, myndir meðtaldar. |
Telja Messages beiðni
Sendu meginmálið sem þú myndir senda á /v1/messages: model, messages, og system og tools þegar þú notar þau. Opinberu Anthropic SDK kalla á þennan endapunkt í gegnum 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
} Reitir /v1/messages/count_tokens
| Reitur | Gerð | Lýsing |
|---|---|---|
model | string | Nauðsynlegt. Auðkenni hýsts líkans með opnum þyngdum. |
messages | array | Nauðsynlegt. Skilaboð á Anthropic Messages sniði. text, image, tool_use og tool_result blokkir eru taldar. |
system | string | array | Kerfis-prompt: strengur eða fylki af textablokkum. |
tools | array | Tólaskilgreiningar með name, description og input_schema. |
Samþykkt vegna samhæfni, án áhrifa á talninguna: tool_choice, max_tokens, temperature, top_p, stop_sequences, stream, thinking. Þú getur sent meginmál raunverulegrar beiðni óbreytt.
Svarið er JSON-hlutur með þessum reitum:
| Reitur | Gerð | Lýsing |
|---|---|---|
input_tokens | integer | Tókar alls inntaksins: kerfis-prompt, skilaboð, tól og myndir. |
Studd líkön
Báðir endapunktarnir telja fyrir hýstu líkönin með opnum þyngdum. GET /v1/models telur /v1/tokenize og /v1/messages/count_tokens upp í endpoints hvers líkans sem styður þá. Öllum öðrum model gildum, Shannon auðkennum meðtöldum, er svarað með 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
Fyrir Shannon líkan skaltu lesa tókafjöldann úr usage hlutnum í svari.
Hvernig talningin er gerð
Hvert líkan er talið með sínum eigin tokenizer og sinni eigin spjallsniðmáti. Engin ágiskun út frá stöfum eða orðum er notuð.
| Hvað er talið | Regla |
|---|---|
| Texti | Tókar strengsins eins og hann er sendur. Tómur strengur telst 0. |
| Skilaboð | Skilaboðin og tólin eru sett upp með spjallsniðmáti líkansins sjálfs, fram að þeim stað þar sem svarið hefst, og allt það prompt er talið. |
| Hlutverk | system, user, assistant og tool skilaboð eru talin. developer er talið sem system. Skilaboð án efnis og án tólakalls bæta engu við. |
| Tólaköll og niðurstöður | Tólaköll fyrri umferða assistant og niðurstöður þeirra eru hluti af talningunni, á báðum endapunktum. |
| Myndir | Mynd send inni í meginmálinu (base64 eða data: URL) bætir við einum tóka fyrir hvern 28 × 28 pixla reit: ceil(width / 28) × ceil(height / 28). Mynd gefin sem http(s) URL er ekki sótt af þessum endapunktum og telst 1,024. |
Dæmi: mynd upp á 1,024 × 768 pixla telst ceil(1024 / 28) × ceil(768 / 28) = 37 × 28 = 1,036 tókar.
Talningin og hvað beiðni er gjaldfærð
Talning heillar beiðni er gerð á sama hátt og inntakstalning raunverulegrar beiðni með sama líkani, skilaboðum og tólum. Svar skilar þeirri tölu sem usage.prompt_tokens í Chat Completions, sem usage.input_tokens í Responses, og sem usage.input_tokens plús usage.cache_read_input_tokens í Messages.
- Talningin er inntakið áður en afsláttur fyrir inntak úr skyndiminni er dreginn frá. Raunveruleg beiðni getur lesið hluta þess inntaks úr skyndiminni og gjaldfært þann hluta á verði skyndiminnis. Prompt-geymsla
- Mynd gefin sem
http(s)URL telst hér 1,024. Raunveruleg beiðni sækir myndina og telur hana út frá stærð hennar í pixlum, svo tölurnar tvær geta verið ólíkar. Sendu myndina sem base64 til að fá sömu töluna. - Úttak er ekki hluti af talningunni. Svar raunverulegrar beiðni er gjaldfært sem úttakstókar að auki, rökhugsun meðtalin.
- Talning með
texthefur ekkert spjallsnið. Notaðu hana til að mæla skjal eða hluta af prompt, ogmessagesformið til að mæla beiðni.
Til að breyta talningu í kostnað skaltu margfalda hana með inntaksverði líkansins á hverja 1M tókna. Líkön og verð
Mörk
| Mörk | Gildi | Fyrir ofan það |
|---|---|---|
Lengd text | 4,000,000 bæti (UTF-8) | 413 með skilaboðunum text too long |
| Meginmál beiðni | 32 MiB | 413 |
| Á hverja beiðni | Einn texti eða eitt samtal | Sendu eina beiðni á hvern texta til að telja marga texta. |
Talningarköll teljast ekki með í mörkunum 120 beiðnir á mínútu. Mörk og staða
Villur
| Staða | Gerð | Skilaboð | Hvenær |
|---|---|---|---|
400 | invalid_request_error | tokenize is available for the hosted open models; unknown model: <model> | /v1/tokenize með model sem er ekki auðkenni hýsts líkans með opnum þyngdum. |
400 | invalid_request_error | count_tokens is available for the hosted open models; unknown model: <model> | /v1/messages/count_tokens með model sem er ekki auðkenni hýsts líkans með opnum þyngdum, eða án model. |
400 | invalid_request_error | send `text` or `messages` | /v1/tokenize með hvorki text né messages. |
401 | authentication_error | Missing authentication / Invalid API key | Enginn lykill var sendur, eða lykillinn er ekki gildur. |
413 | invalid_request_error | text too long | text er lengri en 4,000,000 bæti. Meginmáli yfir 32 MiB er einnig svarað með 413. |
415 | invalid_request_error | Expected request with `Content-Type: application/json` | Beiðnin hefur enga JSON content type. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | Nauðsynlegan reit vantar (model á /v1/tokenize, messages á /v1/messages/count_tokens) eða reitur hefur ranga gerð. |
503 | api_error | token counting is temporarily unavailable for this model | Ekki er hægt að gera talninguna fyrir þetta líkan í augnablikinu. Reyndu aftur síðar. |
/v1/tokenize skilar villum á OpenAI sniði. Á /v1/messages/count_tokens koma villur endapunktsins sjálfs (400 fyrir líkanið, 503) á Anthropic sniði, og 401, 413, 415 og 422 koma á OpenAI sniði. Lestu fyrst stöðukóðann, síðan error.type og error.message, sem eru til staðar á báðum sniðum.
{
"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"
}
}