Ruka hadi kwenye maudhui
Kukesha kwa prompt

Kukesha kwa prompt

KIOTOMATIKI

Hosted open-weight models hucache prompt prefixes zinazojirudia kiotomatiki. Ombi linapoanza na system prompt, tools na ujumbe wa awali sawa na ombi la hivi karibuni kwenye model hiyo hiyo, prefix hiyo ya pamoja inasomwa kutoka cache na kutozwa 25% ya bei ya input ya model. Hakuna kitu cha kuwasha, na uandishi wa cache ni bure.

Inavyofanya kazi

  • Prefix, kwa mpangilio — Prompt inasomwa kwa mpangilio: system prompt, tool definitions, kisha ujumbe. Cache inalingana kuanzia mwanzo wa mlolongo huo hadi token ya kwanza inayotofautiana.
  • Nini huhesabiwa kama hit — Ombi ambalo prompt yake inaanza na maudhui sawa na ombi la hivi karibuni — kwa kawaida ni mzunguko uliopita wa mazungumzo hayo hayo ambapo ujumbe mpya umeongezwa. Prefix inayolingana ni cached input; kila kitu baada ya hapo ni regular input.
  • Usahihi — Cache inahifadhi prompt kwa blocks za tokens 1,568, kwa hiyo prompt fupi kuliko takriban tokens 1,500 haikeshwi. Hesabu ya cached kwenye jibu ni hesabu yako ya input iliyozidishwa na sehemu iliyokeshwa ya prompt, ikipunguzwa kwenda chini. Si lazima iwe kigawe cha ukubwa wa block.
  • Bila hit — Ombi ambalo mwanzo wake haumo kwenye cache hutozwa kwa bei ya kawaida ya input. Hakuna muda wa kuishi uliochapishwa kwa prompts zilizokeshwa na hit haihakikishwi: soma usage kuona kile ombi lilichukua kutoka cache.
  • Hakuna swichi — Ombi halijiunge kwa hiari, na hakuna field inayozima caching.
  • Model zipi — Kila hosted open-weight id. GET /v1/models inaripoti capabilities.prompt_caching: true na pricing.cached_input_per_million_usd kwa ajili yao. Shannon models zinatoza kiwango kimoja cha flat rate.

Angalia cache hit kwenye jibu

Tuma maombi mawili yanayoanza na system prompt ndefu ile ile na uchapishe usage ya kila moja. Namba ya kwanza ni input ya ombi, ya pili ni sehemu yake iliyosomwa kutoka 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

Bei

Cached input tokens zinatozwa 25% ya kiwango cha input cha model, ikizungushwa hadi $0.001 kwa 1M. Kuandika kwenye cache hakugharimu chochote cha ziada, na output inatozwa kama kawaida. Kiwango cha cached cha kila id kiko kwenye jedwali la Models & pricing. Model na bei

Input ya wito hutozwa kama (input − cached) × bei ya input + cached × bei ya cached. Hesabu ya cached haizidi kamwe hesabu ya input.

Model Input / 1M Input iliyokeshwa / 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 inaorodhesha input iliyokeshwa ya kila wito. Tokens zake zilizotozwa na gharama tayari vinajumuisha bei ya cached. Keys na matumizi

Field za matumizi

Endpoint Ingizo lililokeshwa Mchakato wa kufikiri
/v1/chat/completions usage.prompt_tokens_details.cached_tokens — sehemu ya prompt_tokens usage.completion_tokens_details.reasoning_tokens — sehemu ya completion_tokens
/v1/responses usage.input_tokens_details.cached_tokens — sehemu ya input_tokens usage.output_tokens_details.reasoning_tokens — sehemu ya output_tokens
/v1/messages usage.cache_read_input_tokens — inaripotiwa kando: input_tokens ni sehemu isiyo na cache; cache_creation_input_tokens kila wakati ni 0 kufikiri kunahesabiwa katika output_tokens
{
  "usage": {
    "prompt_tokens": 20000,
    "completion_tokens": 812,
    "total_tokens": 20812,
    "prompt_tokens_details": {
      "cached_tokens": 18000
    },
    "completion_tokens_details": {
      "reasoning_tokens": 604
    }
  }
}

Jibu la stream hubeba fields zile zile kwenye usage yake ya mwisho. Huhitaji kuiomba:

Endpoint Matumizi yanafikia wapi
/v1/chat/completions usage kwenye chunk ya mwisho kabla ya data: [DONE]. Hutumwa kwenye kila stream.
/v1/responses response.usage ya tukio la response.completed.
/v1/messages usage ya tukio la message_delta. usage ya message_start ina sifuri.

Kupata cache hits zaidi

  • Weka system prompt na tool definitions kuwa stable (byte-for-byte) kwenye wito zote. Weka thamani za kila wito kama timestamps au request ids mwishoni mwa ujumbe wa mwisho, si kwenye system prompt.
  • Ongeza tu kwenye historia. Kuhariri, kupunguza au kufupisha mzunguko wa awali hubadilisha prefix, na kila kitu baada ya mabadiliko ya kwanza kinatozwa kama regular input.
  • Usibadilishe mpangilio wa tools, ujumbe au content blocks kati ya wito, na fanya serialise ya JSON (tool schemas, tool arguments na results) kwa njia sawa kila wakati.
  • Kaa kwenye model id moja kwa mazungumzo, na utume wito unaofuata muda mfupi baada ya ule wa kabla yake.

API huweka mwanzo wa mazungumzo thabiti katika visa hivi:

  • Ujumbe wa system au developer unaotumwa baadaye kwenye mazungumzo hubaki mahali pake. Haubadilishi mwanzo wa prompt, kwa hiyo zamu zilizo kabla yake zinabaki zimekeshwa.
  • Arguments za wito wa tools katika zamu za awali za assistant hulinganishwa kwa thamani. Mpangilio wa keys na nafasi za JSON hiyo hazijalishi.
  • Endpoint tatu husoma mazungumzo kwa njia ile ile. Mazungumzo yanayoendelezwa kwenye endpoint nyingine huhifadhi prefix yake ya pamoja wakati maudhui ni yale yale.

Fields za ombi

prompt_cache_key (Chat Completions na Responses) na cache_control kwenye content blocks za Messages zinakubaliwa, hivyo code ya client ya sasa inafanya kazi bila mabadiliko. Vyote viwili si lazima: caching ni ya kiotomatiki na inafanya kazi vivyo hivyo bila hivyo.

Field Inatumwa kwa Ni nini
prompt_cache_key /v1/chat/completions, /v1/responses Cache routing key ya OpenAI API.
cache_control /v1/messages Cache breakpoint kwenye content block, block ya system au ujumbe wa Anthropic API.
stream_options /v1/chat/completions include_usage huiomba OpenAI API usage kwenye stream. Hapa kila stream huisha na usage.

Kuhesabu tokens

Endpoint mbili za bure, POST /v1/tokenize na POST /v1/messages/count_tokens, huhesabu tokens za maandishi au za ombi zima kwa model za open-weight zinazopangishwa kabla ya kutuma. Zina ukurasa wake: Kuhesabu tokens