AI Engineering Academy · पाठ

OpenAI प्रॉम्प्ट प्रीफ़िक्स कैशिंग

OpenAI की स्वचालित प्रॉम्प्ट कैशिंग का लाभ उठाएँ, जो दोहराए गए लंबे सिस्टम प्रॉम्प्ट प्रीफ़िक्स पर 50 प्रतिशत कम शुल्क देती है, और कैश हिट दर अधिकतम करने के लिए अपने प्रॉम्प्ट व्यवस्थित करें।

पाठ 3, कुल 4 में से13 चरण

OpenAI प्रॉम्प्ट प्रीफ़िक्स कैशिंग, CoddyKit पर AI Engineering Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह AI Engineering Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। AI Engineering Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

प्रॉम्प्ट उपसर्ग कैशिंग क्या है

प्रॉम्प्ट उपसर्ग कैशिंग OpenAI के API में निर्मित सर्वर-पक्षीय अनुकूलन है, जो हाल के पिछले अनुरोध में देखे गए प्रॉम्प्ट उपसर्ग के tokens पर स्वचालित छूट देता है। अनुप्रयोग-स्तरीय कैशिंग के विपरीत, जो संग्रहीत प्रतिक्रिया लौटाती है, प्रॉम्प्ट उपसर्ग कैशिंग फिर भी मॉडल को कॉल करती है — लेकिन कैश किए गए उपसर्ग वाले हिस्से के लिए input token की कीमत में 50 प्रतिशत की कमी के साथ। इससे नई प्रतिक्रिया उत्पन्न करने की क्षमता बनाए रखते हुए लागत घटती है।

पर्दे के पीछे उपसर्ग कैशिंग कैसे काम करती है

आधुनिक LLM, प्रॉम्प्ट को GPU मेमोरी में KV (key-value) caches के रूप में दर्शाते हैं। प्रॉम्प्ट को संसाधित करने का अर्थ है प्रत्येक token के लिए attention keys और values की गणना करना। यदि लगातार दो अनुरोधों के पहले N tokens एक जैसे हों, तो OpenAI पहले अनुरोध के KV cache का पुनः उपयोग कर सकता है और उन tokens के लिए महँगी गणना छोड़ सकता है। API यह काम स्वचालित और पारदर्शी रूप से करता है — लागू होने पर आपको केवल कम cached token दर का भुगतान करना होता है।

# No code changes needed to enable prefix caching!
# It is automatic on supported models.

# The API response shows you how many tokens were cached:
# response.usage.prompt_tokens_details.cached_tokens

# Example response usage:
# ChatCompletionUsage(
#   prompt_tokens=2048,
#   completion_tokens=256,
#   total_tokens=2304,
#   prompt_tokens_details=PromptTokensDetails(
#     cached_tokens=1984,   # these tokens were served from KV cache
#     audio_tokens=0,
#   )
# )

प्रतिक्रिया में कैश हिट की जाँच करना

प्रत्येक API कॉल के बाद, यह देखने के लिए response.usage.prompt_tokens_details.cached_tokens की जाँच करें कि कितने input tokens KV cache से दिए गए। यदि cached_tokens > 0 है, तो उन tokens के लिए आपको 50 प्रतिशत वाली छूट दर का भुगतान हुआ। इस मान की लॉगिंग करने से आप अपनी वास्तविक कैश दक्षता पर नज़र रख सकते हैं और समय के साथ उपसर्ग कैशिंग से हुई लागत बचत निकाल सकते हैं।

from openai import OpenAI

client = OpenAI()

SYSTEM_PROMPT = 'You are an expert AI engineer assistant. ' * 100  # long system prompt

def call_with_cache_check(user_message: str):
    response = client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[
            {'role': 'system', 'content': SYSTEM_PROMPT},
            {'role': 'user', 'content': user_message},
        ],
    )
    usage = response.usage
    cached = usage.prompt_tokens_details.cached_tokens if usage.prompt_tokens_details else 0
    print(f'Total prompt tokens: {usage.prompt_tokens}')
    print(f'Cached tokens: {cached} ({100*cached//usage.prompt_tokens}%)')
    return response.choices[0].message.content

उपसर्ग बिल्कुल एक जैसा होना चाहिए

