هەژمارکردنی تۆکن
تۆکنەکانی دەقێک یان داواکارییەکی تەواو هەژمار بکە پێش ئەوەی بینێریت.
POST https://api.shannon-ai.com/v1/tokenize
POST https://api.shannon-ai.com/v1/messages/count_tokens
هەردوو endpoint ـەکە بە tokenizer ی ئەو مۆدێلەی ناوی دەبەیت هەژمار دەکەن، و هیچ مۆدێلێک کار ناکات. مۆدێلە open-weight ـە میوانداریکراوەکان دەگرنەوە. /v1/tokenize دەقێکی سادە یان گفتوگۆیەکی Chat Completions وەردەگرێت. /v1/messages/count_tokens داواکارییەک بە فۆرماتی Anthropic Messages وەردەگرێت، کە ئەو بانگکردنەیە SDK ی Anthropic و Claude Code دەیکەن.
هەژمارکردن بێبەرامبەرە. بانگکردنێک پێویستی بە کلیلی API ـەکەتە، هیچ شتێک لە باڵانسەکەت ناگرێت و لە لۆگی بەکارهێنانەکەتدا دەرناکەوێت.
هەژمارکردنی دەقێک
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"]) 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
} ژمارەکانی ناو وەڵامەکانی ئەم لاپەڕەیە نموونەن. هەمان دەق لەسەر مۆدێلێکی دیکە هەژمارێکی جیاواز دەدات.
هەژمارکردنی داواکارییەکی 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"]) 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 | پێویستە. id ی مۆدێلێکی open-weight ی میوانداریکراو. پیتی گەورە و بچووک وەک یەک مامەڵەیان لەگەڵ دەکرێت. |
text | string | دەقێک بۆ هەژمارکردن وەک خۆی، بەبێ فۆرماتکردنی chat. تا 4,000,000 بایت. text یان messages بنێرە؛ کاتێک هەردووکیان هەبن، text هەژمار دەکرێت. |
messages | array | نامەکانی chat بە فۆرماتی Chat Completions. وەک input ی تەواوی داواکارییەک هەژمار دەکرێن: هەموو نامەیەک لەگەڵ ئەو فۆرماتکردنەی chat template ی مۆدێلەکە لە دەوروبەری دادەنێت. |
tools | array | پێناسەی ئامرازەکان بۆ ئەوەی لە هەژمارەکەدا بن. لەگەڵ messages پێکەوە بەکاردێت. |
وەڵامەکە ئۆبجێکتێکی JSON ە بەم بوارانەوە:
| بوار | جۆر | وەسف |
|---|---|---|
model | string | id ی ئەو مۆدێلەی هەژمارەکەی بۆ کرا، بە شێوەی نووسینی بڵاوکراوی. |
tokens | integer | لەگەڵ text: تۆکنەکانی دەقەکە. لەگەڵ messages: تۆکنەکانی هەموو input، وێنەکانیش لەخۆدەگرێت. |
هەژمارکردنی داواکارییەکی Messages
ئەو body ـە بنێرە کە بۆ /v1/messages دەینێریت: model، messages، و system و tools کاتێک بەکاریان دەهێنیت. SDK ـە فەرمییەکانی Anthropic ئەم endpoint ـە بانگ دەکەن لە ڕێگەی 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 | پێویستە. id ی مۆدێلێکی open-weight ی میوانداریکراو. |
messages | array | پێویستە. نامەکان بە فۆرماتی Anthropic Messages. بلۆکەکانی text، image، tool_use و tool_result هەژمار دەکرێن. |
system | string | array | system prompt: string یان ئارەیەک لە بلۆکی دەق. |
tools | array | پێناسەی ئامرازەکان بە name، description و input_schema. |
بۆ گونجاوی وەردەگیرێن، بەبێ کاریگەری لەسەر هەژمارەکە: tool_choice, max_tokens, temperature, top_p, stop_sequences, stream, thinking. دەتوانیت body ی داواکارییەکی ڕاستەقینە بێ گۆڕان بدەیت.
وەڵامەکە ئۆبجێکتێکی JSON ە بەم بوارانەوە:
| بوار | جۆر | وەسف |
|---|---|---|
input_tokens | integer | تۆکنەکانی هەموو input: system prompt، نامەکان، ئامرازەکان و وێنەکان. |
مۆدێلە پشتگیریکراوەکان
هەردوو endpoint ـەکە بۆ مۆدێلە open-weight ـە میوانداریکراوەکان هەژمار دەکەن. GET /v1/models /v1/tokenize و /v1/messages/count_tokens لە endpoints ی هەر مۆدێلێک لیست دەکات کە پشتگیریان دەکات. هەر بەهایەکی دیکەی model، id ـەکانی Shannon یش، بە 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 ی وەڵامێک بخوێنەرەوە.
هەژمارەکە چۆن دەکرێت
هەر مۆدێلێک بە tokenizer ی خۆی و chat template ی خۆی هەژمار دەکرێت. هیچ مەزەندەیەک لە پیت یان وشەکانەوە بەکارنایەت.
| چی هەژمار دەکرێت | یاسا |
|---|---|
| دەقێک | تۆکنەکانی string ەکە وەک نێردراوە. string ی بەتاڵ 0 هەژمار دەکرێت. |
| نامەکان | نامەکان و ئامرازەکان بە chat template ی خودی مۆدێلەکە ڕیز دەکرێن، تا ئەو شوێنەی وەڵامەکە دەست پێدەکات، و هەموو ئەو prompt ە هەژمار دەکرێت. |
| ڕۆڵەکان | نامەکانی system، user، assistant و tool هەژمار دەکرێن. developer وەک system هەژمار دەکرێت. نامەیەک بەبێ ناوەڕۆک و بەبێ بانگکردنی ئامراز هیچ زیاد ناکات. |
| بانگکردن و ئەنجامەکانی ئامراز | بانگکردنی ئامرازی نۆرە پێشووەکانی assistant و ئەنجامەکانیان بەشێکن لە هەژمارەکە، لەسەر هەردوو endpoint. |
| وێنەکان | وێنەیەک کە لەناو body ی داواکاریدا دەنێردرێت (base64 یان URL ی data:) یەک تۆکن بۆ هەر پارچەیەکی 28 × 28 پیکسڵ زیاد دەکات: ceil(width / 28) × ceil(height / 28). وێنەیەک کە وەک URL ی http(s) دراوە لەلایەن ئەم endpoint ـانەوە دانادگیرێت و 1,024 هەژمار دەکرێت. |
نموونە: وێنەیەکی 1,024 × 768 پیکسڵ ceil(1024 / 28) × ceil(768 / 28) = 37 × 28 = 1,036 تۆکن هەژمار دەکرێت.
هەژمارەکە و ئەوەی داواکارییەک نرخی دەگیرێت
هەژمارکردنی داواکارییەکی تەواو بە هەمان شێوەی هەژمارکردنی input ی داواکارییەکی ڕاستەقینەیە کە هەمان مۆدێل، نامە و ئامرازی هەبێت. وەڵامێک ئەو ژمارەیە ڕاپۆرت دەکات وەک usage.prompt_tokens لەسەر Chat Completions، وەک usage.input_tokens لەسەر Responses، و وەک usage.input_tokens جمع usage.cache_read_input_tokens لەسەر Messages.
- هەژمارەکە input ە پێش داشکاندنی input ی کەشراو. داواکارییەکی ڕاستەقینە دەتوانێت بەشێک لەو input ە لە cache بخوێنێتەوە و ئەو بەشە بە نرخی کەشراو نرخ بگرێت. کەشراوکردنی پرۆمپت
- وێنەیەک کە وەک URL ی
http(s)دراوە لێرە 1,024 هەژمار دەکرێت. داواکارییەکی ڕاستەقینە وێنەکە دادەگرێت و لە قەبارەی بە پیکسڵەوە هەژماری دەکات، بۆیە دوو ژمارەکە دەتوانن جیاواز بن. وێنەکە وەک base64 بنێرە بۆ وەرگرتنی هەمان ژمارە. - Output بەشێک نییە لە هەژمارەکە. وەڵامی داواکارییەکی ڕاستەقینە لەسەرەوە وەک تۆکنی output نرخ دەگیرێت، بیرکردنەوەش لەخۆدەگرێت.
- هەژمارکردنی
textهیچ فۆرماتکردنی chat ی نییە. بۆ پێوانی بەڵگەنامە یان بەشێکی prompt بەکاری بهێنە، و شێوازیmessagesبۆ پێوانی داواکارییەک.
بۆ گۆڕینی هەژمارێک بۆ تێچوو، لە نرخی input ی مۆدێلەکە بۆ هەر 1M تۆکن بیدە. مۆدێل و نرخ
سنوورەکان
| سنوور | بەها | لە سەرووی |
|---|---|---|
درێژی text | 4,000,000 بایت (UTF-8) | 413 لەگەڵ پەیامی text too long |
| body ی داواکاری | 32 MiB | 413 |
| بۆ هەر داواکارییەک | یەک دەق یان یەک گفتوگۆ | بۆ هەژمارکردنی چەند دەقێک، بۆ هەر دەقێک یەک داواکاری بنێرە. |
بانگکردنی هەژمارکردن لە سنووری 120 داواکاری لە خولەکێکدا هەژمار ناکرێن. سنوور و باڵانس
هەڵەکان
| Status | جۆر | پەیام | کەی |
|---|---|---|---|
400 | invalid_request_error | tokenize is available for the hosted open models; unknown model: <model> | /v1/tokenize لەگەڵ model ێک کە id ی مۆدێلێکی open-weight ی میوانداریکراو نییە. |
400 | invalid_request_error | count_tokens is available for the hosted open models; unknown model: <model> | /v1/messages/count_tokens لەگەڵ model ێک کە id ی مۆدێلێکی open-weight ی میوانداریکراو نییە، یان بەبێ model. |
400 | invalid_request_error | send `text` or `messages` | /v1/tokenize بەبێ text و بەبێ messages. |
401 | authentication_error | Missing authentication / Invalid API key | هیچ کلیلێک نەنێردرا، یان کلیلەکە دروست نییە. |
413 | invalid_request_error | text too long | text لە 4,000,000 بایت درێژترە. body ێک لە 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: … | بوارێکی پێویست نییە (model لەسەر /v1/tokenize، messages لەسەر /v1/messages/count_tokens) یان بوارێک جۆری هەڵەیە. |
503 | api_error | token counting is temporarily unavailable for this model | هەژمارکردن لەم ساتەدا بۆ ئەم مۆدێلە ناکرێت. دواتر دووبارە هەوڵ بدەرەوە. |
/v1/tokenize هەڵەکان بە شێوەی OpenAI دەگەڕێنێتەوە. لەسەر /v1/messages/count_tokens هەڵەکانی خودی endpoint ـەکە (400 بۆ مۆدێل، 503) بە شێوەی Anthropic دێن، و 401، 413، 415 و 422 بە شێوەی OpenAI دێن. سەرەتا کۆدی status بخوێنەرەوە، پاشان 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"
}
}