કન્ટેન્ટ પર જાઓ
પ્રોમ્પ્ટ કેશિંગ

પ્રોમ્પ્ટ કેશિંગ

સ્વચાલિત

હોસ્ટેડ ઓપન-વેઇટ મોડેલ્સ પુનરાવર્તિત પ્રોમ્પ્ટ પ્રીફિક્સને આપમેળે કેશ કરે છે. જ્યારે કોઈ વિનંતી સમાન સિસ્ટમ પ્રોમ્પ્ટ, ટૂલ્સ અને અગાઉના મેસેજથી શરૂ થાય છે, ત્યારે તે સહિયર પ્રીફિક્સ કેશમાંથી વાંચવામાં આવે છે અને મોડેલના ઇનપુટ ભાવના 25% પર બિલ કરવામાં આવે છે. આ માટે કંઈપણ એનેબલ કરવાની જરૂર નથી, અને કેશ રાઇટ્સ મફત છે.

તે કેવી રીતે કામ કરે છે

  • પ્રીફિક્સ, ક્રમ મુજબ — પ્રોમ્પ્ટ ક્રમમાં વાંચવામાં આવે છે: સિસ્ટમ પ્રોમ્પ્ટ, ટૂલ ડેફિનેશન્સ, અને પછી મેસેજ. કેશ તે સિક્વન્સની શરૂઆતથી પ્રથમ અલગ ટોકન સુધી મેચ થાય છે.
  • હિટ તરીકે શું ગણવામાં આવે છે — એક વિનંતી જેનો પ્રોમ્પ્ટ તાજેતરની વિનંતી જેવી જ સામગ્રીથી શરૂ થાય છે — સામાન્ય રીતે નવા મેસેજ ઉમેરેલા સમાન વાતચીતનો અગાઉનો ટર્ન. મેચિંગ પ્રીફિક્સ એ કેશ્ડ ઇનપુટ છે; તેની પછીનું બધું નિયમિત ઇનપુટ છે.
  • ગ્રેન્યુલારિટી (ઝીણવટ) — કેશ prompt ને 1,568 ટોકન્સના બ્લોક્સમાં રાખે છે, તેથી આશરે 1,500 ટોકન્સથી ટૂંકો prompt કેશ થતો નથી. જવાબમાં કેશ્ડ ગણતરી એટલે તમારી ઇનપુટ ગણતરી ગુણ્યા prompt નો કેશ્ડ હિસ્સો, નીચે ગોળ કરેલી. તે બ્લોક કદનો ગુણાંક હોય તે જરૂરી નથી.
  • હિટ વિના — જે રિક્વેસ્ટની શરૂઆત કેશમાં નથી તેનું બિલ સામાન્ય ઇનપુટ દરે થાય છે. કેશ્ડ prompt માટે કોઈ આયુષ્ય જાહેર કરેલ નથી અને હિટની ખાતરી નથી: રિક્વેસ્ટે કેશમાંથી શું લીધું તે જોવા usage વાંચો.
  • કોઈ સ્વિચ નથી — રિક્વેસ્ટ opt-in કરતી નથી, અને કોઈ ફીલ્ડ કેશિંગ બંધ કરતું નથી.
  • કયા મોડેલ્સ — દરેક હોસ્ટેડ ઓપન-વેઇટ id. GET /v1/models તેમના માટે capabilities.prompt_caching: true અને pricing.cached_input_per_million_usd રિપોર્ટ કરે છે. Shannon મોડેલ્સ એક ફ્લેટ રેટ બિલ કરે છે.

જવાબમાં કેશ હિટ જુઓ

સમાન લાંબા system prompt થી શરૂ થતી બે રિક્વેસ્ટ મોકલો અને દરેકનો વપરાશ છાપો. પહેલો આંકડો રિક્વેસ્ટનું ઇનપુટ છે, બીજો તેનો કેશમાંથી વંચાયેલો ભાગ છે.

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

કિંમત

કેશ્ડ ઇનપુટ ટોકન્સ મોડેલના ઇનપુટ રેટના 25% પર બિલ કરવામાં આવે છે, જે $0.001 per 1M સુધી રાઉન્ડ કરવામાં આવે છે. કેશમાં લખવા માટે કોઈ વધારાનો ખર્ચ નથી, અને આઉટપુટ સામાન્ય રીતે બિલ કરવામાં આવે છે. દરેક id નો કેશ્ડ રેટ Models & pricing ટેબલમાં છે. મોડેલ્સ અને કિંમત

કોલના ઇનપુટનો ચાર્જ (input − cached) × input દર + cached × cached દર મુજબ લાગે છે. કેશ્ડ ગણતરી ઇનપુટ ગણતરી કરતાં ક્યારેય મોટી હોતી નથી.

મોડેલ ઇનપુટ / 1M કેશ્ડ ઇનપુટ / 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

વપરાશ લોગ દરેક કોલનું કેશ્ડ ઇનપુટ યાદી કરે છે. તેના બિલ થયેલા ટોકન્સ અને ખર્ચમાં કેશ્ડ દર પહેલેથી શામેલ છે. Keys & usage

વપરાશ ફીલ્ડ્સ

