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"]) 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
} À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"]) 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
} À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) 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
} À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-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
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à
textkò ní ìṣètò chat. Lò ó láti wọn ìwé tàbí apá prompt, àti ọ̀nàmessageslá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ì.
{
"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"
}
}