مستوى المقال: مبتدئ — هذا الشرح موجّه للمطور اللي بدأ يستخدم Claude API ولاحظ إن الفاتورة بتكبر أسرع من المتوقّع. هتعرف ليه بتدفع زيادة، وإزاي تخفّض 90% من الجزء المتكرّر بإضافة حقل واحد في الـ request.
لو بتبعت نفس الـ system prompt الطويل (3,000 token مثلاً) مع كل استدعاء لـ Claude، انت بتدفع تمنه كامل في كل request. Prompt Caching بيخلّي Anthropic تحتفظ بالجزء المتكرّر على خوادمها لمدة 5 دقايق، وبيحاسبك على قراءته بـ 10% من سعره الأصلي فقط.
Prompt Caching: ليه فاتورة Claude بتكبر بدون سبب واضح
المشكلة باختصار
لو بنيت شات بوت بيستخدم Claude Sonnet 4.6، وحاطط في الـ system prompt تعليمات الـ persona + قواعد العمل + 5 أمثلة few-shot، الـ prompt ده ممكن يطلع 4,000 token. كل سؤال بيسأله المستخدم بيبعت الـ 4,000 token دول من الأول كأنهم جداد.
على Claude Sonnet 4.6 السعر $3 لكل مليون input token. لو الشات بوت بيرد على 10,000 سؤال شهرياً، الجزء المتكرّر لوحده بيكلّفك: 4,000 × 10,000 = 40 مليون token = $120 شهرياً على نفس الـ context اللي مش بيتغيّر. مع Prompt Caching، نفس الجزء بيكلّف $12 شهرياً فقط.
مثال أمين المخزن (شرح للمبتدئ)
تخيّل إنك ماسك مخزن قطع غيار، وكل يوم بيجي 50 ميكانيكي يسألوك "فين القطعة رقم XYZ؟". أمامك خياران:
- الطريقة الغلط: كل ميكانيكي يطلب قطعة، انت تفتح الكتالوج من الصفحة 1 وتقرا الـ 800 صفحة لحد ما تلاقي القطعة. ده اللي بيحصل بدون Caching — Claude بيقرأ الـ system prompt كامل في كل مرة.
- الطريقة الصح: أول مرة تقرا الكتالوج وتحفظ في دماغك فهرس سريع للقطع. كل سؤال بعد كده بترد في ثواني. ده الـ Prompt Caching — Claude بيحتفظ بفهرس داخلي للجزء المتكرّر لمدة 5 دقايق، وبيستخدمه على طول.
الفرق إن "حفظ الفهرس" مرة واحدة بيكلّف شوية زيادة (cache write)، بس استخدامه بعد كده بيكون رخيص جداً (cache read).
التعريف العلمي بدقة
حسب توثيق Anthropic الرسمي، Prompt Caching بيشتغل بإنك بتحدّد جزء من الـ messages أو الـ system prompt بحقل cache_control: {"type": "ephemeral"}. أول استدعاء بيـ "كتب" المحتوى ده في cache على خوادم Anthropic بتكلفة +25% من السعر الأصلي للـ tokens. أي استدعاء بعد كده خلال 5 دقايق بيقرأ من الـ cache بتكلفة 10% من السعر الأصلي (يعني خصم 90% على cache hit).
الحد الأدنى لجزء قابل للـ caching على Sonnet 4.6 هو 1,024 token. أقل من كده، Anthropic بترفض الـ caching بصمت وبتحاسبك على الأسعار العادية.