पाठ 12 / 25
Prompt Caching
ख़र्च और latency घटाने के लिए turns में स्थिर prompt prefix का दोबारा उपयोग करें।
जो नहीं बदलता उसके लिए कम चुकाएँ
हर अनुरोध की शुरुआत (system prompt, tool परिभाषाएँ, शुरुआती इतिहास) बारी-दर-बारी एक-सी रहती है। Prompt caching से provider उस prefix को याद रखता है, इसलिए cache reads कम दर पर और तेज़ बिल होते हैं। Claude API में आप किसी block पर cache_control लगाते हैं। स्थिर सामग्री पहले और बदलती सामग्री बाद में रखें, क्योंकि सिर्फ़ न बदला prefix ही दोबारा उपयोग हो सकता है।
Cache योग्य block चिह्नित करना
Marker स्थिर prefix के आख़िरी block पर लगता है। न्यूनतम cache योग्य आकार, अवधि और क़ीमतें model पर निर्भर हैं, इसलिए मौजूदा दस्तावेज़ देखें।
system = [{
"type": "text",
"text": LONG_INSTRUCTIONS,
"cache_control": {"type": "ephemeral"}, # cache everything up to here
}]
reply = client.messages.create(
model=MODEL, max_tokens=1024, system=system, tools=TOOLS, messages=messages)Prefix में बदलाव न करें
Prompt के ऊपर timestamp जोड़ने या tools का क्रम बदलने से आगे की हर बारी का cache टूट जाता है। शुरुआती हिस्से को अक्षरशः स्थिर रखें।
त्वरित जाँच: Caching ठीक चलने के लिए बदलती सामग्री कहाँ रखें?
- Prompt की ठीक शुरुआत में
- स्थिर prefix के बाद
- API key में
- कहीं नहीं
Answer
स्थिर prefix के बाद — सिर्फ़ एक-सा prefix ही दोबारा उपयोग हो सकता है, इसलिए बदलते हिस्से उसके बाद आएँ।