Joan edukira
Prompt-cache

Prompt-cache

AUTOMATIKOA

Hosted open-weight modeloek prompt-prefix errepikatuak automatikoki cache-an gordetzen dituzte. Eskapide batbidean system prompt, tresnak eta mezuak berdin badira modelo berdineko eskapide berri batean, prefix ownak cache-tik irakurtzen da eta modeloaren sarrera-prezioaren %25ean kobratzen da. Ez dago aktibatzeko ezer, eta cache-idazketak doakoak dira.

Nola funtzionatzen duen

  • Prefix, ordenan — Prompta ordenan irakurtzen da: system prompt, tresna-definitzioak eta ondoren mezuak. Cacheak sekuentzia horren hasieratik lehen token desbederia duten arteko z 만큼 batzaten
  • Zer kontatzen da hit gisa — Eskapide bat, bere promptak eskapide berri batekin own content hasiz denean — ohikoztatuna da elkarrizketa berri batek mezuak gehitakoa izatea. Match egin duen prefixa sarrera cachekoa da; horren ondoren dakiuna sarrera ohiko sarrera da.
  • Granularitasuna — Cacheak prompt bat 1,568 tokeneko blokeetan gordetzen du, beraz 1,500 token inguru baino laburragoa den prompt bat ez da cachean gordetzen. Erantzun bateko cacheko kopurua zure sarrera-kopurua promptaren cacheko zatiarekin biderkatuta da, behera biribilduta. Ez da zertan blokearen tamainaren multiploa izan.
  • Hit gabe — Hasiera cachean ez dagoen eskaera sarrera-tasa arruntean fakturatzen da. Ez da cacheko promptentzako iraupenik argitaratzen eta hit bat ez dago bermatuta: irakurri usage eskaera batek cachetik zer hartu duen ikusteko.
  • Etengailurik ez — Eskaera batek ez du aktibatu behar, eta ez dago cachea desaktibatzen duen eremurik.
  • Zein modeloak — Hosted open-weight id guztiek. GET /v1/models reportatzen du capabilities.prompt_caching: true eta pricing.cached_input_per_million_usd. Shannon modeloek tarifa finko bat kobratzen dute.

Ikusi cache hit bat erantzun batean

Bidali bi eskaera system prompt luze berberarekin hasten direnak, eta inprimatu bakoitzaren erabilera. Lehen zenbakia eskaeraren sarrera da, bigarrena cachetik irakurritako zatia.

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

Prezioak

Sarrera cacheko tokenak modeloaren sarrera-tarifaren %25ean kobratzen dira, 1Mko $0.001ra birribiltuta. Cache-n idazteak ez dakar kostu gehigarikoik, eta irteerak ohiko moduan kobratzen da. Id bakoitzaren tarifa cachekoa 'Models & pricing' taulan dago. Modeloak eta prezioak

Dei baten sarrera honela kobratzen da: (sarrera − cachekoa) × sarrera-tasa + cachekoa × cacheko tasa. Cacheko kopurua ez da inoiz sarrera-kopurua baino handiagoa.

Modeloa Sarrera / 1M Cacheko sarrera / 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

Erabilera-erregistroak dei bakoitzaren cacheko sarrera zerrendatzen du. Bere token fakturatuek eta kostuak cacheko tasa jada barne hartzen dute. Gakoak eta erabilera

Erabilpen-eremuak

Endpoint-a Sarrera cachekoa Arrazoitzea
/v1/chat/completions usage.prompt_tokens_details.cached_tokens — prompt_tokens zati bat usage.completion_tokens_details.reasoning_tokens — completion_tokens zati bat
/v1/responses usage.input_tokens_details.cached_tokens — input_tokens zati bat usage.output_tokens_details.reasoning_tokens — output_tokens zati bat
/v1/messages usage.cache_read_input_tokens — apart reportatua: input_tokens zati ez-cachekoa da; cache_creation_input_tokens beti 0 da pentsatzea output_tokens-en kontatzen da
{
  "usage": {
    "prompt_tokens": 20000,
    "completion_tokens": 812,
    "total_tokens": 20812,
    "prompt_tokens_details": {
      "cached_tokens": 18000
    },
    "completion_tokens_details": {
      "reasoning_tokens": 604
    }
  }
}

Stream bidezko erantzun batek eremu berberak ditu bere azken erabileran. Ez duzu eskatu behar:

Endpoint-a Erabilera non iristen den
/v1/chat/completions usage data: [DONE] baino lehenagoko azken chunk-ean. Stream guztietan bidaltzen da.
/v1/responses response.completed gertaeraren response.usage.
/v1/messages message_delta gertaeraren usage. message_start-en usage-k zeroak ditu.

Cache hit gehiago lortzeko

  • Mantendu system prompt eta tresna-definitzioak byte-ra byte stable eskapideak artean. Put per-call balioak, timestampak edo request id-ak, azken mezuaren amaian jarri, ez system prompt-ean.
  • Gehitu bakariz historiaren amaian. Lehen txandorak editatzea, moztu edo laburtzea prefixa aldatzen du, eta lehen aldaketaz geroa dena sarrera ohiko gisa kobratzen da.
  • Ez aldatu tresnen, mezuen edo edukizun-blokuen ordena eskapideak artean, eta serializatu JSON (tresna-eskemak, argumentuak eta emaitzak) beti modu berean.
  • Mantendu modelo-id bera elkarrizketa batean, eta bidali ondorengo deia aurrekoaren ondoren laster.

API-ak elkarrizketaren hasiera egonkor mantentzen du kasu hauetan:

  • Elkarrizketan geroago bidalitako system edo developer mezu bat bere lekuan geratzen da. Ez du promptaren hasiera aldatzen, beraz aurreko txandak cachean geratzen dira.
  • Assistant-en aurreko txanden tresna-deien argumentuak balioz alderatzen dira. JSON horren gakoen ordenak eta tarteek ez dute axola.
  • Hiru endpoint-ek elkarrizketa modu berean irakurtzen dute. Beste endpoint batean jarraitutako elkarrizketak partekatutako aurrizkia mantentzen du edukia berbera denean.

Eskaera-eremuak

prompt_cache_key (Chat Completions eta Responses) eta cache_control mezuen edukizkiaren blokeetan onartzen dira, beraz bezeroaren kode existenteak aldatzez run egiten dira. Beti behar dira: cache-a automatikoa da eta berdin funtzionatzen du gabe.

Eremua Nori bidaltzen zaion Zer den
prompt_cache_key /v1/chat/completions, /v1/responses OpenAI API-ko cache bideratze-gako bat.
cache_control /v1/messages Cache-etenune bat eduki-bloke batean, system bloke batean edo Anthropic API-ko mezu batean.
stream_options /v1/chat/completions include_usage-k OpenAI API-ari stream baten erabilera eskatzen dio. Hemen stream guztiak erabilerarekin amaitzen dira.

Tokenak countatzea

Bi endpoint doakok, POST /v1/tokenize eta POST /v1/messages/count_tokens, testu baten edo eskaera oso baten tokenak kontatzen dituzte pisu irekiko modelo ostatatuetarako, bidali aurretik. Beren orrialdea dute: Tokenen kontaketa