المستوى: متوسط
لو تطبيقك بيرسل system prompt حجمه 8000 token مع كل طلب، إنت بتدفع ثمن الـ 8000 token كاملة كل مرة، حتى لو نص الـ system نفسه ما اتغيّرش من 3 شهور. Prompt Caching بيخلّيك تدفع 10% بس من السعر بداية من الطلب الثاني، وبيرجّع التكلفة الشهرية من 98 دولار لـ 34 دولار على نفس الحجم.
Prompt Caching في Claude API: ليه بتدفع نفس الفلوس على كلام مكرر
المشكلة باختصار
أي تطبيق production فيه Claude بيشتغل بنفس الـ system prompt تقريبًا في كل request. تعليمات للنبرة، أمثلة few-shot، schema للـ tool use، أو توثيق المنتج. الكلام ده ممكن يكون 4000، 8000، أو حتى 30,000 token. والـ API بيحاسبك على إعادة معالجته في كل طلب من أول حرف لآخر حرف.
اللي بيحصل فعلاً إن الـ model محتاج يقرأ الـ tokens دي مرة واحدة، يطلّع منها internal state اسمه KV cache، وبعدين يجاوب على سؤال المستخدم. Prompt Caching بيخلّيك تدفع ثمن المعالجة الأولى مرة، وبعد كده الـ infrastructure بتاعة Anthropic بتحتفظ بالـ state ده لمدة 5 دقايق، وأي طلب تاني فيه نفس البداية بيستفيد منه.
المثال للمبتدئ: خزينة المكتبة
تخيّل مكتبة فيها أمين بيقرأ كتاب 800 صفحة قبل ما يجاوب على أي سؤال، حتى لو السؤال نفسه اختلف. لو 100 زبون سألوه في نفس اليوم، هيقرأ الـ 800 صفحة 100 مرة. ده هدر صريح في وقته ومجهوده.
Prompt Caching بيشبه إن الأمين قرأ الكتاب مرة واحدة وحط ملخّصه مفهرس على المكتب. الزبون رقم 2 لحد رقم 100 بيستفيدوا من الفهرس فورًا، والأمين بس بيقرأ السؤال الجديد ويجاوب. الفرق في الزمن وفي مجهود الأمين كبير، وده بالظبط اللي بيحصل جوّا الـ GPUs بتاعة Anthropic لمّا بتفعّل caching.
التعريف العلمي للـ Prompt Caching
Prompt Caching حسب توثيق Anthropic الرسمي هو آلية بتسمح بإعادة استخدام الـ internal computation state، وتحديدًا الـ Key/Value attention cache، عبر طلبات متعددة. لما بتحط علامة cache_control على جزء من الـ prompt، الـ infrastructure بتحفظ الـ state الناتج من معالجة هذا الجزء، وأي طلب تالي يبدأ بنفس المحتوى تمامًا (prefix match) بيقرأ من الـ cache بدل ما يعيد المعالجة من أول حرف.
التسعير الرسمي على Sonnet 4.5/4.6 (مايو 2026): الكتابة الأولى للـ cache بـ 5 دقايق تكلّف 1.25 ضعف السعر الأصلي ($3.75 لكل مليون token)، والقراءة من الـ cache تكلّف 0.1 ضعف السعر الأصلي ($0.30 لكل مليون token)، أي خصم 90% من ثمن الـ input للأجزاء المخزّنة. الحد الأدنى للجزء القابل للتخزين: 1024 token لـ Sonnet و Opus، و 2048 token لـ Haiku. الفرضية اللي الشرح ده مبني عليها إنك على tier 2 أو أعلى وعندك أكتر من طلب واحد كل 5 دقايق.
الكود الشغّال: قبل وبعد cache_control
الكود ده بيشتغل على anthropic SDK 0.45+ و Python 3.12. الفرق الجوهري بين النسختين سطر واحد بس.