उपसर्ग कैशिंग तभी लागू होती है, जब पहले N tokens byte-for-byte एक जैसे किसी हाल के पिछले अनुरोध से मेल खाते हों। सिस्टम प्रॉम्प्ट में एक भी वर्ण का बदलाव कैश को अमान्य कर देता है। OpenAI 128-token खंडों में कैश करता है — कैश केवल उन पूर्ण खंडों पर लागू होता है जो बिल्कुल मेल खाते हों। इसलिए, आपके प्रॉम्प्ट का अनुरोध के अनुसार बदलने वाला हिस्सा अधिकतम cached tokens पाने के लिए लंबे, स्थिर उपसर्ग के बाद आना चाहिए।

# Optimal structure for prefix caching:
# [LONG STABLE SYSTEM PROMPT] [CACHED DOCUMENTS] [USER QUERY]
#         ↑                              ↑                ↑
#    always same               always same         varies per request
#    → cached at 50%           → cached at 50%     → not cached, full price

# BAD structure (defeats prefix caching):
# [USER QUERY] [CACHED DOCUMENTS] [LONG STABLE SYSTEM PROMPT]
#       ↑                                       ↑
#  changes every request                 never cached because
#  so prefix never matches               it comes after the query

अधिकतम कैश दक्षता के लिए प्रॉम्प्ट व्यवस्थित करना

कैश हिट दर अधिकतम करने के लिए, अपने प्रॉम्प्ट को इस तरह व्यवस्थित करें कि स्थिर हिस्से पहले आएँ। RAG सिस्टम में: (1) निर्देशों और व्यक्तित्व वाला सिस्टम प्रॉम्प्ट, (2) प्राप्त दस्तावेज़, जो केवल क्वेरी में महत्वपूर्ण बदलाव होने पर बदलते हैं, (3) बातचीत का इतिहास, (4) सबसे अंत में उपयोगकर्ता क्वेरी। केवल सिस्टम प्रॉम्प्ट — अक्सर 500-2000 tokens — सामान्यतः कैश हो जाएगा और input token लागत में 25-50 प्रतिशत की बचत करेगा।

def build_rag_prompt_for_caching(
    system_prompt: str,
    retrieved_docs: list[str],
    conversation_history: list[dict],
    user_query: str,
) -> list[dict]:
    # Order: stable → semi-stable → variable
    context_block = '\n\n'.join(
        f'[Document {i+1}]\n{doc}' for i, doc in enumerate(retrieved_docs)
    )
    return [
        # 1. Stable system prompt (always cached after first request)
        {'role': 'system', 'content': system_prompt},
        # 2. Context injection as a user message (cached when same docs retrieved)
        {'role': 'user', 'content': f'Context documents:\n{context_block}'},
        {'role': 'assistant', 'content': 'I have read the documents.'},
        # 3. Conversation history (semi-stable)
        *conversation_history,
        # 4. Current user query (always different → never cached prefix)
        {'role': 'user', 'content': user_query},
    ]

कैश की अवधि और निष्कासन

OpenAI का KV cache GPU पर मेमोरी में बना रहता है और उसमें निष्कासन नीति होती है। लगभग 5-10 मिनट तक दोबारा उपयोग न किए गए उपसर्गों को तब हटा दिया जाता है, जब अन्य अनुरोध GPU मेमोरी का उपयोग करने लगते हैं। इसका अर्थ है कि उपसर्ग कैशिंग का लाभ अधिक ट्रैफ़िक वाले अनुप्रयोगों में सबसे अधिक होता है, जहाँ समान उपसर्ग वाले अनुरोध बार-बार आते हैं। कम ट्रैफ़िक वाले अनुप्रयोगों में कैश हिट कम हो सकती हैं, क्योंकि अनुरोधों के बीच लंबे अंतराल में उपसर्ग हटा दिया जाता है।

समर्थित मॉडल और मूल्य निर्धारण

2025 तक, प्रॉम्प्ट उपसर्ग कैशिंग GPT-4o, GPT-4o-mini, o1, और o3-mini मॉडल पर उपलब्ध है। अधिकांश मॉडल के लिए cached token की कीमत मानक input token कीमत की 50 प्रतिशत है। कैश किए जा सकने वाले उपसर्ग की न्यूनतम लंबाई 1024 tokens है — इससे छोटे उपसर्गों को कोई छूट नहीं मिलती। वर्तमान दरों के लिए हमेशा OpenAI का मूल्य निर्धारण पृष्ठ देखें, क्योंकि यह सुविधा विकसित होने के साथ कीमतें बदलती रहती हैं।

# Rough pricing reference (verify at platform.openai.com/pricing)
PRICING = {
    'gpt-4o': {
        'input_per_1M': 2.50,
        'cached_input_per_1M': 1.25,   # 50% off
        'output_per_1M': 10.00,
    },
    'gpt-4o-mini': {
        'input_per_1M': 0.15,
        'cached_input_per_1M': 0.075,  # 50% off
        'output_per_1M': 0.60,
    },
}

