Tokenite lugemine
Loe teksti või terve päringu tokenid enne saatmist.
POST https://api.shannon-ai.com/v1/tokenize
POST https://api.shannon-ai.com/v1/messages/count_tokens
Mõlemad lõpp-punktid loevad nimetatud mudeli tokeniseerijaga ja ükski mudel ei käivitu. Need katavad hostitud avatud kaaludega mudelid. /v1/tokenize võtab lihtteksti või Chat Completions vestluse. /v1/messages/count_tokens võtab Anthropic Messages vormingus päringu, mida teevad Anthropic SDK ja Claude Code.
Lugemine on tasuta. Kõne vajab sinu API võtit, ei võta sinu saldost midagi ega ilmu sinu kasutuslogis.
Teksti lugemine
Saada model ja text. Tekst loetakse sellisena, nagu ta on, ilma vestlusvorminduseta.
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
} Sellel lehel olevate vastuste arvud on näited. Sama tekst annab teisel mudelil erineva arvu.
Vestluspäringu lugemine
Saada model ja messages, ning tools, kui päringul need on, täpselt nii nagu saadaksid need lõpp-punkti /v1/chat/completions. Vastus on kogu sisendi suurus.
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
} /v1/tokenize väljad
| Väli | Tüüp | Kirjeldus |
|---|---|---|
model | string | Kohustuslik. Hostitud avatud kaaludega mudeli id. Suur- ja väiketähti ei eristata. |
text | string | Tekst, mis loetakse sellisena, nagu ta on, ilma vestlusvorminduseta. Kuni 4,000,000 baiti. Saada text või messages; kui on mõlemad, loetakse text. |
messages | array | Vestlussõnumid Chat Completions vormingus. Need loetakse päringu täieliku sisendina: iga sõnum koos vormindusega, mille mudeli vestlusmall selle ümber paneb. |
tools | array | Tööriistade definitsioonid, mis lugemisse kaasata. Kasutatakse koos messages-iga. |
Vastus on JSON-objekt nende väljadega:
| Väli | Tüüp | Kirjeldus |
|---|---|---|
model | string | Mudeli id, mille jaoks lugemine tehti, avaldatud kirjapildis. |
tokens | integer | Väljaga text: teksti tokenid. Väljaga messages: kogu sisendi tokenid, pildid kaasa arvatud. |
Messages-päringu lugemine
Saada sisu, mille saadaksid lõpp-punkti /v1/messages: model, messages ning system ja tools, kui neid kasutad. Ametlikud Anthropic SDK-d kutsuvad seda lõpp-punkti meetodi messages.count_tokens kaudu.
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
} /v1/messages/count_tokens väljad
| Väli | Tüüp | Kirjeldus |
|---|---|---|
model | string | Kohustuslik. Hostitud avatud kaaludega mudeli id. |
messages | array | Kohustuslik. Sõnumid Anthropic Messages formaadis. Loetakse text-, image-, tool_use- ja tool_result-plokke. |
system | string | array | Süsteemiprompt: string või tekstiplokkide massiiv. |
tools | array | Tööriistade definitsioonid väljadega name, description ja input_schema. |
Võetakse ühilduvuse tarbeks vastu, arvule mõju avaldamata: tool_choice, max_tokens, temperature, top_p, stop_sequences, stream, thinking. Saad edastada tegeliku päringu sisu muutmata kujul.
Vastus on JSON-objekt nende väljadega:
| Väli | Tüüp | Kirjeldus |
|---|---|---|
input_tokens | integer | Kogu sisendi tokenid: süsteemiprompt, sõnumid, tööriistad ja pildid. |
Toetatud mudelid
Mõlemad lõpp-punktid loevad hostitud avatud kaaludega mudeleid. GET /v1/models loetleb /v1/tokenize ja /v1/messages/count_tokens iga neid toetava mudeli endpoints all. Igale muule model väärtusele, ka Shannoni id-dele, vastatakse 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
Shannoni mudeli tokenite arvu loe vastuse usage objektist.
Kuidas lugemine käib
Iga mudeli tokenid loetakse tema enda tokeniseerija ja enda vestlusmalliga. Märkide või sõnade põhjal hinnangut ei tehta.
| Mida loetakse | Reegel |
|---|---|
| Tekst | Saadetud stringi tokenid. Tühi string annab 0. |
| Sõnumid | Sõnumid ja tööriistad paigutatakse mudeli enda vestlusmalli järgi kuni kohani, kus vastus algab, ja see kogu prompt loetakse. |
| Rollid | Loetakse system, user, assistant ja tool sõnumid. developer loetakse kui system. Sõnum ilma sisu ja tööriistakutseta ei lisa midagi. |
| Tööriistakutsed ja tulemused | Varasemate assistendipoolsete pöörete tööriistakutsed ja nende tulemused kuuluvad lugemisse, mõlemas lõpp-punktis. |
| Pildid | Kehas saadetud pilt (base64 või data: URL) lisab ühe tokeni iga 28 × 28 piksli laigu kohta: ceil(width / 28) × ceil(height / 28). Pilti, mis on antud http(s) URL-ina, need lõpp-punktid ei lae alla ja see loetakse 1,024 tokeniks. |
Näide: 1,024 × 768 pikslit suur pilt annab ceil(1024 / 28) × ceil(768 / 28) = 37 × 28 = 1,036 tokenit.
Arv ja see, mille eest päringu eest arveldatakse
Kogu päringu lugemine tehakse samamoodi nagu sama mudeli, sõnumite ja tööriistadega tegeliku päringu sisendi lugemine. Vastus teatab selle arvu kui usage.prompt_tokens Chat Completions'is, kui usage.input_tokens Responses'is ning kui usage.input_tokens pluss usage.cache_read_input_tokens Messages'is.
- Arv on sisend enne vahemälus sisendi allahindlust. Tegelik päring võib osa sellest sisendist vahemälust lugeda ja arveldada selle osa vahemälu hinnaga. Prompti vahemäljutamine
http(s)URL-ina antud pilt loetakse siin 1,024. Tegelik päring laadib pildi alla ja loeb selle pikslites suuruse järgi, seega võivad kaks arvu erineda. Saada pilt base64-na, et saada sama arv.- Väljund ei kuulu arvu. Tegeliku päringu vastuse eest arveldatakse lisaks väljundtokenitena, arutlus kaasa arvatud.
textarvul ei ole vestluse vormindust. Kasuta seda dokumendi või prompti osa mõõtmiseks jamessagesvormi päringu mõõtmiseks.
Arvu hinnaks muutmiseks korruta see mudeli sisendi hinnaga 1M tokeni kohta. Mudelid ja hinnad
Piirangud
| Piirang | Väärtus | Sellest kõrgemal |
|---|---|---|
Välja text pikkus | 4,000,000 baiti (UTF-8) | 413 teatega text too long |
| Päringu keha | 32 MiB | 413 |
| Päringu kohta | Üks tekst või üks vestlus | Mitme teksti lugemiseks saada iga teksti kohta eraldi päring. |
Lugemispäringud ei lähe arvesse piirangu 120 päringut minutis hulka. Piirangud ja saldo
Vead
| Olek | Tüüp | Teade | Millal |
|---|---|---|---|
400 | invalid_request_error | tokenize is available for the hosted open models; unknown model: <model> | /v1/tokenize väljaga model, mis ei ole hostitud avatud kaaludega mudeli id. |
400 | invalid_request_error | count_tokens is available for the hosted open models; unknown model: <model> | /v1/messages/count_tokens väljaga model, mis ei ole hostitud avatud kaaludega mudeli id, või ilma model. |
400 | invalid_request_error | send `text` or `messages` | /v1/tokenize ilma text ja ilma messages. |
401 | authentication_error | Missing authentication / Invalid API key | Võtit ei saadetud või võti ei kehti. |
413 | invalid_request_error | text too long | text on pikem kui 4,000,000 baiti. Üle 32 MiB sisule vastatakse samuti 413. |
415 | invalid_request_error | Expected request with `Content-Type: application/json` | Päringul ei ole JSON-sisutüüpi. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | Kohustuslik väli puudub (model lõpp-punktis /v1/tokenize, messages lõpp-punktis /v1/messages/count_tokens) või väljal on vale tüüp. |
503 | api_error | token counting is temporarily unavailable for this model | Selle mudeli jaoks ei saa praegu lugeda. Proovi hiljem uuesti. |
/v1/tokenize tagastab vead OpenAI kujul. Lõpp-punktis /v1/messages/count_tokens tulevad lõpp-punkti enda vead (400 mudeli kohta, 503) Anthropic kujul ning 401, 413, 415 ja 422 OpenAI kujul. Loe kõigepealt olekukoodi, seejärel error.type ja error.message, mis on olemas mõlemal kujul.
{
"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"
}
}