نفس التعليمات بكل طلب لـ Claude؟ خزّنها بـ prompt caching

الـ prompt caching بـ Claude API بيحفظ بداية الطلب يلي بتتكرر، وقرايتها من الكاش بتنحسب بجزء صغير من سعر الإدخال. بس الكاش بيطابق البداية حرف بحرف، فحط الثابت أول.

نُشر في 3 دقائق قراءة#AI#أدوات المطورين

تطبيقك على Claude API بيبعت مع كل رسالة نفس التعليمات الطويلة: شو دور المساعد، وأمثلة، ووصف الأدوات. ونفس هالتعليمات بتنحسب عليك إدخال كامل بكل طلب، وكأنها أول مرة. بآخر هالمقال رح تعرف تخلّيها تنحسب مرة، وتتأكد بالأرقام إنها عم تنقرا من الكاش.

شو هو prompt caching؟

الـ prompt caching ميزة بـ Claude API بتحفظ بداية الطلب يلي بتتكرر، ولما تبعتها مرة تانية بتنقرا من الكاش بسعر أقل وبوقت أقصر.

حسب توثيق الـ prompt caching من Anthropic، النظام بيفحص إذا بداية الطلب، لحد نقطة الكاش يلي حددتها، محفوظة من طلب قريب؛ إذا لقاها بيستعملها، وإذا لأ بيعالج الطلب كله وبيخزّن البداية. الكتابة بكاش الخمس دقايق سعرها 1.25 ضعف سعر الإدخال العادي، والقراية 0.1 منه، إلا Claude Opus 5.5 وClaude Sonnet 5.5، يلي قرايتهن 0.05. والكاش بيعيش خمس دقايق افتراضياً، وبيتجدّد ببلاش كل مرة بينقرا.

ليش الكاش ما بيلقط مع إنك فعّلته؟

الكاش ما بيلقط لأنو بيطابق بداية الطلب حرف بحرف، وأي تغيير صغير بالبداية بيخلّي الطلب جديد بالنسبة إله.

التوثيق بيقولها صريحة: الإصابة بالكاش بدها أجزاء متطابقة 100%، كل النص والصور لحد البلوك المعلّم بـ cache_control. وهون بتصير الغلطة الأشهر: منحط بأول تعليمات النظام سطر متل «التاريخ والوقت هلق» أو اسم المستخدم، لحتى يعرفهن الموديل. سطر واحد بيتغيّر مع كل طلب، والكاش وراه ما بيتطابق أبداً، فبتدفع سعر الكتابة الأغلى بكل طلب بدل ما توفّر.

كيف بيرتّب Claude الكاش؟

الـ Claude API بيبني الكاش بترتيب ثابت: الأدوات (tools) أول، بعدين تعليمات النظام (system)، بعدين الرسائل (messages).

يعني يلي فوق بيأثّر على يلي تحته: حسب جدول التوثيق، تعديل تعريف الأدوات بيلغي الكاش كله. لهيك التوثيق بينصح تحط المحتوى الثابت بأول الطلب: تعريف الأدوات، والتعليمات، والسياق، والأمثلة، وتعلّم آخره بـ cache_control. ويلي بيتغيّر، متل الوقت واسم المستخدم وسؤاله، بيروح بعد هالنقطة، جوّا الرسائل.

هيك بتعلّم آخر الجزء الثابت بتعليمات النظام:

"system": [
  {
    "type": "text",
    "text": "Your fixed instructions, tool guide and examples go here.",
    "cache_control": {"type": "ephemeral"}
  }
]

وإذا ما بدك تحدد النقطة بنفسك، بتقدر تحط cache_control على مستوى الطلب كله، والنظام بيحط النقطة لحاله على آخر بلوك بينفع يتخزّن وبيحرّكها لقدّام مع ما تطول المحادثة:

"cache_control": {"type": "ephemeral"}

كيف تتأكد إنو الكاش عم يشتغل؟

بتتأكد من حقلين بـ usage بالرد: cache_creation_input_tokens بيقلّك قديش انكتب بالكاش، وcache_read_input_tokens قديش انقرا منه.

بالترتيب:

  1. ابعت نفس الطلب مرتين ورا بعض، خلال خمس دقايق.

  2. بالرد الأول لازم تشوف رقم بـ cache_creation_input_tokens، وبالتاني رقم بـ cache_read_input_tokens.

  3. إذا الحقلين صفر بالردّين، التوثيق بيقول إنو الطلب غالباً أقصر من الحد الأدنى: 512 توكن لموديلات متل Claude Opus 5.5 وClaude Sonnet 5.5. الطلب الأقصر ما بيتخزّن، وما بيرجع غلط.

  4. إذا الأول كتب والتاني كتب كمان بدل ما يقرا، دوّر على شي بيتغيّر بأول الطلب، متل الوقت.

وإذا محادثتك فيها أكتر من جزء ثابت، التوثيق بيسمحلك بـ 4 نقاط كاش بالكتير بالطلب الواحد.

من وين تبلّش هلق؟

افتح تعليمات النظام تبع تطبيقك، ودوّر على أي شي بيتغيّر بين طلب وطلب: التاريخ، أو الاسم، أو رقم الجلسة. انقله لأول رسالة المستخدم، وحط cache_control بعد الجزء الثابت، وجرّب الطلبين.

وإذا وكيلك بيقرا إيميلات أو صفحات من برّا، اقرا كمان كيف تحدّ أدوات وكيل الـ AI، ولتغيير قبل بالـ API نفسه شوف مقال إلغاء temperature بـ Claude API. ولو بدك مهارات جاهزة لوكلاء البرمجة، في قسم مهارات AI.

شو أول سطر بتعليمات النظام عندك هلق؟

أسئلة شائعة

قديش بيضل الكاش محفوظ؟

خمس دقايق افتراضياً، وبتتجدّد ببلاش كل مرة بتنقرا. وفي خيار ساعة بكلفة كتابة أعلى، بـ ttl قيمته 1h.

ليش حقول الكاش بالرد صفر مع إني حطيت cache_control؟

غالباً لأنو الطلب أقصر من الحد الأدنى للموديل. التوثيق بيقول إنو الطلب الأقصر ما بيتخزّن، وما بيرجع غلط، فبتشوف الحقلين صفر.

بيشوف حدا تاني الكاش تبعي إذا بعت نفس التعليمات؟

لأ. التوثيق بيقول إنو الكاش معزول بين المنظمات حتى لو التعليمات نفسها، ومعزول كمان بين الـ workspaces جوّا المنظمة على Claude API.

شارك المقال

نسخة Markdown

مقالات أخرى