Għadd ta' tokens
Għodd it-tokens ta' test jew ta' talba kollha qabel ma tibgħatha.
POST https://api.shannon-ai.com/v1/tokenize
POST https://api.shannon-ai.com/v1/messages/count_tokens
Iż-żewġ endpoints jgħoddu bit-tokenizer tal-mudell li tisemmi, u ma jaħdem l-ebda mudell. Ikopru l-mudelli open-weight ospitati. /v1/tokenize jieħu test sempliċi jew konversazzjoni ta' Chat Completions. /v1/messages/count_tokens jieħu talba fil-format Anthropic Messages, li hija s-sejħa li jagħmlu l-SDK ta' Anthropic u Claude Code.
L-għadd huwa b'xejn. Sejħa teħtieġ iċ-ċavetta tal-API tiegħek, ma tieħu xejn mill-bilanċ tiegħek u ma tidhirx fil-log tal-użu tiegħek.
Għodd test
Ibgħat model u text. It-test jingħadd kif inhu, mingħajr formattjar tal-chat madwaru.
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
} In-numri fit-tweġibiet f'din il-paġna huma eżempji. L-istess test jagħti għadd differenti fuq mudell differenti.
Għodd talba tal-chat
Ibgħat model u messages, b'tools meta t-talba jkollha, eżattament kif tibgħathom lil /v1/chat/completions. It-tweġiba hija d-daqs tal-input kollu.
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
} Kampi ta' /v1/tokenize
| Qasam | Tip | Deskrizzjoni |
|---|---|---|
model | string | Meħtieġ. Id ta' mudell open-weight ospitat. L-ittri kbar u żgħar jiġu trattati bl-istess mod. |
text | string | Test li jingħadd kif inhu, mingħajr formattjar tal-chat. Sa 4,000,000 byte. Ibgħat text jew messages; meta t-tnejn ikunu preżenti, jingħadd text. |
messages | array | Messaġġi tal-chat fil-format Chat Completions. Jingħaddu bħala l-input sħiħ ta' talba: kull messaġġ bil-formattjar li t-chat template tal-mudell iqiegħed madwaru. |
tools | array | Definizzjonijiet ta' tools li jidħlu fl-għadd. Jintużaw flimkien ma' messages. |
It-tweġiba hija oġġett JSON b'dawn il-kampi:
| Qasam | Tip | Deskrizzjoni |
|---|---|---|
model | string | L-id tal-mudell li għalih sar l-għadd, bl-ikteb ippubblikat tiegħu. |
tokens | integer | Ma' text: it-tokens tat-test. Ma' messages: it-tokens tal-input kollu, inklużi l-immaġini. |
Għodd talba Messages
Ibgħat il-body li tibgħat lil /v1/messages: model, messages, u system u tools meta tużahom. L-SDKs uffiċjali ta' Anthropic isejħu dan l-endpoint permezz ta' 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
} Kampi ta' /v1/messages/count_tokens
| Qasam | Tip | Deskrizzjoni |
|---|---|---|
model | string | Meħtieġ. Id ta' mudell open-weight ospitat. |
messages | array | Meħtieġ. Messaġġi fil-format Anthropic Messages. Jingħaddu l-blokki text, image, tool_use u tool_result. |
system | string | array | Is-system prompt: string jew array ta' blokki tat-test. |
tools | array | Definizzjonijiet ta' tools b'name, description u input_schema. |
Aċċettati għall-kompatibbiltà, mingħajr effett fuq l-għadd: tool_choice, max_tokens, temperature, top_p, stop_sequences, stream, thinking. Tista' tgħaddi l-body ta' talba vera mingħajr tibdil.
It-tweġiba hija oġġett JSON b'dawn il-kampi:
| Qasam | Tip | Deskrizzjoni |
|---|---|---|
input_tokens | integer | It-tokens tal-input kollu: system prompt, messaġġi, tools u immaġini. |
Mudelli appoġġjati
Iż-żewġ endpoints jgħoddu għall-mudelli open-weight ospitati. GET /v1/models jelenka /v1/tokenize u /v1/messages/count_tokens fl-endpoints ta' kull mudell li jappoġġjahom. Kwalunkwe valur ieħor ta' model, inklużi l-ids ta' Shannon, jitwieġeb b'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
Għal mudell Shannon, aqra l-għadd ta' tokens mill-oġġett usage ta' tweġiba.
Kif isir l-għadd
Kull mudell jingħadd bit-tokenizer tiegħu stess u bit-chat template tiegħu stess. Ma tintuża l-ebda stima minn karattri jew kliem.
| X'jingħadd | Regola |
|---|---|
| Test | It-tokens tal-istring kif intbagħtet. String vojta tgħodd 0. |
| Messaġġi | Il-messaġġi u t-tools jitqegħdu bit-chat template proprju tal-mudell, sal-punt fejn tibda t-tweġiba, u dak il-prompt kollu jingħadd. |
| Rwoli | Il-messaġġi system, user, assistant u tool jingħaddu. developer jingħadd bħala system. Messaġġ mingħajr kontenut u mingħajr sejħa ta' tool ma jżid xejn. |
| Sejħiet u riżultati ta' tools | Is-sejħiet ta' tools ta' turns preċedenti tal-assistent u r-riżultati tagħhom huma parti mill-għadd, fuq iż-żewġ endpoints. |
| Immaġini | Immaġni mibgħuta ġewwa l-body (base64 jew data: URL) iżżid token wieħed għal kull patch ta' 28 × 28 pixel: ceil(width / 28) × ceil(height / 28). Immaġni mogħtija bħala URL http(s) ma tinżilx minn dawn l-endpoints u tgħodd 1,024. |
Eżempju: immaġni ta' 1,024 × 768 pixel tgħodd ceil(1024 / 28) × ceil(768 / 28) = 37 × 28 = 1,036 token.
L-għadd u x'titħallas talba
L-għadd ta' talba sħiħa jsir bl-istess mod bħall-għadd tal-input ta' talba vera bl-istess mudell, messaġġi u tools. Tweġiba tirrapporta dak in-numru bħala usage.prompt_tokens fuq Chat Completions, bħala usage.input_tokens fuq Responses, u bħala usage.input_tokens flimkien ma' usage.cache_read_input_tokens fuq Messages.
- L-għadd huwa l-input qabel it-tnaqqis tal-input cached. Talba vera tista' taqra parti minn dak l-input mill-cache u titlob ħlas għal dik il-parti bir-rata cached. Prompt caching
- Immaġni mogħtija bħala URL
http(s)tgħodd 1,024 hawn. Talba vera tniżżel l-immaġni u tgħoddha mid-daqs tagħha f'pixels, għalhekk iż-żewġ numri jistgħu jvarjaw. Ibgħat l-immaġni bħala base64 biex tikseb l-istess numru. - L-output mhuwiex parti mill-għadd. It-tweġiba ta' talba vera titħallas bħala tokens tal-output flimkien, inkluż ir-raġunament.
- Għadd ta'
textm'għandux formattjar tal-chat. Uża biex tkejjel dokument jew parti minn prompt, u l-formamessagesbiex tkejjel talba.
Biex tibdel għadd fi spiża, immultiplikah bil-prezz tal-input tal-mudell għal kull 1M token. Mudelli u prezzijiet
Limiti
| Limitu | Valur | Fuqu |
|---|---|---|
Tul ta' text | 4,000,000 byte (UTF-8) | 413 bil-messaġġ text too long |
| Body tat-talba | 32 MiB | 413 |
| Għal kull talba | Test wieħed jew konversazzjoni waħda | Ibgħat talba waħda għal kull test biex tgħodd diversi testi. |
Is-sejħiet tal-għadd ma jingħaddux fil-limitu ta' 120 talba kull minuta. Limiti u bilanċ
Żbalji
| Status | Tip | Messaġġ | Meta |
|---|---|---|---|
400 | invalid_request_error | tokenize is available for the hosted open models; unknown model: <model> | /v1/tokenize b'model li mhuwiex id ta' mudell open-weight ospitat. |
400 | invalid_request_error | count_tokens is available for the hosted open models; unknown model: <model> | /v1/messages/count_tokens b'model li mhuwiex id ta' mudell open-weight ospitat, jew mingħajr model. |
400 | invalid_request_error | send `text` or `messages` | /v1/tokenize la b'text u lanqas b'messages. |
401 | authentication_error | Missing authentication / Invalid API key | Ma ntbagħtet l-ebda ċavetta, jew iċ-ċavetta mhijiex valida. |
413 | invalid_request_error | text too long | text huwa itwal minn 4,000,000 byte. Body ta' aktar minn 32 MiB jitwieġeb ukoll b'413. |
415 | invalid_request_error | Expected request with `Content-Type: application/json` | It-talba m'għandhiex content type JSON. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | Qasam meħtieġ huwa nieqes (model fuq /v1/tokenize, messages fuq /v1/messages/count_tokens) jew qasam għandu tip ħażin. |
503 | api_error | token counting is temporarily unavailable for this model | L-għadd ma jistax isir għal dan il-mudell f'dan il-mument. Erġa' pprova aktar tard. |
/v1/tokenize jagħti lura żbalji fil-forma OpenAI. Fuq /v1/messages/count_tokens l-iżbalji tal-endpoint innifsu (400 għall-mudell, 503) jiġu fil-forma Anthropic, u 401, 413, 415 u 422 jiġu fil-forma OpenAI. Aqra l-kodiċi ta' status l-ewwel, imbagħad error.type u error.message, li huma preżenti fiż-żewġ forom.
{
"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"
}
}