ናብ ትሕዝቶ ዝለል
ምቑጻር Token

ምቑጻር 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"])
200 ምላሽ
{
  "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"])
200 ምላሽ
{
  "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)
200 ምላሽ
{
  "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-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፣ ቍጽሪ 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፣ እዞም ኣብ ክልቲኡ ቅርጽታት ይርከቡ።

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"
  }
}