Fò lọ sí àkóónú
Kíka token

Kíka token

Ka àwọn token ti ọ̀rọ̀ kan tàbí ti gbogbo ìbéèrè kan kí o tó fi ránṣẹ́.

POST https://api.shannon-ai.com/v1/tokenize

POST https://api.shannon-ai.com/v1/messages/count_tokens

Àwọn endpoint méjèèjì ń ka pẹ̀lú tokenizer ti model tí o dárúkọ, kò sì sí model kankan tó ń ṣiṣẹ́. Wọ́n bo àwọn model open-weight tí a gbàlejò. /v1/tokenize gba ọ̀rọ̀ lásán tàbí ìjíròrò Chat Completions. /v1/messages/count_tokens gba ìbéèrè ní ọ̀nà Anthropic Messages, ìyẹn ni ìpè tí Anthropic SDK àti Claude Code ń ṣe.

Ìkà jẹ́ ọ̀fẹ́. Ìpè nílò API key rẹ, kì í gba nǹkankan láti balance rẹ, kò sì hàn nínú log ìlò rẹ.

Ka ọ̀rọ̀ kan

Fi model àti text ránṣẹ́. A ń ka ọ̀rọ̀ náà bí ó ṣe wà, láìsí ìṣètò chat yí i ká.

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 Èsì
{
  "model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
  "tokens": 3
}

Àwọn nọ́ńbà inú àwọn èsì ojú-ìwé yìí jẹ́ àpẹẹrẹ. Ọ̀rọ̀ kan náà ń fúnni ní ìkà tó yàtọ̀ lórí model tó yàtọ̀.

Ka ìbéèrè chat

Fi model àti messages ránṣẹ́, pẹ̀lú tools tí ìbéèrè bá ní wọn, gẹ́gẹ́ bí o ṣe máa fi wọ́n ránṣẹ́ sí /v1/chat/completions. Èsì ni ìwọ̀n gbogbo input náà.

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 Èsì
{
  "model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
  "tokens": 164
}

Àwọn field ti /v1/tokenize

Field Irú Àpèjúwe
model string A nílò rẹ̀. Id model open-weight tí a gbàlejò. A ń ka lẹ́tà ńlá àti kékeré bákan náà.
text string Ọ̀rọ̀ tí a máa ka bí ó ṣe wà, láìsí ìṣètò chat. Títí dé byte 4,000,000. Fi text tàbí messages ránṣẹ́; bí méjèèjì bá wà, a ó ka text.
messages array Àwọn ìfiránṣẹ́ chat ní ọ̀nà Chat Completions. A ń kà wọ́n bí gbogbo input ti ìbéèrè kan: ìfiránṣẹ́ kọ̀ọ̀kan pẹ̀lú ìṣètò tí chat template ti model gbé yí i ká.
tools array Àwọn ìtumọ̀ tool tí a máa fi kún ìkà. A ń lò ó pẹ̀lú messages.

Èsì jẹ́ object JSON pẹ̀lú àwọn field wọ̀nyí:

Field Irú Àpèjúwe
model string Id model tí a ṣe ìkà fún, ní ọ̀nà ìkọ̀wé rẹ̀ tí a tẹ̀jáde.
tokens integer Pẹ̀lú text: àwọn token ti ọ̀rọ̀ náà. Pẹ̀lú messages: àwọn token ti gbogbo input, pẹ̀lú àwọn àwòrán.

Ka ìbéèrè Messages

Fi body tí o máa fi ránṣẹ́ sí /v1/messages ránṣẹ́: model, messages, àti system àti tools nígbà tí o bá ń lò wọ́n. Àwọn SDK Anthropic tí a fọwọ́ sí ń pe endpoint yìí nípasẹ̀ 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 Èsì
{
  "input_tokens": 21
}

Àwọn field ti /v1/messages/count_tokens