એન્ડપોઇન્ટ કેશ્ડ ઇનપુટ રીઝનિંગ
/v1/chat/completions usage.prompt_tokens_details.cached_tokens — prompt_tokens નો ભાગ usage.completion_tokens_details.reasoning_tokens — completion_tokens નો ભાગ
/v1/responses usage.input_tokens_details.cached_tokens — input_tokens નો ભાગ usage.output_tokens_details.reasoning_tokens — output_tokens નો ભાગ
/v1/messages usage.cache_read_input_tokens — અલગ રિપોર્ટ કરવામાં આવે છે: input_tokens એ અનકેશ્ડ ભાગ છે; cache_creation_input_tokens હંમેશા 0 હોય છે થિંકિંગ (thinking) output_tokens માં ગણવામાં આવે છે
{
  "usage": {
    "prompt_tokens": 20000,
    "completion_tokens": 812,
    "total_tokens": 20812,
    "prompt_tokens_details": {
      "cached_tokens": 18000
    },
    "completion_tokens_details": {
      "reasoning_tokens": 604
    }
  }
}

સ્ટ્રીમ થતા જવાબના અંતિમ usage માં સમાન ફીલ્ડ હોય છે. તમારે તે માંગવું પડતું નથી:

એન્ડપોઇન્ટ વપરાશ ક્યાં આવે છે
/v1/chat/completions data: [DONE] પહેલાના છેલ્લા chunk પર usage. તે દરેક સ્ટ્રીમ પર મોકલાય છે.
/v1/responses response.completed ઇવેન્ટનો response.usage.
/v1/messages message_delta ઇવેન્ટનો usage. message_start નો usage શૂન્યો ધરાવે છે.

વધુ કેશ હિટ્સ મેળવવા માટે

  • કોલ્સ દરમિયાન સિસ્ટમ પ્રોમ્પ્ટ અને ટૂલ ડેફિનેશન્સને બાઇટ-ફોર-બાઇટ સ્ટેબલ રાખો. ટાઇમસ્ટેમ્પ અથવા રિક્વેસ્ટ ids જેવા પ્રતિ-કોલ મૂલ્યોને સિસ્ટમ પ્રોમ્પ્ટમાં નહીં, પરંતુ છેલ્લા મેસેજમાં અંતે મૂકો.
  • માત્ર હિસ્ટ્રીમાં ઉમેરો (append). અગાઉના ટર્ન્સને એડિટ કરવા, ટ્રિમ કરવા અથવા સમરાઇઝ કરવાથી પ્રીફિક્સ બદલાય છે, અને પ્રથમ ફેરફાર પછીનું બધું નિયમિત ઇનપુટ તરીકે બિલ કરવામાં આવે છે.
  • કોલ્સ વચ્ચે ટૂલ્સ, મેસેજ અથવા કન્ટેન્ટ બ્લોક્સનો ક્રમ બદલશો નહીં, અને JSON (ટૂલ સ્કીમા, ટૂલ આર્ગ્યુમેન્ટ્સ અને પરિણામો) ને દર વખતે એક જ રીતે સિરિયલાઇઝ કરો.
  • આખી વાતચીત માટે એક જ મોડેલ id પર રહો, અને આગલો કોલ તેના પહેલાના કોલ પછી જલદી મોકલો.

આ કિસ્સાઓમાં API વાતચીતની શરૂઆતને સ્થિર રાખે છે:

  • વાતચીતમાં પછીથી મોકલેલો system અથવા developer મેસેજ તેની જગ્યાએ જ રહે છે. તે prompt ની શરૂઆત બદલતો નથી, તેથી તેની પહેલાંના ટર્ન્સ કેશ્ડ રહે છે.
  • અગાઉના assistant ટર્ન્સમાં ટૂલ કોલના આર્ગ્યુમેન્ટ્સ કિંમતથી સરખાવાય છે. તે JSON ના કીનો ક્રમ અને સ્પેસિંગ મહત્વના નથી.
  • ત્રણે એન્ડપોઇન્ટ્સ વાતચીત એક જ રીતે વાંચે છે. બીજા એન્ડપોઇન્ટ પર ચાલુ રાખેલી વાતચીત, કન્ટેન્ટ સમાન હોય ત્યારે, તેનો સહિયારો પ્રીફિક્સ જાળવે છે.

રિક્વેસ્ટ ફીલ્ડ્સ

prompt_cache_key (Chat Completions અને Responses) અને Messages કન્ટેન્ટ બ્લોક્સ પર cache_control સ્વીકારવામાં આવે છે, જેથી હાલનો ક્લાયન્ટ કોડ બદલ્યા વગર ચાલે છે. બંને જરૂરી નથી: કેશિંગ ઓટોમેટિક છે અને તેના વગર પણ તે રીતે જ કામ કરે છે.

ફીલ્ડ ક્યાં મોકલાય છે તે શું છે
prompt_cache_key /v1/chat/completions, /v1/responses OpenAI API ની કેશ રૂટિંગ કી.
cache_control /v1/messages Anthropic API ના કન્ટેન્ટ બ્લોક, system બ્લોક અથવા મેસેજ પરનો કેશ બ્રેકપોઇન્ટ.
stream_options /v1/chat/completions include_usage OpenAI API પાસેથી સ્ટ્રીમ પર વપરાશ માંગે છે. અહીં દરેક સ્ટ્રીમ વપરાશ સાથે પૂરો થાય છે.

ટોકન્સની ગણતરી

બે મફત એન્ડપોઇન્ટ્સ, POST /v1/tokenize અને POST /v1/messages/count_tokens, તમે મોકલો તે પહેલાં હોસ્ટેડ open-weight મોડેલ્સ માટે ટેક્સ્ટ અથવા આખી રિક્વેસ્ટના ટોકન્સ ગણે છે. તેમનું પોતાનું પેજ છે: ટોકન ગણતરી