Mine sisu juurde
Tokenite lugemine

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"])
200 Vastus
{
  "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"])
200 Vastus
{
  "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)
200 Vastus
{
  "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-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

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.
  • text arvul ei ole vestluse vormindust. Kasuta seda dokumendi või prompti osa mõõtmiseks ja messages vormi 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.

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