Pāriet uz saturu
Promptu kešēšana

Promptu kešēšana

AUTOMĀTISKI

Hosted open-weight modeļi automātiski kešē atkārtotus promptu prefiksus. Ja pieprasījums sākas ar to pašu sistēmas promptu, rīkiem un iepriekšējiem ziņapmaiņiem kā nesenais pieprasījums tajam pašam modelim, šis kopīgais prefikss tiek nolasīts no keša un rēķināts pēc 25% no modeļa ievades cenas. Nav nekas jāaktivizē, un keša rakstīšana ir bezmaksas.

Kā tas darbojas

  • Prefiks laika secībā — Prompts tiek nolasīts secībā: sistēmas prompts, rīku definīcijas, tad ziņapmaiņi. Kešs sakrīt no šīs secīgas sākuma līdz pirmajam tokenam, kas atšķiras.
  • Kas tiek skaitīts kā 'hit' — Pieprasījums, kura prompta sākums sakrīt ar nesena pieprasījuma saturu — parasti tā ir iepriekšējā sarunasnodaļa ar pievienotiem jauniem ziņojumiem. Sakrītošais prefiks ir kešēta ievade; viss pēc tā ir regulāra ievade.
  • Granularitāte — Kešs glabā uzvedni 1,568 tokenu blokos, tāpēc uzvedne, kas īsāka par aptuveni 1,500 tokeniem, netiek kešota. Kešoto tokenu skaits atbildē ir jūsu ievades skaits, reizināts ar uzvednes kešoto daļu, noapaļots uz leju. Tas ne vienmēr ir bloka izmēra daudzkārtnis.
  • Bez trāpījuma — Pieprasījums, kura sākuma keša nav, tiek rēķināts pēc parastās ievades likmes. Kešotām uzvednēm dzīves ilgums nav publicēts, un trāpījums nav garantēts: lasiet usage, lai redzētu, ko pieprasījums paņēma no keša.
  • Slēdža nav — Pieprasījums nav jāpiesaka, un neviens lauks kešošanu neizslēdz.
  • Kuri modeļi — Katra hosted open-weight ID. GET /v1/models ziņo par capabilities.prompt_caching: true un pricing.cached_input_per_million_usd. Shannon modeļi rēķina vienotu tarifa.

Kā redzēt keša trāpījumu atbildē

Nosūtiet divus pieprasījumus, kas sākas ar vienu un to pašu garo sistēmas uzvedni, un izdrukājiet katra lietojuma datus. Pirmais skaitlis ir pieprasījuma ievade, otrais ir tās daļa, kas nolasīta no keša.

from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.shannon-ai.com/v1")

handbook = open("handbook.txt").read()  # a long text that stays the same


def ask(question):
    response = client.chat.completions.create(
        model="Kimi-K3-3BIT-REAP",
        messages=[
            {"role": "system", "content": handbook},
            {"role": "user", "content": question},
        ],
    )
    usage = response.usage
    print(usage.prompt_tokens, usage.prompt_tokens_details.cached_tokens)


ask("What is the refund policy?")
ask("Who approves travel?")  # same start: read the second number

Cenas

Kešētie ievades tokeni tiek rēķināti pēc 25% no modeļa ievades tarifa, noapaļoti līdz $0.001 per 1M. Rakstīšana kešam neko papildu nemaksa, un izvade tiek rēķināta kā parasti. Katra ID kešētais tarifs ir tabulā 'Models & pricing'. Modeļi un cenas

Izsaukuma ievade tiek rēķināta kā (ievade − kešota) × ievades likme + kešota × kešotās ievades likme. Kešoto tokenu skaits nekad nav lielāks par ievades tokenu skaitu.

Modelis Ievade / 1M Kešota ievade / 1M
DeepSeek-V4-Pro-0813-3BIT-REAP $1.95 $0.488
GLM-5.2-3BIT-REAP $0.73 $0.183
Kimi-K3-3BIT-REAP $3.83 $0.958
Nemotron3Ultra-3BIT-REAP $0.75 $0.188
MiniMax-M3-3BIT-REAP $0.50 $0.125
DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP $0.50 $0.125
Kimi-K2.6-W4A16-AUTOROUND-REAP $0.78 $0.195
Laguna-S-2.1-W4A16-AUTOROUND-REAP $0.50 $0.125
inkling-W4A16-AUTOROUND-REAP $1.42 $0.355
MiMo-V2.5-Pro-W8A16 $0.50 $0.125
MiMo-V2.5-W8A16 $0.50 $0.125
Hy3-W8A16 $0.50 $0.125