Field Irú Àpèjúwe
model string A nílò rẹ̀. Id model open-weight tí a gbàlejò.
messages array A nílò rẹ̀. Àwọn ìfiránṣẹ́ ní ọ̀nà Anthropic Messages. A ń ka àwọn block text, image, tool_use àti tool_result.
system string | array System prompt: string tàbí array ti àwọn block ọ̀rọ̀.
tools array Àwọn ìtumọ̀ tool pẹ̀lú name, description àti input_schema.

A gbà fún ìbáramu, láìní ipa lórí ìkà: tool_choice, max_tokens, temperature, top_p, stop_sequences, stream, thinking. O lè fi body ìbéèrè gidi ránṣẹ́ láìyípadà.

Èsì jẹ́ object JSON pẹ̀lú àwọn field wọ̀nyí:

Field Irú Àpèjúwe
input_tokens integer Àwọn token ti gbogbo input: system prompt, àwọn ìfiránṣẹ́, àwọn tool àti àwọn àwòrán.

Àwọn model tí a ń tìlẹ́yìn

Àwọn endpoint méjèèjì ń ka fún àwọn model open-weight tí a gbàlejò. GET /v1/models ń to /v1/tokenize àti /v1/messages/count_tokens nínú endpoints ti model kọ̀ọ̀kan tó ń ṣe àtìlẹ́yìn wọn. Iye model mìíràn yòówù, pẹ̀lú àwọn id Shannon, ni a fi 400 dá lóhùn.

  • 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

Fún model Shannon, ka iye token láti inú object usage ti èsì kan.

Bí a ṣe ń ṣe ìkà

A ń ka model kọ̀ọ̀kan pẹ̀lú tokenizer rẹ̀ àti chat template rẹ̀. A kì í lo ìṣírò àfojúdá láti inú àwọn lẹ́tà tàbí ọ̀rọ̀.

Ohun tí a ń kà Òfin
Ọ̀rọ̀ kan Àwọn token ti string bí a ṣe fi ránṣẹ́. String òfo jẹ́ 0.
Àwọn ìfiránṣẹ́ A ṣètò àwọn ìfiránṣẹ́ àti tools pẹ̀lú chat template ti model fúnra rẹ̀, títí dé ibi tí èsì ti bẹ̀rẹ̀, a sì ń ka gbogbo prompt náà.
Àwọn role A ń ka àwọn ìfiránṣẹ́ system, user, assistant àti tool. A ń ka developer bí system. Ìfiránṣẹ́ tí kò ní àkóónú àti ìpè tool kò fi nǹkan kún.
Àwọn ìpè tool àti àwọn abajade Àwọn ìpè tool ti àwọn turn assistant tó ṣáájú àti àwọn abajade wọn jẹ́ apá kan ìkà náà, lórí àwọn endpoint méjèèjì.
Àwọn àwòrán Àwòrán tí a fi ránṣẹ́ nínú body (base64 tàbí URL data:) ń fi token kan kún fún patch pixel 28 × 28 kọ̀ọ̀kan: ceil(width / 28) × ceil(height / 28). Àwòrán tí a fún ní URL http(s) kì í gbà sílẹ̀ láti ọwọ́ àwọn endpoint wọ̀nyí, ó sì jẹ́ 1,024.

Àpẹẹrẹ: àwòrán pixel 1,024 × 768 ní ceil(1024 / 28) × ceil(768 / 28) = 37 × 28 = token 1,036.

Ìkà àti ohun tí a ń gba owó rẹ̀ fún ìbéèrè

