Zum Inhalt sprangen
Prompt Caching

Prompt Caching

AUTOMATESCH

Die hosted open-weight Modeller cachen wiederhollte Prompt-Prefixen automatesch. Wann eng Request mat deem grousse System-Prompt, Tools an aarbechter Messagen ufänkt wéi eng rezente Request op deem gellchen Modell, gëtt dëse shared Prefix aus dem Cache gelies an mat 25% vum Input-Pris vum Modell abgerechnet. Et gëtt näischt ze aktivéieren, an Cache-Writes sinn gratis.

Wéi et funktionéiert

  • Prefix, an der Rei — De Prompt gëtt an dëser Rei gelies: System-Prompt, Tool-Definitiounen, dann d'Messagen. De Cache matcht vum Ufank vun dëser Sequenz bis zum éischte Token, dee sech ënnerscheet.
  • Wat gëtt als Hit gezielt — Eng Request, deren Prompt mat deem gellchen Content vun enger rezente Request ufänkt — typischerweis de virausgoende Tour vun der gellcher Conversatioun mat neie Messagen am Enn. De matching Prefix ass cached Input; alles dropout ass regulären Input.
  • Granularitéit — De Cache hält e Prompt a Blöck vun 1,568 Tokens, dofir gëtt e Prompt, dee méi kuerz ass wéi ongeféier 1,500 Tokens, net gecacht. D'Cached-Zuel an enger Äntwert ass Är Input-Zuel multiplizéiert mam gecachten Undeel vum Prompt, ofgerënnt. Si ass net onbedéngt e Multipel vun der Blockgréisst.
  • Ouni Hit — Eng Ufro, där hire Start net am Cache ass, gëtt zum normalen Input-Tarif ofgerechent. Fir gecachte Prompts gëtt keng Liewensdauer verëffentlecht an en Hit ass net garantéiert: liest usage, fir ze gesinn, wat eng Ufro aus dem Cache geholl huet.
  • Kee Schalter — Eng Ufro mellt sech net un, a kee Feld schalt d'Caching of.
  • Wéich Modeller — Jeden hosted open-weight ID. GET /v1/models reportéiert capabilities.prompt_caching: true an pricing.cached_input_per_million_usd fir se. Shannon Modeller berechnen e flachen Tarif.

Een Cache-Hit an enger Äntwert gesinn

Schéckt zwou Ufroen, déi mat deemselwechte laange System-Prompt ufänken, a gitt d'Usage vun all Ufro aus. Déi éischt Zuel ass den Input vun der Ufro, déi zweet ass den Deel dovun, deen aus dem Cache gelies gouf.

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

Pris

Cached Input Tokens ginn mat 25% vum Input-Tarif vum Modell abgerechnet, gerundet op $0.001 pro 1M. D'Schreiwen an de Cache kascht näischt extra, an den Output gëtt wéi gewillt abgerechnet. De cached Tarif vun jedem ID ass an der Tabell 'Models & pricing' ze fannen. Modeller a Präisser

Den Input vun engem Opruff gëtt als (Input − cached) × Input-Tarif + cached × Cached-Tarif berechent. D'Cached-Zuel ass ni méi grouss wéi d'Input-Zuel.

Modell Input / 1M Cached Input / 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

D'Notzungslog lëscht den Cached Input vun all Opruff. Seng ofgerechent Tokens a Käschte enthalen den Cached-Tarif schonn. Schlësselen & Notzung

Usage Felder

Endpoint Cached Input Reasoning
/v1/chat/completions usage.prompt_tokens_details.cached_tokens — Deel vun prompt_tokens usage.completion_tokens_details.reasoning_tokens — Deel vun completion_tokens
/v1/responses usage.input_tokens_details.cached_tokens — Deel vun input_tokens usage.output_tokens_details.reasoning_tokens — Deel vun output_tokens
/v1/messages usage.cache_read_input_tokens — separat reportéiert: input_tokens ass de deen net cached Deel; cache_creation_input_tokens ass ëmmer 0 Thinking gëtt an output_tokens gezällt
{
  "usage": {
    "prompt_tokens": 20000,
    "completion_tokens": 812,
    "total_tokens": 20812,
    "prompt_tokens_details": {
      "cached_tokens": 18000
    },
    "completion_tokens_details": {
      "reasoning_tokens": 604
    }
  }
}

Eng gestreamt Äntwert huet déiselwecht Felder an hirer lescht Usage. Dir musst net dornach froen:

Endpoint Wou d'Usage ukënnt
/v1/chat/completions usage um leschte Chunk virun data: [DONE]. Si gëtt bei all Stream geschéckt.
/v1/responses response.usage vum response.completed-Event.
/v1/messages usage vum message_delta-Event. D'usage vu message_start enthält Nullen.

Méi Cache Hits kréien

  • Halt de System-Prompt an d'Tool-Definitiounen Byte-fir-Byte stabil iwwer d'Calls hinweg. Setzt per-Call Wäerter wéi Timestamps oder Request IDs un den Enn vun der letschter lëscht Message, net an den System-Prompt.
  • Fügegt nëm de History un. Wann Dir fréier Tourën editéiert, kürzt oder resuméiert, ännert Dir de Prefix, an alles no der éischter Ännerung gëtt als regulären Input abgerechnet.
  • Ännert d'Rei follong vun Tools, Messagen oder Content Blöck tëscht de Calls net, an serialiséiert JSON (Tool Schemas, Tool Argumenter an Resultater) ëmmer op déi gläich Manéier.
  • Bleift fir e Gespréich bei enger Modell-ID, a schéckt déi nächst Ufro kuerz no der virdrun.

D'API hält de Start vun engem Gespréich an dëse Fäll stabil:

  • Eng system- oder developer-Message, déi méi spéit an engem Gespréich geschéckt gëtt, bleift op hirem Plaz. Si ännert de Start vum Prompt net, sou datt d'Tourë virun hir gecacht bleiwen.
  • D'Argumenter vun Tool-Ufruffer a fréiere Assistant-Tourë ginn nom Wäert verglach. D'Rei vun de Schlësselen a Leerzeechen an deem JSON spillen keng Roll.
  • Déi dräi Endpoints liesen e Gespréich op déiselwecht Manéier. E Gespréich, dat op engem aneren Endpoint weidergefouert gëtt, behält säi gemeinsame Prefix, wann den Inhalt dee selwechte ass.

Request-Felder

prompt_cache_key (Chat Completions an Responses) an cache_control op Messages Content Blocks ginn akzeptéiert, sou datt bestehende Client-Code ouni Änderung funktionéiert. Keen vun dene ass obligatoresch: Caching ass automatesch an funktionéiert och ouni se gläich.

Feld Geschéckt un Wat et ass
prompt_cache_key /v1/chat/completions, /v1/responses E Cache-Routing-Schlëssel vun der OpenAI-API.
cache_control /v1/messages E Cache-Breakpoint op engem Content-Block, engem system-Block oder enger Message vun der Anthropic-API.
stream_options /v1/chat/completions include_usage freet bei der OpenAI-API no der Usage op engem Stream. Hei endet all Stream mat Usage.

Tokens zielen

Zwee gratis Endpoints, POST /v1/tokenize an POST /v1/messages/count_tokens, zielen d'Tokens vun engem Text oder vun enger ganzer Ufro fir d'Hosted Open-Weight-Modeller, éier Dir se schéckt. Si hunn hir eege Säit: Tokenzielung