def estimate_cost_with_caching(prompt_tokens, cached_tokens, output_tokens, model):
    p = PRICING[model]
    uncached = (prompt_tokens - cached_tokens) * p['input_per_1M'] / 1_000_000
    cached_cost = cached_tokens * p['cached_input_per_1M'] / 1_000_000
    output_cost = output_tokens * p['output_per_1M'] / 1_000_000
    return uncached + cached_cost + output_cost

Anthropic प्रॉम्प्ट कैशिंग

Anthropic, Claude मॉडल के लिए प्रॉम्प्ट कैशिंग नामक ऐसी ही सुविधा देता है, लेकिन इसके लिए प्रॉम्प्ट में cache_control फ़ील्ड से कैश ब्रेकपॉइंट चिह्नित करके स्पष्ट रूप से इसका विकल्प चुनना पड़ता है। OpenAI की स्वचालित कैशिंग के विपरीत, इसमें आप स्पष्ट रूप से चिह्नित करते हैं कि प्रॉम्प्ट के किन हिस्सों को कैश करना है (प्रति अनुरोध अधिकतम 4 कैश ब्रेकपॉइंट)। कैश किए गए tokens की कीमत मानक input कीमत की 10 प्रतिशत होती है और वे 5 मिनट तक संग्रहीत रहते हैं।

import anthropic

client = anthropic.Anthropic()

LONG_DOCUMENT = 'This is a very long reference document...' * 500  # 2000+ tokens

response = client.messages.create(
    model='claude-sonnet-4-5',
    max_tokens=1024,
    system=[
        {
            'type': 'text',
            'text': 'You are a helpful assistant.',
        },
        {
            'type': 'text',
            'text': LONG_DOCUMENT,
            'cache_control': {'type': 'ephemeral'},  # mark for caching
        }
    ],
    messages=[{'role': 'user', 'content': 'Summarize the document.'}],
)
print(response.usage.cache_read_input_tokens)   # tokens served from cache
print(response.usage.cache_creation_input_tokens)  # tokens written to cache

उपसर्ग कैशिंग को अनुप्रयोग कैशिंग के साथ संयोजित करना

उपसर्ग कैशिंग और अनुप्रयोग-स्तरीय कैशिंग एक-दूसरे की पूरक हैं। उपसर्ग कैशिंग प्रत्येक API कॉल की लागत घटाती है, लेकिन LLM को कॉल फिर भी किया जाता है। अनुप्रयोग-स्तरीय सटीक और सिमैंटिक कैश दोहराई गई क्वेरीज़ के लिए API कॉल को पूरी तरह समाप्त कर देते हैं। प्रत्येक अनुरोध की input लागत घटाने के लिए सभी अनुरोधों पर उपसर्ग कैशिंग का उपयोग करें और बार-बार दोहराई जाने वाली क्वेरीज़ के लिए कॉल पूरी तरह समाप्त करने हेतु उसके ऊपर अनुप्रयोग-स्तरीय कैशिंग जोड़ें। साथ मिलकर, ये AI अवसंरचना लागत को 60-80 प्रतिशत तक घटा सकते हैं।

# Three-layer cost optimization stack
#
# Layer 1: Exact cache (Redis, hash-based)
#   → Eliminates 100% of API cost for identical requests
#   → Miss rate: ~60-80% (most queries are unique)
#
# Layer 2: Semantic cache (vector similarity)
#   → Eliminates 100% of API cost for semantically similar requests
#   → Miss rate: ~40-60% of remaining queries
#
# Layer 3: OpenAI prefix caching (automatic)
#   → Reduces input token cost by 50% for long stable prefixes
#   → Applies to ALL remaining API calls that escape layers 1 and 2
#
# Combined effect: 60-80% cost reduction in FAQ/support applications

अपनी कैश दक्षता मापना

कैश दक्षता अनुपात को एक संयुक्त माप के रूप में ट्रैक करें: पूरी कीमत पर लगने वाले कुल tokens को वास्तव में बिल किए गए कुल tokens से विभाजित करें। इसमें सभी कैशिंग स्तर शामिल होते हैं। प्रत्येक API प्रतिक्रिया से cached_tokens लॉग करें और साप्ताहिक रूप से उनका योग निकालें। यदि सभी API कॉल में 50 प्रतिशत tokens कैश किए जा रहे हों, तो उपसर्ग कैशिंग के लिए अनुप्रयोग कोड में कोई बदलाव किए बिना input token लागत प्रभावी रूप से आधी हो जाती है।