A ń ṣe ìkà ìbéèrè kíkún ní ọ̀nà kan náà bí ìkà input ti ìbéèrè gidi pẹ̀lú model, àwọn ìfiránṣẹ́ àti àwọn tool kan náà. Èsì ń ròyìn nọ́ńbà yẹn bí usage.prompt_tokens lórí Chat Completions, bí usage.input_tokens lórí Responses, àti bí usage.input_tokens pẹ̀lú usage.cache_read_input_tokens lórí Messages.

  • Ìkà náà jẹ́ input ṣáájú ẹ̀dínwó input tí a fi pamọ́. Ìbéèrè gidi lè ka apá kan input yẹn láti cache kí a sì gba owó apá yẹn ní rate cache. Caching prompt
  • Àwòrán tí a fún bí URL http(s) ń ka 1,024 níbí. Ìbéèrè gidi ń gba àwòrán náà sílẹ̀ ó sì ń kà á láti ìwọ̀n rẹ̀ ní pixel, nítorí náà àwọn nọ́ńbà méjèèjì lè yàtọ̀. Fi àwòrán ránṣẹ́ bí base64 láti gba nọ́ńbà kan náà.
  • Output kì í ṣe apá ìkà náà. A ń gba owó èsì ìbéèrè gidi bí àwọn token output lókè rẹ̀, pẹ̀lú ìrònú.
  • Ìkà text kò ní ìṣètò chat. Lò ó láti wọn ìwé tàbí apá prompt, àti ọ̀nà messages láti wọn ìbéèrè.

Láti sọ ìkà di owó, ṣe ìsodipúpọ̀ rẹ̀ pẹ̀lú iye owó input ti model fún token 1M. Àwọn model àti iye owó

Àwọn ààlà

Ààlà Iye Lókè rẹ̀
Gígùn text byte 4,000,000 (UTF-8) 413 pẹ̀lú ìfiránṣẹ́ text too long
Body ìbéèrè 32 MiB 413
Fún ìbéèrè kọ̀ọ̀kan Ọ̀rọ̀ kan tàbí ìjíròrò kan Fi ìbéèrè kan ránṣẹ́ fún ọ̀rọ̀ kọ̀ọ̀kan láti ka ọ̀rọ̀ púpọ̀.

A kì í ka àwọn ìpè ìkà mọ́ ààlà ìbéèrè 120 lósìkò ìṣẹ́jú kan. Àwọn ààlà àti balance

Àwọn àṣìṣe

Status Irú Ìfiránṣẹ́ Nígbà wo
400 invalid_request_error tokenize is available for the hosted open models; unknown model: <model> /v1/tokenize pẹ̀lú model tí kì í ṣe id open-weight tí a gbàlejò.
400 invalid_request_error count_tokens is available for the hosted open models; unknown model: <model> /v1/messages/count_tokens pẹ̀lú model tí kì í ṣe id open-weight tí a gbàlejò, tàbí láìsí model.
400 invalid_request_error send `text` or `messages` /v1/tokenize láìsí text tàbí messages.
401 authentication_error Missing authentication / Invalid API key A kò fi key ránṣẹ́, tàbí key kò tọ̀.
413 invalid_request_error text too long text gùn ju byte 4,000,000. A tún ń dáhùn body tó ju 32 MiB lọ pẹ̀lú 413.
415 invalid_request_error Expected request with `Content-Type: application/json` Ìbéèrè náà kò ní content type JSON.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … Field dandan kò sí (model lórí /v1/tokenize, messages lórí /v1/messages/count_tokens) tàbí field ní irú tí kò tọ̀.
503 api_error token counting is temporarily unavailable for this model A kò lè ṣe ìkà fún model yìí ní àkókò yìí. Gbìyànjú lẹ́ẹ̀kan sí i lẹ́yìn náà.

/v1/tokenize ń dá àwọn àṣìṣe padà ní ìrísí OpenAI. Lórí /v1/messages/count_tokens, àwọn àṣìṣe endpoint fúnra rẹ̀ (400 fún model, 503) ń dé ní ìrísí Anthropic, àti 401, 413, 415 àti 422 ń dé ní ìrísí OpenAI. Ka status code ná, lẹ́yìn náà error.type àti error.message, tó wà nínú àwọn ìrísí méjèèjì.

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