ምቑጻር Token
Tokens ናይ ጽሑፍ ወይ ናይ ምሉእ ጠለብ ቅድሚ ምልኣኽ ቑጸር።
POST https://api.shannon-ai.com/v1/tokenize
POST https://api.shannon-ai.com/v1/messages/count_tokens
ክልቲኦም endpoints ብ tokenizer ናይ ዝሰመኻዮ ሞዴል ይቑጽሩ፣ ዋላ ሓደ ሞዴል ድማ ኣይሰርሕን። ንዝተሃንደሱ open-weight ሞዴላት የጠቓልሉ። /v1/tokenize ተራ ጽሑፍ ወይ ዕላል Chat Completions ይቅበል። /v1/messages/count_tokens ጠለብ ብቅርጺ Anthropic Messages ይቅበል፣ እዚ ጥሪ እቲ Anthropic SDK ከምኡውን Claude Code ዝገብሩዎ እዩ።
ምቑጻር ብነጻ እዩ። ሓደ ጥሪ ቁልፍካ የድልዮ፣ ካብ ሚዛንካ ዝኾነ ኣይወስድን ከምኡውን ኣብ log ናይ ኣጠቓቕማ ኣይርከብን።
ጽሑፍ ቑጸር
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
} እቶም ቍጽርታት ኣብ ምላሻት ናይዚ ገጽ ኣብነታት እዮም። ተመሳሳሊ ጽሑፍ ኣብ ካልእ ሞዴል ዝተፈለየ ቍጽሪ ይህብ።
ጠለብ chat ቑጸር
model ከምኡውን messages ልኣኽ፣ ምስ tools እቲ ጠለብ እንተ ሓዘን፣ ልክዕ ከም ናብ /v1/chat/completions ዝትልእኾ። እቲ ምላሽ መጠን ናይ ምሉእ ኣተዋብ እዩ።
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
} እቶም field ታት ናይ መገዲ /v1/tokenize
| Field | ዓይነት | መግለጺ |
|---|---|---|
model | string | ዘድሊ። id ናይ ዝተሃንደሰ open-weight ሞዴል። ዓበይቲ ከምኡውን ንኣሽቱ ፊደላት ብተመሳሳሊ ይተሓዙ። |
text | string | ጽሑፍ ከም ዘሎ ንምቑጻር፣ ብዘይ ቅርጺ chat። ክሳብ 4,000,000 bytes። text ወይ messages ልኣኽ፤ ክልቲኦም ምስ ዝህልዉ፣ text ይቑጸር። |
messages | array | መልእኽታት chat ብቅርጺ Chat Completions። ከም ምሉእ ኣተዋብ ናይ ጠለብ ይቑጸሩ፦ ነፍሲ ወከፍ መልእኽቲ ምስ ቅርጺ እቲ chat template ናይ ሞዴል ኣብ ዙርያኡ ዘቐምጦ። |
tools | array | ትርጉማት tool ኣብ ቍጽሪ ዝኣትዉ። ምስ messages ብሓባር ይጥቀሙ። |
እቲ ምላሽ JSON object እዩ ምስ እዞም fields፦
| Field | ዓይነት | መግለጺ |
|---|---|---|
model | string | id ናይ ሞዴል እቲ ቍጽሪ ዝተገብረሉ፣ ብዝታተመ ኣጸሓሕፋኡ። |
tokens | integer | ምስ text፦ tokens ናይ ጽሑፍ። ምስ messages፦ tokens ናይ ምሉእ ኣተዋብ፣ ስእልታት ጌሩ። |
ጠለብ Messages ቑጸር
ናብ /v1/messages ዝትልእኾ body ልኣኽ፦ model፣ messages፣ ከምኡውን system ከምኡውን tools እንተ ተጠቒምካዮም። እቶም ወግዓውያን Anthropic SDKs ነዚ 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
} እቶም ዝርዝር field ታት ናይ ጠለብ ኣብ መገዲ /v1/messages/count_tokens
| Field | ዓይነት | መግለጺ |
|---|---|---|
model | string | ዘድሊ። id ናይ ዝተሃንደሰ open-weight ሞዴል። |
messages | array | ዘድሊ። መልእኽታት ኣብ ቅርጺ Anthropic Messages። Blocks text፣ image፣ tool_use ከምኡውን tool_result ይቑጸሩ። |
system | string | array | እቲ system prompt፦ string ወይ ተርታ ናይ ጽሑፍ ክፋላት (text blocks)። |
tools | array | ትርጉማት tool ምስ name፣ description ከምኡውን input_schema። |
ንምድማር ዝተቐበሉ፣ ኣብ ቍጽሪ ዋላ ሓደ ውጽኢት ዘይብሎም፦ tool_choice, max_tokens, temperature, top_p, stop_sequences, stream, thinking። body ናይ ሓቀኛ ጠለብ ብዘይ ለውጢ ክትሓልፍ ትኽእል።
እቲ ምላሽ JSON object እዩ ምስ እዞም fields፦
| Field | ዓይነት | መግለጺ |
|---|---|---|
input_tokens | integer | Tokens ናይ ምሉእ ኣተዋብ፦ system prompt፣ መልእኽታት፣ tools ከምኡውን ስእልታት። |
ዝድገፉ ሞዴላት
ክልቲኦም endpoints ንዝተሃንደሱ open-weight ሞዴላት ይቑጽሩ። GET /v1/models ንነፍሲ ወከፍ ሞዴል ዝድግፎም ኣብ endpoints ናቱ /v1/tokenize ከምኡውን /v1/messages/count_tokens ይዝርዝር። ዝኾነ ካልእ ዋጋ model፣ ids 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፣ ቍጽሪ tokens ካብ object usage ናይ ምላሽ ኣንብብ።
እቲ ቍጽሪ ከመይ ይግበር
ነፍሲ ወከፍ ሞዴል ብናቱ tokenizer ከምኡውን ብናቱ chat template ይቑጸር። ካብ ፊደላት ወይ ቃላት ዝተገምገመ ግምት ኣይውዕልን።
| እንታይ ይቑጸር | ሕጊ |
|---|---|
| ጽሑፍ | Tokens ናይ string ከም ዝተላእከ። ባዶ string 0 ይቑጸር። |
| መልእኽታት | እቶም መልእኽታትን tools ን ምስ chat template ናይ ባዕሉ ሞዴል፣ ክሳብ እቲ ምላሽ ዝጅምረሉ ነጥቢ፣ ይሰርዑ፣ ከምኡውን እቲ ምሉእ prompt ይቑጸር። |
| ግደታት (Roles) | መልእኽታት system፣ user፣ assistant ከምኡውን tool ይቑጸሩ። developer ከም system ይቑጸር። መልእኽቲ ብዘይ content ከምኡውን ብዘይ ጥሪ tool ዋላ ሓንቲ ኣይውስኽን። |
| ጥሪታትን ውጽኢታትን tool | ጥሪታት tool ናይ ዝሓለፉ turns ናይ assistant ከምኡውን ውጽኢቶም ክፋል ናይ ቍጽሪ እዮም፣ ኣብ ክልቲኦም endpoints። |
| ስእልታት | ስእሊ ኣብ ውሽጢ body ዝተላእከ (base64 ወይ URL data:) ን ነፍሲ ወከፍ ክፋል 28 × 28 pixel ሓደ token ይውስኽ፦ ceil(width / 28) × ceil(height / 28)። ስእሊ ከም URL http(s) ዝተዋህበ ብዞም endpoints ኣይወርድን ከምኡውን 1,024 ይቑጸር። |
ኣብነት፦ ስእሊ 1,024 × 768 pixel ceil(1024 / 28) × ceil(768 / 28) = 37 × 28 = 1,036 tokens ይቑጸር።
እቲ ቍጽሪ ከምኡውን እቲ ጠለብ ዝኽፈሎ
እቲ ቍጽሪ ናይ ምሉእ ጠለብ ከም ቍጽሪ ኣተዋብ ናይ ሓቀኛ ጠለብ ምስ ተመሳሳሊ ሞዴል፣ መልእኽታትን tools ን ይግበር። ምላሽ ነቲ ቍጽሪ ከም usage.prompt_tokens ኣብ Chat Completions፣ ከም usage.input_tokens ኣብ Responses፣ ከምኡውን ከም usage.input_tokens ምስ usage.cache_read_input_tokens ኣብ Messages የሕብር።
- እቲ ቍጽሪ ቅድሚ ቅናሽ ናይ cached-input ዘሎ ኣተዋብ እዩ። ሓቀኛ ጠለብ ክፋል ካብ እቲ ኣተዋብ ካብ cache ክነብብ ከምኡውን ነታ ክፍሊ ብዋጋ cached ከኽፍል ይኽእል። Prompt caching
- ስእሊ ከም URL
http(s)ዝተዋህበ ኣብዚ 1,024 ይቑጸር። ሓቀኛ ጠለብ ነቲ ስእሊ የውርድ ከምኡውን ካብ መጠን pixels ናቱ ይቝጽሮ፣ ስለዚ እቶም ክልተ ቍጽርታት ክፈላለዩ ይኽእሉ። ተመሳሳሊ ቍጽሪ ንምርካብ ስእሊ ከም base64 ልኣኽ። - Output ኣብ ቍጽሪ ኣይሕወሰን። ምላሽ ናይ ሓቀኛ ጠለብ ተወሳኺ ከም output tokens ይኽፈል፣ reasoning ጌሩ።
- ቍጽሪ
textቅርጺ ዕላል የብሉን። ሰነድ ወይ ክፋል prompt ንምቑጻር ተጠቐሞ፣ ከምኡውን ቅርጺmessagesሓደ ጠለብ ንምቑጻር።
ቍጽሪ ናብ ዋጋ ንምቕያር፣ ኣብ ዋጋ input ናይ ሞዴል ን 1M tokens ኣብዝሖ። ሞዴላትን ዋጋን
ወሰናት
| ወሰን | ዋጋ | ልዕሊኡ |
|---|---|---|
ነውሒ ናይ text | 4,000,000 bytes (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 bytes ይነውሕ። body ልዕሊ 32 MiB እውን ብ 413 ይምለስ። |
415 | invalid_request_error | Expected request with `Content-Type: application/json` | እቲ ጠለብ ዓይነት JSON ናይ content የብሉን። |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | ዘድሊ field ጎደሎ (model ኣብ /v1/tokenize፣ messages ኣብ /v1/messages/count_tokens) ወይ ሓደ field ጌጋ ዓይነት ኣለዎ። |
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 code ኣንብብ፣ ደሓር 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"
}
}