المستوى: متوسط — يفترض إنك تعرف Anthropic SDK، استدعاء API الأساسي، وفهم هيكل الـ system prompt و messages. لو لسه مبتدئ، ابدأ بمقال "اختيار نموذج Claude للمبتدئ" قبل ما تكمل هنا.
Prompt Caching في Claude: خصم 68% على فاتورة شات بوت بـ 12K Token
لو شات بوت بتاعك بيعيد إرسال نفس الـ system prompt و RAG context في كل طلب، انت بتدفع تمن نفس الـ 12,000 token مليون مرة في الشهر. Prompt Caching بيخلّي Claude يحفظ الجزء الثابت ويفوّتر عليك بسعر 10% فقط لمدة 5 دقائق. على chatbot دعم عربي بـ 5,000 محادثة/يوم، الفاتورة بتنزل من $6,645 لـ $2,087 شهريًا.
المشكلة باختصار
تخيّل إنك بتروح كل يوم لنفس المطعم وبتطلب نفس الفطار. بدل ما النادل يفتكرك، كل مرة بيسألك من الأول: "ايه نوع الجبنة؟ ايه نوع الخبز؟ سكر في القهوة ولا لأ؟" — وانت بتدفع تكلفة الوقت ده مرة ورا التانية. ده بالظبط اللي بيحصل لما بتبعت لـ Claude system prompt طويل في كل request.
الافتراض إن عندك chatbot دعم عربي مع: system prompt 8K token (تعليمات + tone + restrictions) + RAG context ثابت 4K token (وثائق المنتج). كل طلب بيدفع 12K token input. بـ 5,000 محادثة/يوم على Claude Sonnet 4.6 (سعر $3 لكل مليون input token)، الفاتورة الشهرية بتوصل $6,645 من غير حتى ما تحسب الـ output.
إيه هو Prompt Caching علميًا
قبل ما نروح للتعريف العلمي، خلّي بالك من المثال ده: لما بتدخل المطعم نفسه يوميًا، النادل اللي شاطر بيكتب طلبك على ورقة ويحطها في درج اسمه "زبون مايو". أول مرة بيكتب الطلب بياخد دقيقتين زيادة. بعد كده كل ما تيجي، بيفتح الدرج ويقرا في 5 ثواني بدل ما يسألك تاني. لو معدتش لمدة أسبوع، بيرمي الورقة. ده بالظبط فكرة الـ Prompt Caching — مع فرق إن "الدرج" هنا اسمه KV Cache.
Claude Sonnet 4.6 مبني على architecture اسمها Transformer (Vaswani et al. 2017). لما بيعالج النص، بيحوّله لمصفوفات داخلية اسمها Key-Value attention cache. الحساب ده هو الجزء الأغلى في الـ inference. لما تفعّل prompt caching، Anthropic بتخزّن نتيجة معالجة الجزء المحدد من الـ prompt على هاردوير الـ inference لمدة 5 دقائق default، أو لساعة بـ extended TTL، وبتعيد استخدامها بدل ما تحسبها من الأول.
النتيجة على الفاتورة: الـ tokens المخزّنة بتتفوتر بـ $0.30/MTok بدل $3/MTok (خصم 90%). أول مرة تكتب فيها الـ cache التكلفة بتكون $3.75/MTok (زيادة 25% للكتابة).
الكود — 14 سطر شغّال
import anthropic
client = anthropic.Anthropic()
SYSTEM_PROMPT = "أنت مساعد دعم فني..." # 8K tokens
RAG_CONTEXT = "وثائق المنتج: ..." # 4K tokens
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=512,
system=[
{"type": "text", "text": SYSTEM_PROMPT},
{
"type": "text",
"text": RAG_CONTEXT,
"cache_control": {"type": "ephemeral"},
},
],
messages=[{"role": "user", "content": "ازاي ارجّع منتج؟"}],
)
print(response.usage)
# cache_creation_input_tokens: 12000 (أول مرة)
# cache_read_input_tokens: 12000 (المرات اللي بعدها خلال 5 دقائق)