Tsallake zuwa abun ciki
Adana prompt

Adana prompt

A-C-A-T-I-C

Hosted open-weight models suna yin cache na repeated prompt prefixes ta atomatik. Idan request ya fara da system prompt, tools da saƙonni na baya kamar yadda wani request na baya ya yi a kan model ɗinsa, wannan shared prefix ɗin ana karanta shi daga cache kuma ana lissafinsa da 25% na farashin input na model ɗin. Babu abin da ake buƙatar aktibata, kuma rubutu zuwa cache kyauta ne.

Yadda yake aiki

  • Prefix, bisa tsari — Ana karanta prompt ɗin bisa tsari: system prompt, tool definitions, sannan saƙonni. Cache ɗin yana dacewa daga farkon wannan tsarin har zuwa token na farko wanda ya bambanta.
  • Me ake kira hit — Request wanda prompt ɗinsa ya fara da abu ɗan ɗaya da wani request na baya — yawanci zagaye na baya na wannan tattaunawa tare da ƙarin saƙonni sababbi. Matching prefix ɗin shine cached input; duk abin da yake bayansa shine regular input.
  • Karin bayani — Cache yana riƙe prompt a blocks na tokens 1,568, don haka prompt da bai kai kusan tokens 1,500 ba ba a yi masa cache. Adadin cached a amsa shi ne adadin input ɗinku wanda aka ninka da kason prompt da aka yi cache, an zagaye zuwa ƙasa. Ba lallai ba ne ya zama ninki na girman block.
  • Ba tare da hit ba — Ana lissafin request wanda farkonsa ba ya cikin cache a regular input rate. Ba a wallafa tsawon rayuwar prompts da aka yi cache ba kuma hit ba tabbas ba ne: ku karanta usage don ganin abin da request ya ɗauka daga cache.
  • Babu maɓallin kunnawa — Request ba ya shiga da kansa, kuma babu field da ke kashe caching.
  • Wane models — Kowane hosted open-weight id. GET /v1/models yana bayyana capabilities.prompt_caching: true da pricing.cached_input_per_million_usd gare su. Shannon models suna lissafa farashi guda ɗaya.

Ganin cache hit a amsa

Ku aika requests biyu da suka fara da system prompt mai tsawo iri ɗaya, ku buga usage na kowanne. Lamba ta farko ita ce input na request, ta biyu kuma ɓangaren da aka karanta daga 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

Farashi

Cached input tokens ana lissafarsu da 25% na farashin input na model ɗin, wanda aka zagaya zuwa $0.001 kowace 1M. Rubutu zuwa cache ba ya buƙatar ƙarin kuɗi, kuma output ana lissafinsa kamar yadda aka saba. Farashin cached na kowane id yana cikin teburin Models & pricing. Models & farashi

Ana cajin input na kira kamar (input − cached) × input rate + cached × cached rate. Adadin cached ba ya taɓa wuce adadin input.

Model 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

Usage log yana lissafa cached input na kowane kira. Tokens da aka caje da kuɗin sun riga sun haɗa da cached rate. Maɓallai & amfani

Hanyoyin amfani

Endpoint Inbuhun da aka adana Hujja
/v1/chat/completions usage.prompt_tokens_details.cached_tokens — ɓangare na prompt_tokens usage.completion_tokens_details.reasoning_tokens — ɓangare na completion_tokens
/v1/responses usage.input_tokens_details.cached_tokens — ɓangare na input_tokens usage.output_tokens_details.reasoning_tokens — ɓangare na output_tokens
/v1/messages usage.cache_read_input_tokens — ana bayyana shi daban: input_tokens shine ɓangaren da ba a yi cache ba; cache_creation_input_tokens koyaushe 0 ne ana lissafa tunani (thinking) a cikin output_tokens
{
  "usage": {
    "prompt_tokens": 20000,
    "completion_tokens": 812,
    "total_tokens": 20812,
    "prompt_tokens_details": {
      "cached_tokens": 18000
    },
    "completion_tokens_details": {
      "reasoning_tokens": 604
    }
  }
}

Amsar da aka yi streaming tana ɗauke da fields iri ɗaya a usage ɗinta na ƙarshe. Ba sai kun nema ba:

Endpoint Inda usage ke zuwa
/v1/chat/completions usage a chunk na ƙarshe kafin data: [DONE]. Ana aikawa a kowane stream.
/v1/responses response.usage na event response.completed.
/v1/messages usage na event message_delta. usage na message_start yana ɗauke da sifilai.

Yadda za a samu cache hits da yawa

  • Ka tabbatar system prompt da tool definitions suna da tsayayyen bayani a kowane kira. Sanya darajojin kowane kira kamar timestamps ko request ids a ƙarshen saƙon na ƙarshe, ba a cikin system prompt ba.
  • Karin bayani kawai a tarihin (history). Gyara, rage ko taƙa tattaunawa ta baya yana canza prefix ɗin, kuma duk abin da yake bayan canjin na farko ana lissafinsa a matsayin regular input.
  • Kada ka canza tsarin tools, saƙonni ko content blocks tsakanin kira, kuma yi serialise na JSON (tool schemas, tool arguments da results) a hanya ɗa ɗaya a kowane lokaci.
  • Ku tsaya a model id ɗaya a duk tattaunawa, kuma ku aika kira na gaba jim kaɗan bayan na baya.

API yana riƙe farkon tattaunawa a tsaye a waɗannan yanayi:

  • Saƙon system ko developer da aka aika daga baya a tattaunawa yana nan a wurinsa. Ba ya canza farkon prompt, don haka turns ɗin da suka riga shi suna nan a cache.
  • Ana kwatanta arguments na kiran tool a turns na assistant na baya ta ƙima. Tsarin keys da tazarar wannan JSON ba su da muhimmanci.
  • Endpoints uku suna karanta tattaunawa iri ɗaya. Tattaunawar da aka ci gaba a wani endpoint tana riƙe prefix ɗinta na tarayya idan abun ciki iri ɗaya ne.

Kayan request

Ana amfani da prompt_cache_key (Chat Completions da Responses) da cache_control a block ɗin content na Messages, don haka lambobin client na yanzu suna gudanarwa ba tare da canji ba. Babu wanda ake bukata: caching na automatic ne kuma yana aiki a haka koda babu su.

Field Ana aika zuwa Menene shi
prompt_cache_key /v1/chat/completions, /v1/responses Cache routing key na OpenAI API.
cache_control /v1/messages Cache breakpoint a kan content block, block na system ko saƙo na Anthropic API.
stream_options /v1/chat/completions include_usage yana neman usage daga OpenAI API a kan stream. A nan kowane stream yana ƙarewa da usage.

Lissafin tokens

Endpoints biyu na kyauta, POST /v1/tokenize da POST /v1/messages/count_tokens, suna ƙirga tokens na rubutu ko na dukan request ga hosted open-weight models kafin ku aika. Suna da shafinsu: Ƙidayar tokens