Lietojuma žurnālā ir norādīta katra izsaukuma kešotā ievade. Tā rēķinātie tokeni un izmaksas jau ietver kešotās ievades likmi. Atslēgas un izmantošana

Izmantošanas lauki

Endpoints Kešēta ievade Spēja spēkotiet (Reasoning)
/v1/chat/completions usage.prompt_tokens_details.cached_tokens — daļa no prompt_tokens usage.completion_tokens_details.reasoning_tokens — daļa no completion_tokens
/v1/responses usage.input_tokens_details.cached_tokens — daļa no input_tokens usage.output_tokens_details.reasoning_tokens — daļa no output_tokens
/v1/messages usage.cache_read_input_tokens — ziņota atsevišķi: input_tokens ir nekešētais fragments; cache_creation_input_tokens vienmēr ir 0 atspoguļo 'thinking' output_tokens sadaļā
{
  "usage": {
    "prompt_tokens": 20000,
    "completion_tokens": 812,
    "total_tokens": 20812,
    "prompt_tokens_details": {
      "cached_tokens": 18000
    },
    "completion_tokens_details": {
      "reasoning_tokens": 604
    }
  }
}

Straumēta atbilde savos noslēguma lietojuma datos nes tos pašus laukus. Tie nav jāpieprasa:

Endpoints Kur ierodas lietojuma dati
/v1/chat/completions usage pēdējā daļā pirms data: [DONE]. To sūta katrā straumē.
/v1/responses Notikuma response.completed response.usage.
/v1/messages Notikuma message_delta usage. message_start usage satur nulles.

Kā panākt vairāk keša 'hit'u

  • Sagatājiet sistēmas promptu un rīku definīcijas tā, lai tie būtu identiski (byte-for-byte) starp izsaukumiem. Novietojiet mainīgos vērtījumus, piemēram, laika zīmītes vai pieprasījuma ID, ziņojuma beigās, nevis sistēmas promptā.
  • Pievienojiet informāciju tikai vēstures beigās. Ipriekšējo posmu redizēšana, apgriešana vai apkopšana maina prefiksu, un viss pēc pirmā mainījuma tiek rēķināts kā regulāra ievade.
  • Nemainiet rīku, ziņojumu vai satura bloku secību starp izsaukumiem un katru reizi JSON (rīku shēmas, argumenti un rezultāti) serializējiet vienādu veidā.
  • Sarunai paliciet pie viena modeļa id un nākamo izsaukumu sūtiet drīz pēc iepriekšējā.

API šajos gadījumos saglabā sarunas sākumu stabilu:

  • Sarunā vēlāk nosūtīts system vai developer ziņojums paliek savā vietā. Tas nemaina uzvednes sākumu, tāpēc pirms tā esošās reizes paliek kešotas.
  • Rīku izsaukumu argumenti iepriekšējās asistenta reizēs tiek salīdzināti pēc vērtības. Šī JSON atslēgu secība un atstarpes nav svarīgas.
  • Trīs galapunkti nolasa sarunu vienādi. Saruna, kas turpināta citā galapunktā, saglabā kopīgo prefiksu, ja saturs ir tāds pats.

Requesta lauki

Tiek pieņemti prompt_cache_key (Chat Completions un Responses) un cache_control Messages satura blokos, tāpēc esošais klienta kods darbojas nemainīti. Neviens no tiem nav obligāts: kešēšana ir automātiska un darbojas tāpat arī bez tiem.

Lauks Sūta uz Kas tas ir
prompt_cache_key /v1/chat/completions, /v1/responses OpenAI API keša maršrutēšanas atslēga.
cache_control /v1/messages Keša pārtraukuma punkts satura blokam, system blokam vai Anthropic API ziņojumam.
stream_options /v1/chat/completions include_usage lūdz OpenAI API lietojuma datus straumē. Šeit katra straume beidzas ar lietojuma datiem.

Tokenu skaitīšana

Divi bezmaksas galapunkti, POST /v1/tokenize un POST /v1/messages/count_tokens, saskaita teksta vai visa pieprasījuma tokenus hostētajiem atvērto svaru modeļiem, pirms jūs to nosūtāt. Tiem ir sava lapa: Tokenu skaitīšana