Mine sisu juurde
Prompti vahemäljutamine

Prompti vahemäljutamine

AUTOMAATNE

Hosted open-weight mudelid vahemäljutavad korduvaid prompti prefikse automaatselt. Kui päring algab sama süsteem-prompti, tööriistade ja varasemate sõnumitega kui hilisema aegse päring samas mudelis, lugetakse see ühine prefiks vahemälust ja arvestatakse 25% mudeli sisendihinnast. Midagi aktiveerida pole vaja ning vahemälu kirjutamine on tasuta.

Kuidas see töötab

  • Prefiks järjekorras — Prompt lugetakse järjekorras: süsteem-prompt, tööriistade definitsioonid ja seejärel sõnumid. Vahemälu sobib algusest kuni esimese erineva tokenini.
  • Mida loetakse hitiks — Päring, mille prompt algab sama sisuvaga kui hilisema aegne päring — tavaliselt on see sama vestluse eeline pööre, millele on lisatud uued sõnumid. Ühisev prefiks on vahemälus olev sisend; kõik sellest edasi on tavaline sisend.
  • Kaseerigus — Vahemälu hoiab prompti 1,568 tokeni suuruste plokkidena, seega alla umbes 1,500 tokeni pikkust prompti ei vahemällustata. Vastuses olev vahemälus olev arv on sinu sisendi arv korrutatud prompti vahemälus oleva osaga, allapoole ümardatud. See ei ole tingimata ploki suuruse kordne.
  • Ilma tabamuseta — Päringut, mille algust vahemälus ei ole, arveldatakse tavalise sisendi hinnaga. Vahemällu pandud promptidele ei avaldata eluiga ja tabamust ei garanteerita: loe usage, et näha, mida päring vahemälust võttis.
  • Lülitit ei ole — Päring ei vali seda ise ja ükski väli ei lülita vahemällu panekut välja.
  • Millised mudelid — Kõik hosted open-weight id-d. GET /v1/models raporteerib neile capabilities.prompt_caching: true ja pricing.cached_input_per_million_usd. Shannon mudelid arvestavad ühe lamehinnaga.

Vaata vahemälutabamust vastuses

Saada kaks päringut, mis algavad sama pika süsteemipromptiga, ja trüki kummagi kasutusandmed. Esimene arv on päringu sisend, teine on selle osa, mis loeti vahemälust.

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

Hinnastamine

Vahemälus olevad sisenditokenid maksavad 25% mudeli sisendihinnast, ümardatuna $0.001 per 1M. Vahemälu kirjutamine ei maksa lisatagust ja väljund on arvestatud tavapäraselt. Iga id-i vahemälihind on Models & pricing tabelis. Mudelid ja hinnad

Kõne sisendi hind on (sisend − vahemälus) × sisendi hind + vahemälus × vahemälu hind. Vahemälus olev arv ei ole kunagi suurem kui sisendi arv.

Mudel Sisend / 1M Vahemälus sisend / 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

Kasutuslogi loetleb iga kõne vahemälus oleva sisendi. Selle arveldatud tokenid ja hind sisaldavad vahemälu hinda juba. Võtmed ja kasutus

Kasutusväljad

Lõpppunkt Vahemälus olev sisend Põrutus
/v1/chat/completions usage.prompt_tokens_details.cached_tokens — osa prompt_tokens-ist usage.completion_tokens_details.reasoning_tokens — osa completion_tokens-ist
/v1/responses usage.input_tokens_details.cached_tokens — osa input_tokens-ist usage.output_tokens_details.reasoning_tokens — osa output_tokens-ist
/v1/messages usage.cache_read_input_tokens — raporteeritakse eraldi: input_tokens on vahemälus olematu osa; cache_creation_input_tokens on alati 0 mõtlemine (thinking) on arvestatud output_tokens-is
{
  "usage": {
    "prompt_tokens": 20000,
    "completion_tokens": 812,
    "total_tokens": 20812,
    "prompt_tokens_details": {
      "cached_tokens": 18000
    },
    "completion_tokens_details": {
      "reasoning_tokens": 604
    }
  }
}

Voogedastatud vastus kannab samu välju oma lõplikus kasutuses. Sa ei pea seda küsima:

Lõpppunkt Kus kasutusandmed saabuvad
/v1/chat/completions usage viimasel chunkil enne data: [DONE]. See saadetakse igal voos.
/v1/responses response.completed-sündmuse response.usage.
/v1/messages message_delta-sündmuse usage. message_start usage sisaldab nulle.

Kuidas saada rohkem hitisid

  • Hoidke süsteem-prompt ja tööriistade definitsioonid kõnetvaheliselt byte-by-byte stabiilseks. asetage iga kõnega muutuvad väärtused, nagu ajatemplid või päringu id-d, viimase sõnumi lõppu, mitte süsteem-prompti.
  • Lisage ajaloo lõpule. Varasemate pöörete redigeerimine, loomine või kokkuvõtte tegemine muudab prefiksit ja kõik pärast esimest muutust arvestatakse tavalise sisendina.
  • Ärge muutke tööriistade, sõnumite või sisuplokkide järjekorda kõnetvaheliselt ning serialiseerige JSON (tööriistade skeemad, argumendid ja tulemused) iga korda samamoodi.
  • Jää vestluse ajaks ühe mudeli id juurde ja saada järgmine kõne varsti pärast eelmist.

API hoiab vestluse alguse stabiilsena neil juhtudel:

  • Vestluses hiljem saadetud system- või developer-sõnum jääb oma kohale. See ei muuda prompti algust, seega jäävad selle ees olevad vahetused vahemällu.
  • Varasemate assistendi vahetuste tööriistakutsete argumente võrreldakse väärtuse järgi. Selle JSON-i võtmete järjekord ja tühikud ei loe.
  • Kolm lõpp-punkti loevad vestlust ühtmoodi. Teises lõpp-punktis jätkatud vestlus säilitab ühise prefiksi, kui sisu on sama.

Päringu väljad

prompt_cache_key (Chat Completions ja Responses) ning cache_control Messagesi sisuplokkides on aktsepteeritud, et olemasolev kliendikood töötaks muutmata. Kumbki ei ole kohustuslik: caching on automaatne ja toimib ka ilma nendeta.

Väli Saadetakse Mis see on
prompt_cache_key /v1/chat/completions, /v1/responses OpenAI API vahemälu marsruutimisvõti.
cache_control /v1/messages Vahemälu murdepunkt sisuplokil, system-plokil või Anthropic API sõnumil.
stream_options /v1/chat/completions include_usage küsib OpenAI API-lt voo kasutusandmeid. Siin lõpeb iga voog kasutusandmetega.

Tokenite arvutamine

Kaks tasuta lõpp-punkti, POST /v1/tokenize ja POST /v1/messages/count_tokens, loevad hostitud avatud kaaludega mudelite jaoks teksti või kogu päringu tokenid enne saatmist. Neil on oma leht: Tokenite lugemine