Aqbeż għall-kontenut
Prompt caching

Prompt caching

AWCUMATIKU

Il-modelli hosted open-weight jikkaxxejja prefixes ta' prompt ripetuti awtomatikament. Meta rikwest jibda b'stess system prompt, tools u l-messaġġi preċedenti bħal rikwest reċenti fuq l-istess modell, dak il-prefix komuni jittreqa mill-cache u jittreqa b'25% tas-prezz ta' input tal-modell. M'hemm xejk biex tiattiv, u l-kitba fil-cache hija b'għatis.

Kif taħdem

  • Prefix, fil-orderBy — Il-prompt jittreqa fil-ordine: system prompt, definizzjonijiet ta' tool, u wara l-messaġġi. Il-cache jaqsi mill-bidu ta' dik is-sekwenza sa l-ewwel token li jkun differenti.
  • X'jiġġeneralizza bħala 'hit' — Rikwest li l-prompt tiegħu jibda b'stess kontenna bħal rikwest reċenti — tipikament it-turn preċedent ta' stess konversazzjoni b'messaġġi ġdid miżid. Il-prefix li jaqsi huwa input cached; kull ħaġa wara tiegħu hija input regulari.
  • Granularità — Il-cache iżżomm prompt f'blokok ta' 1,568 tokens, għalhekk prompt iqsar minn madwar 1,500 tokens ma jinżammx fil-cache. L-għadd cached f'tweġiba huwa l-għadd tal-input tiegħek immultiplikat bis-sehem cached tal-prompt, imdawwar 'l isfel. M'huwiex neċessarjament multiplu tad-daqs tal-blokk.
  • Mingħajr hit — Talba li l-bidu tagħha mhuwiex fil-cache titħallas bir-rata regolari tal-input. Ebda tul ta' ħajja ma huwa ppubblikat għall-prompts cached u hit mhuwiex garantit: aqra usage biex tara dak li talba ħadet mill-cache.
  • Ebda swiċċ — Talba ma tagħżilx li tidħol, u ebda qasam ma jitfi l-caching.
  • Liema modelli — Kull hosted open-weight id. GET /v1/models jirapporta capabilities.prompt_caching: true u pricing.cached_input_per_million_usd għalihom. Il-modelli Shannon jibbwilju rata flat waħda.

Ara cache hit f'tweġiba

Ibgħat żewġ talbiet li jibdew bl-istess system prompt twil u stampa l-użu ta' kull waħda. L-ewwel numru huwa l-input tat-talba, it-tieni huwa l-parti minnu li ngħatat mill-cache.

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

Prezzijiet

It-tokens ta' input cached jittreqaw b'25% tar-rata ta' input tal-modell, imdorrata għal $0.001 per 1M. Il-kitba fil-cache ma tiswa xejk extra, u l-output jittreqa bħan-norma. Ir-rata cached ta' kull id tinsab fit-tavla Models & pricing. Mudelli u prezzijiet

L-input ta' sejħa jitħallas bħala (input − cached) × rata tal-input + cached × rata tal-cached. L-għadd cached qatt ma jkun akbar mill-għadd tal-input.

Mudell Input / 1M Input cached / 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

Il-log tal-użu jelenka l-input cached ta' kull sejħa. It-tokens imħallsa u l-ispiża tagħha diġà jinkludu r-rata cached. Ċwievet u użu

Kampi ta' użu

Endpoint Input cached Raġunament
/v1/chat/completions usage.prompt_tokens_details.cached_tokens — parti minn prompt_tokens usage.completion_tokens_details.reasoning_tokens — parti minn completion_tokens
/v1/responses usage.input_tokens_details.cached_tokens — parti minn input_tokens usage.output_tokens_details.reasoning_tokens — parti minn output_tokens
/v1/messages usage.cache_read_input_tokens — ir-rapport huwa separat: input_tokens hija l-parti mhux cached; cache_creation_input_tokens huwa dejjem 0 it-thinking jittreqa f'output_tokens
{
  "usage": {
    "prompt_tokens": 20000,
    "completion_tokens": 812,
    "total_tokens": 20812,
    "prompt_tokens_details": {
      "cached_tokens": 18000
    },
    "completion_tokens_details": {
      "reasoning_tokens": 604
    }
  }
}

Tweġiba bi streaming ġġorr l-istess kampi fl-użu finali tagħha. M'għandekx bżonn titlobha:

Endpoint Fejn jasal l-użu
/v1/chat/completions usage fl-aħħar chunk qabel data: [DONE]. Jintbagħat fuq kull stream.
/v1/responses response.usage tal-avveniment response.completed.
/v1/messages usage tal-avveniment message_delta. L-usage ta' message_start fih żeri.

Kif tikksib aktar cache hits

  • Zżommi s-system prompt u d-definizzjonijiet ta' tool stabbli byte-for-byte bejn ċhjam. Poġġu l-valuri per-call bħat-timestamp jew request ids fl-aħħar tal-messaġġ l-aħħar, mhux fis-system prompt.
  • Żid biss fil-history. L-editazzjoni, it-tqitir jew is-sommarizzazzjoni ta' turns preċedenti ibdlu l-prefix, u kull ħaġa wara l-ewwel bidla tittreqa bħala input regulari.
  • M'għandekx tirriordna t-tools, l-messaġġi jew blokks ta' kontenna bejn ċhjam, u serjalizza JSON (tool schemas, tool arguments u rriżultati) l-istess mod kull volta.
  • Ibqa' fuq id wieħed ta' mudell għal konversazzjoni, u ibgħat is-sejħa li ssegwi dalwaqt wara dik ta' qabel.

L-API iżomm stabbli l-bidu ta' konversazzjoni f'dawn il-każijiet:

  • Messaġġ system jew developer mibgħut aktar tard f'konversazzjoni jibqa' f'postu. Ma jbiddilx il-bidu tal-prompt, għalhekk it-turns qablu jibqgħu fil-cache.
  • L-argumenti ta' sejħiet ta' tools f'turns preċedenti tal-assistent jitqabblu skont il-valur. L-ordni taċ-ċwievet u l-ispazjar ta' dak il-JSON ma jgħoddux.
  • It-tliet endpoints jaqraw konversazzjoni bl-istess mod. Konversazzjoni li titkompla fuq endpoint ieħor iżżomm il-prefix komuni tagħha meta l-kontenut ikun l-istess.

Kampi tar-rikwest

prompt_cache_key (Chat Completions u Responses) u cache_control fuq blocks ta' kontenut ta' Messages huma aċċettati, b'hekk il-kodu ta' client eżistenti jaħdix bidemmi. Huma sħaħ: il-caching huwa awtomatiku u jaħdem l-istess mingħajhom.

Qasam Mibgħut lil X'inhu
prompt_cache_key /v1/chat/completions, /v1/responses Ċavetta ta' routing tal-cache tal-API OpenAI.
cache_control /v1/messages Breakpoint tal-cache fuq blokk tal-kontenut, blokk system jew messaġġ tal-API Anthropic.
stream_options /v1/chat/completions include_usage jitlob mill-API OpenAI l-użu fuq stream. Hawn kull stream jispiċċa bl-użu.

Għandna deċiedu t-tokens

Żewġ endpoints b'xejn, POST /v1/tokenize u POST /v1/messages/count_tokens, jgħoddu t-tokens ta' test jew ta' talba sħiħa għall-mudelli open-weight ospitati qabel ma tibgħatha. Għandhom paġna tagħhom: Għadd ta' tokens