from dataclasses import dataclass, field
from typing import ClassVar

@dataclass
class CachingMetrics:
    total_prompt_tokens: int = 0
    total_cached_tokens: int = 0
    app_cache_hits: int = 0
    app_cache_misses: int = 0

    @property
    def prefix_cache_ratio(self) -> float:
        if self.total_prompt_tokens == 0:
            return 0
        return self.total_cached_tokens / self.total_prompt_tokens

    @property
    def app_cache_hit_rate(self) -> float:
        total = self.app_cache_hits + self.app_cache_misses
        return self.app_cache_hits / total if total > 0 else 0

    def report(self):
        print(f'App cache hit rate: {self.app_cache_hit_rate:.1%}')
        print(f'Prefix cache ratio: {self.prefix_cache_ratio:.1%}')
        savings_multiplier = (1 - self.app_cache_hit_rate) * (1 - 0.5 * self.prefix_cache_ratio)
        print(f'Effective cost vs no-cache: {savings_multiplier:.1%}')

उपसर्ग कैशिंग कब सहायक नहीं होती

उपसर्ग कैशिंग इन स्थितियों में कोई लाभ नहीं देती: (1) 1024 tokens से छोटे छोटे प्रॉम्प्ट (कैश किए जा सकने वाली न्यूनतम लंबाई), (2) बहुत अधिक बदलने वाले उपसर्ग, जहाँ सिस्टम प्रॉम्प्ट प्रत्येक उपयोगकर्ता या अनुरोध के लिए बदलता है, (3) कम ट्रैफ़िक वाले अनुप्रयोग, जहाँ अनुरोधों के बीच KV cache हटा दिया जाता है, या (4) जब आप पहले से ही न्यूनतम token दर का भुगतान कर रहे हों। इन स्थितियों में, अनुकूलन के प्रयास को अनुप्रयोग-स्तरीय सिमैंटिक कैशिंग पर केंद्रित करें।

त्वरित जाँच

इस पाठ से OpenAI प्रॉम्प्ट उपसर्ग कैशिंग की अपनी समझ का परीक्षण करें।

पाठ का पुनरावलोकन

इस पाठ में आपने सीखा: OpenAI प्रॉम्प्ट उपसर्ग कैशिंग तब कैश किए गए input tokens पर स्वचालित रूप से 50 प्रतिशत की छूट देती है, जब प्रॉम्प्ट उपसर्ग हाल के पिछले अनुरोध से मेल खाता हो; cached tokens अधिकतम करने के लिए आपके संदेश ढाँचे में स्थिर सामग्री पहले आनी चाहिए (सिस्टम प्रॉम्प्ट, दस्तावेज़ और फिर उपयोगकर्ता क्वेरी); और Claude पर ऐसी ही सुविधा के लिए Anthropic को स्पष्ट cache_control markers की आवश्यकता होती है। अधिकतम लागत कमी के लिए इसे अनुप्रयोग-स्तरीय कैशिंग के साथ संयोजित करें। आगे हम अपने अनुकूलन उपकरणों को पूरा करने के लिए बैचिंग, मॉडल रूटिंग और लागत डैशबोर्ड देखेंगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “OpenAI प्रॉम्प्ट प्रीफ़िक्स कैशिंग” पाठ निःशुल्क है?

हाँ—“OpenAI प्रॉम्प्ट प्रीफ़िक्स कैशिंग” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और AI Engineering Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। AI Engineering Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“OpenAI प्रॉम्प्ट प्रीफ़िक्स कैशिंग” में मैं क्या सीखूँगा?

OpenAI की स्वचालित प्रॉम्प्ट कैशिंग का लाभ उठाएँ, जो दोहराए गए लंबे सिस्टम प्रॉम्प्ट प्रीफ़िक्स पर 50 प्रतिशत कम शुल्क देती है, और कैश हिट दर अधिकतम करने के लिए अपने प्रॉम्प्ट व्यवस्थित करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ AI Engineering Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या AI Engineering Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर AI Engineering Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“OpenAI प्रॉम्प्ट प्रीफ़िक्स कैशिंग” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस AI Engineering Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर AI Engineering Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Redis के साथ सटीक कैशिंग
  2. एम्बेडिंग के साथ अर्थपरक कैशिंग
  3. OpenAI प्रॉम्प्ट प्रीफ़िक्स कैशिंग
  4. बैचिंग, मॉडल रूटिंग और लागत डैशबोर्ड
← AI Engineering Academy पर वापस जाएँ