Siirry sisältöön
Prompt-välimuistitus

Prompt-välimuistitus

AUTOMAATTINEN

Hosted open-weight -mallit välimuistittavat toistuvia prompt-prefiksejä automaattisesti. Kun pyyntö alkaa samalla järjestelmäpromptilla, työkaluilla ja aiemmilla viesteillä kuin äskettäinen pyyntö samalla mallilla, jaettu prefiksi luetaan välimuistista ja laskutetaan 25 %:lla mallin syötteen hinnasta. Mitään ei tarvitse aktivoida, ja välimuistin kirjoittaminen on ilmaista.

Miten se toimii

  • Prefiksi, järjestyksessä — Prompt luetaan järjestyksessä: järjestelmäprompt, työkalumääritykset ja sitten viestit. Välimuisti täsmää tämän sarjan alusta aina ensimmäiseen poikkeavaan tokeniin asti.
  • Mikä lasketaan osumaksi — Pyyntö, jonka prompt alkaa samalla sisällöllä kuin äskettäinen pyyntö — tyypillisesti saman keskustelun edellinen vuoro, johon on liitetty uusia viestejä. Täsmäävä prefiksi on välimuistisyötettä; kaikki sen jälkeen on tavallista syötettä.
  • Granulaarisuus — Välimuisti pitää promptin 1,568 tokenin lohkoissa, joten noin 1,500 tokenia lyhyempää promptia ei tallenneta välimuistiin. Vastauksen välimuistimäärä on syötteesi määrä kerrottuna promptin välimuistissa olevalla osuudella, pyöristettynä alas. Se ei välttämättä ole lohkokoon monikerta.
  • Ilman osumaa — Pyyntö, jonka alkua ei ole välimuistissa, laskutetaan tavallisella syötteen hinnalla. Välimuistissa olevalle promptille ei ole julkaistu elinaikaa, eikä osumaa taata: lue usage nähdäksesi, mitä pyyntö otti välimuistista.
  • Ei kytkintä — Pyyntö ei valitse välimuistitusta, eikä mikään kenttä kytke sitä pois.
  • Mitkä mallit — Jokainen hosted open-weight id. GET /v1/models raportoi niille capabilities.prompt_caching: true ja pricing.cached_input_per_million_usd. Shannon-mallit laskuttavat yhdellä kiinteällä hinnalla.

Välimuistiosuman näkeminen vastauksessa

Lähetä kaksi pyyntöä, jotka alkavat samalla pitkällä system promptilla, ja tulosta kummankin käyttötiedot. Ensimmäinen luku on pyynnön syöte, toinen on sen välimuistista luettu osa.

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

Hinnoittelu

Välimuistisyöte-tokenit laskutetaan 25 %:lla mallin syötteen hinnasta, pyöristettynä arvoon $0.001 per 1M. Välimuistiin kirjoittaminen ei maksa mitään ylimääräistä, ja ulostulo laskutetaan normaalisti. Jokaisen id:n välimuistihinta on Models & pricing -taulukossa. Mallit ja hinnoittelu

Kutsun syöte veloitetaan kaavalla (syöte − välimuisti) × syötteen hinta + välimuisti × välimuistin hinta. Välimuistin määrä ei ole koskaan syötteen määrää suurempi.

Malli Syöte / 1M Välimuistisyöte / 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

Käyttöloki listaa jokaisen kutsun välimuistisyötteen. Sen laskutetut tokenit ja kustannus sisältävät jo välimuistin hinnan. Avaimet ja käyttö

Käyttökentät

Päätepiste Välimuistisyöte Päättely
/v1/chat/completions usage.prompt_tokens_details.cached_tokens — osa prompt_tokensista usage.completion_tokens_details.reasoning_tokens — osa completion_tokensista
/v1/responses usage.input_tokens_details.cached_tokens — osa input_tokensista usage.output_tokens_details.reasoning_tokens — osa output_tokensista
/v1/messages usage.cache_read_input_tokens — raportoidaan erikseen: input_tokens on välimuistimaton osa; cache_creation_input_tokens on aina 0 päättely lasketaan output_tokens-määrään
{
  "usage": {
    "prompt_tokens": 20000,
    "completion_tokens": 812,
    "total_tokens": 20812,
    "prompt_tokens_details": {
      "cached_tokens": 18000
    },
    "completion_tokens_details": {
      "reasoning_tokens": 604
    }
  }
}

Suoratoistettu vastaus kantaa samat kentät lopullisissa käyttötiedoissaan. Sitä ei tarvitse pyytää:

Päätepiste Mistä käyttötiedot tulevat
/v1/chat/completions usage viimeisessä palassa ennen data: [DONE]. Se lähetetään jokaisessa virrassa.
/v1/responses response.completed-tapahtuman response.usage.
/v1/messages message_delta-tapahtuman usage. message_start-tapahtuman usage sisältää nollia.

Lisää välimuistiosumia

  • Pidä järjestelmäprompt ja työkalumääritykset tavu tismalleen samoina kutsujen välillä. Sijoita kutskohtaiset arvot, kuten aikaleimat tai pyyntö-id:t, viimeisimmän viestin loppuun, ei järjestelmäpromptiin.
  • Lisää sisältöä vain historian loppuun. Aiempien vuorojen muokkaaminen, trimmaaminen tai tiivistäminen muuttaa prefiksiä, jolloin kaikki ensimmäisen muutoksen jälkeinen laskutetaan tavallisena syötteenä.
  • Älä muuta työkalujen, viestien tai sisältölohkojen järjestystä kutsujen välillä, ja serialisoi JSON (työkalujen skeemat, argumentit ja tulokset) samalla tavalla joka kerta.
  • Pysy yhdessä mallin id:ssä koko keskustelun ajan ja lähetä seuraava kutsu pian edellisen jälkeen.

API pitää keskustelun alun vakaana näissä tapauksissa:

  • Keskustelussa myöhemmin lähetetty system- tai developer-viesti pysyy paikallaan. Se ei muuta promptin alkua, joten sitä edeltävät vuorot pysyvät välimuistissa.
  • Aiempien assistant-vuorojen työkalukutsujen argumentit vertaillaan arvon mukaan. Kyseisen JSONin avainten järjestyksellä ja välilyönneillä ei ole merkitystä.
  • Kolme päätepistettä lukevat keskustelun samalla tavalla. Toisessa päätepisteessä jatkettu keskustelu säilyttää yhteisen prefiksinsä, kun sisältö on sama.

Pyynnön kentät

prompt_cache_key (Chat Completions ja Responses) sekä cache_control Messages-sisältölohkoissa hyväksytään, joten nykyinen asiakaskoodi toimii muuttumattomana. Kumpikaan ei ole välttämätön: välimuistitus on automaattinen ja toimii samalla tavalla ilman niitä.

Kenttä Lähetetään kohteeseen Mitä se on
prompt_cache_key /v1/chat/completions, /v1/responses OpenAI API:n välimuistin reititysavain.
cache_control /v1/messages Anthropic API:n välimuistin katkaisukohta sisältölohkossa, system-lohkossa tai viestissä.
stream_options /v1/chat/completions include_usage pyytää OpenAI API:lta käyttötiedot virtaan. Täällä jokainen virta päättyy käyttötietoihin.

Tokenien laskenta

Kaksi ilmaista päätepistettä, POST /v1/tokenize ja POST /v1/messages/count_tokens, laskevat tekstin tai koko pyynnön tokenit hostatuille avoimen painon malleille ennen lähettämistä. Niillä on oma sivunsa: Tokenien laskenta