يتيح التخزين المؤقت للمطالبات لنماذج اللغة إعادة استخدام بدايات المطالبات المعالجة مسبقًا بدلاً من تكرار حساب الإدخال نفسه. يمكن أن يخفض تكلفة الرموز المدخلة ويحسن زمن الاستجابة، خصوصًا في تدفقات الوكلاء، ودعم العملاء، واسترجاع المعلومات المعزز (RAG)، وتحليل المستندات كبيرة الحجم. في عام 2026، توفر OpenAI تخزينًا مؤقتًا تلقائيًا وضوابط صريحة أحدث، وتدعم Claude نقاط توقف للتخزين المؤقت تلقائيًا وعلى مستوى الكتل، بينما تؤكد Gemini على التخزين الضمني في أحدث نماذجها. يختلف تسعير المزودين لعمليات كتابة وقراءة التخزين المؤقت، وعند الاقتضاء، التخزين. قد يؤدي انتهاء الصلاحية إلى كتابة جديدة أو تحميل كامل للإدخال، لذا تعتمد وفورات التكلفة الفعلية على وتيرة إعادة الاستخدام ونسبة إصابات التخزين المؤقت المقاسة.
يقارن هذا الدليل التخزين المؤقت للمطالبات في GPT-6.1 Sol وClaude Opus 5.5 وGemini 4 Argon للمطورين الذين يبنون تطبيقات ذات إدخال متكرر. يركز على ضوابط التخزين المؤقت، التسعير، وكيفية التحقق من إعادة الاستخدام.
Key Takeaways
التخزين المؤقت للمطالبات يعيد استخدام الإدخال المعالج، وليس إجابة النموذج السابقة.
يعتمد التخزين المؤقت للمطالبات في OpenAI على بادئة مستقرة، وميزات نموذج مدعومة، وحدود دنيا وإعدادات احتفاظ خاصة بالنموذج.
تمت المراجعة للوضوح ودقة المصدر ومصطلحات API الحالية.
يقدم التخزين المؤقت في Claude فترات TTL مدتها 5 دقائق وخيار 1 ساعة مع ضوابط تلقائية وصريحة.
التخزين السياقي في Gemini ضمني في النماذج الحديثة؛ تبقى الموارد الصريحة للتخزين المؤقت معتمدة على النموذج.
تعتمد وفورات التخزين المؤقت على عمليات الكتابة والقراءة والتخزين، وعلى الإصابات الفعلية؛ تحقق من دعم نقطة النهاية وفوترة الرموز المخزنة عند استخدام CometAPI.
What Is Prompt Caching in LLMs?
التخزين المؤقت للمطالبات هو تحسين في الاستدلال يمكّن من إعادة استخدام الحالة الحسابية المشتقة من بادئة تمت معالجتها سابقًا. غالبًا ما تحتوي المطالبة على تعليمات ثابتة أو تعريفات أدوات أو مستندات، يليها سؤال مستخدم متغير. إذا كرر طلب لاحق البادئة المؤهلة، قد يعيد المزود استخدام حالات المفاتيح والقيم (KV) المخزنة مؤقتًا ويعالج فقط الجزء غير المخزن. بخلاف التخزين المؤقت للاستجابات، لا يعيد هذا تشغيل الإجابة السابقة: بل يولد النموذج استجابة جديدة للطلب الحالي.
سير عمل التخزين المؤقت للمطالبات:
الطلب الأول: أرسل بادئة كبيرة قابلة لإعادة الاستخدام مع سؤال محدد.
إنشاء التخزين المؤقت: يخزن المزود الحالة الحسابية الوسيطة المؤهلة.
الطلب التالي: أعد استخدام البادئة المطابقة واستبدل السؤال.
قراءة التخزين المؤقت: يُعاد استخدام الرموز المعالجة مسبقًا بينما تُعالج الرموز الجديدة بشكل طبيعي.
رسم توضيحي مفاهيمي ضمن المسودة الأصلية: مادة مطالبة متكررة تسبق سؤالًا متغيرًا. هذا ليس مخططًا رسميًا لبنية أي مزود.
مبدأ التصميم المشترك هو استقرار البادئة. عقود واجهات برمجة التطبيقات، العائلات النموذجية المؤهلة، عمر التخزين المؤقت، والرسوم ليست قابلة للاستبدال بين المزودين.
OpenAI, Claude, and Gemini Caching at a Glance
ينطبق مبدأ البادئة المستقرة على جميع المزودين، لكن الضوابط أدناه خاصة بالنماذج المستخدمة في هذا الدليل. تحقق من النموذج ونقطة النهاية معًا قبل نسخ أي إعداد.
Parameter
OpenAI: GPT-6.1 Sol
Claude: Opus 5.5
Google: Gemini 4 Argon
Cache activation
مطابقة ضمنية؛ نقاط توقف صريحة مدعومة
اختيارية عبر مستوى الطلب أو cache_control على مستوى محتوى الكتلة
التخزين الضمني مفعّل افتراضيًا
Minimum prefix
1,024 رمز إدخال ظاهر
512 رمزًا قبل حد التخزين المؤقت
4,096 رمز إدخال
Lifetime controls
Responses API: prompt_cache_options.ttl; افتراضي 30m أو 12h
افتراضي 5 دقائق؛ خيار TTL لمدة ساعة
عمر مُدار من المزود بشكل ضمني
Where to place stable content
التعليمات الرائدة، الأدوات، والمواد المرجعية
تعريفات الأدوات الثابتة، محتوى النظام، أو كتل الرسائل قبل نقطة التوقف
محتوى مشترك كبير في بداية المطالبة
Usage to inspect
input_tokens_details.cached_tokens وتقارير استخدام كتابة التخزين المؤقت
cached_content_token_count في usage_metadata، عندما يتوفر
Important distinction
يمكن لـ prompt_cache_key فصل المحاسبة؛ غير مطلوب لتوجيه Sol التلقائي
يجب أن تنتهي نقطة التوقف عند محتوى يبقى بلا تغيير
لا توجد مورد تخزين مؤقت صريح لـ Argon؛ تعرض النماذج الأقدم المدعومة واجهة منفصلة
Prompt Caching Controls and Python Examples
يرسل كل مثال المواد المرجعية نفسها مع سؤالين مختلفين. أبقِ المحتوى المشترك دون تغيير، نفّذ الطلبات بالتتابع، وافحص الاستخدام لمعرفة ما إذا كان الطلب الثاني أعاد استخدام الإدخال المخزن بالفعل.
OpenAI: Cache Controls and Python Example
تطابق OpenAI تلقائيًا بدايات المطالبات المؤهلة للتخزين المؤقت، وعلى النماذج الحديثة المدعومة، تسمح بضبط نقاط التوقف والاحتفاظ بشكل صريح. يكون إعادة الاستخدام مفيدًا بشكل خاص عندما تتكرر تعليمات النظام الطويلة، مخططات الأدوات، أو سياق المستودع عبر الطلبات. يعتمد طول البادئة المطلوب ومعاملات أسعار الرموز على جيل النموذج ومستوى الاحتفاظ المختار.
يستخدم المثال Responses API مع prompt_cache_options مضبوطًا على الوضع الضمني وعمر 30 دقيقة. تستخدم الأجيال الأقدم من النماذج معلمات احتفاظ مختلفة؛ اتبع الإعدادات لنموذجك المحدد.
ثبّت حزمة openai واضبط OPENAI_API_KEY. استخدم ما لا يقل عن 1,024 رمزًا ظاهرًا في البادئة المستقرة. شغّل كلا الطلبين بالتتابع وافحص input_tokens_details.cached_tokens وcache_write_tokens في الاستخدام. تؤكد قيمة موجبة للرموز المخزنة قراءةً مفوترةً من التخزين المؤقت؛ لكنها لا تَعِد بزمن استجابة أقل في كل طلب.
لتشغيل الأمثلة، ثبّت حزمة Python المناسبة، اضبط مفتاح واجهة برمجة التطبيقات للمزود، وأنشئ ملفًا reference.txt بترميز UTF-8 يحتوي على محتوى ثابت كافٍ لتلبية الحد الأدنى للتخزين المؤقت لذلك النموذج.
from pathlib import Path
from openai import OpenAI
client = OpenAI() # Reads OPENAI_API_KEY
shared = Path("reference.txt").read_text(encoding="utf-8")
questions = ["Summarize the architecture.", "Identify the main technical risks."]
for question in questions:
response = client.responses.create(
model="gpt-6.1-sol",
instructions="Use the following reference material.\n" + shared,
input=question,
prompt_cache_key="docs-assistant-v1",
prompt_cache_options={"mode": "implicit", "ttl": "30m"},
)
print(response.output_text)
print(response.usage)
Claude: Cache Controls and Python Example
في Claude Messages API، التخزين المؤقت للمطالبات اختياري. أضف cache_control على مستوى الطلب لوضع نقاط توقف تلقائيًا، أو أرفقه بكتلة محتوى لتحديد نقطة توقف صريحة. يمكن للمطورين تحديد التعليمات الثابتة والمستندات وبعض كتل المطالبة، مع تغيير إدخال المستخدم اللاحق. التخزين المؤقت القياسي قصير المدة هو خمس دقائق، مع خيار ساعة واحدة لأعباء العمل المناسبة.
ثبّت حزمة anthropic واضبط ANTHROPIC_API_KEY. بالنسبة لـ Claude Opus 5.5، قدم ما لا يقل عن 512 رمزًا قبل حد التخزين المؤقت. أبقِ كتلة النظام متطابقة عبر الطلبات. يصبح إدخال التخزين المؤقت متاحًا عند بدء الاستجابة الأولى؛ ينتظر هذا المثال الاستجابة بالكامل لتبسيط العرض. افحص أعداد إنشاء التخزين المؤقت وقراءاته؛ قد تُعيد بادئة قصيرة صفرًا لكليهما دون رفع خطأ.
from pathlib import Path
import anthropic
client = anthropic.Anthropic() # Reads ANTHROPIC_API_KEY
shared = Path("reference.txt").read_text(encoding="utf-8")
for question in ["Summarize the architecture.", "Identify the main technical risks."]:
response = client.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
system=[{
"type": "text",
"text": shared,
"cache_control": {"type": "ephemeral"},
}],
messages=[{"role": "user", "content": question}],
)
print(response.content)
print(response.usage.cache_creation_input_tokens)
print(response.usage.cache_read_input_tokens)
Gemini: Implicit Caching and Python Example
تسمي Google تنفيذها التخزين السياقي. يستخدم Gemini 4 Argon تخزينًا ضمنيًا ولا يدعم موارد تخزين مؤقت صريحة. تدعم بعض العائلات الأقدم موارد تخزين مؤقت صريحة مع TTL قابل للضبط. اختر واجهة التخزين المؤقت بحسب عقد النموذج الفردي بدلاً من الافتراض بأن جميع نماذج Gemini تعرض ضوابط متماثلة.
ثبّت google-genai واضبط GEMINI_API_KEY. استخدم ما لا يقل عن 4,096 رمزًا من المحتوى المشترك في المقدمة لـ Gemini 4 Argon، وأرسل الطلب الثاني بعد الأول بفترة وجيزة. افحص cached_content_token_count في usage_metadata عند توفره. قد يفوّت التخزين الضمني حتى عندما تكون البادئة مؤهلة.
from pathlib import Path
from google import genai
client = genai.Client() # Reads GEMINI_API_KEY
shared = Path("reference.txt").read_text(encoding="utf-8")
for question in ["Summarize the architecture.", "Identify the main technical risks."]:
response = client.models.generate_content(
model="gemini-4-argon",
contents=shared + "\nQuestion: " + question,
)
print(response.text)
print(response.usage_metadata)
How Much Does Prompt Caching Cost Across OpenAI, Claude, and Gemini?
ينبغي تقييم تكاليف التخزين المؤقت كمزيج من عمليات الكتابة والقراءة، وعلى بعض الأنظمة ذات التخزين المؤقت الصريح—الاحتفاظ أو التخزين. المضاعفات التالية توضح تصاميم شائعة وليست وعود أسعار عالمية عبر إصدارات النماذج.
Cost category
OpenAI
Claude
Gemini
Uncached input
معدل الرموز المدخلة العادي
معدل الرموز المدخلة العادي
معدل الرموز المدخلة العادي
Cache write
احتمال علاوات كتابة في النماذج الأحدث
علاوات 5m/1h
ضمني أو صريح يعتمد على النموذج
Cache read
معدل مخفّض خاص بالنموذج
معدل مخفّض خاص بالنموذج
معدل مخفّض خاص بالنموذج
Cache lifetime
خاص بالنموذج
5m / 1h
مُدار ضمنيًا / قابل للضبط صراحةً
Additional storage
يعتمد على النموذج
يُعكس عادةً في فئة الكتابة
قد تنطبق رسوم تخزين صريحة
مثال توضيحي: بادئة بطول 10,000 رمز تُعاد استخدامها عبر N من الطلبات، تكلف كتابة التخزين الأولى 1.25 ضعف الإدخال العادي، وتكلف قراءات التخزين اللاحقة 0.1 ضعف الإدخال العادي. افترض سعر إدخال أساسي قدره 2 دولار لكل مليون رمز وإصابات مثالية للتخزين بعد الطلب الأول.
Number of requests
Without caching
With caching
Savings on reused prefix
10
$0.200
$0.043
78.50%
100
$2.000
$0.223
88.85%
الصيغة: تكلفة البادئة المخزنة = 1.25P + (N − 1) × 0.1P، حيث P هي تكلفة معالجة البادئة المشتركة مرة واحدة بالسعر العادي. يستثني هذا المثال الإدخال الديناميكي، والإخراج، وانتهاءات الصلاحية، والإخفاقات، والتخزين والخدمات الأخرى.
يستخدم المثال أعلاه معدل قراءة توضيحيًا بنسبة 10%، وليس المعدل الحالي لـ GPT-6.1 Sol. تسعير السياق القصير القياسي لـ Sol هو 2 دولار لكل مليون رمز إدخال غير مخزن، 0.10 دولار لكل مليون رمز إدخال مخزن، و2.50 دولار لكل مليون رمز مكتوب مع عمر افتراضي. أعد حساب المثال باستخدام نموذجك الفعلي، ومستوى الخدمة، وفاتورة نقطة النهاية.
يستحق عمرٌ أطول فقط عندما يمنع عددًا كافيًا من عمليات الكتابة المتكررة أو الطلبات غير المخزنة بحيث يعوض سعره. تُفرض عمليات كتابة Claude لمدة 5 دقائق و1 ساعة بمضاعفات 1.25× و2× من السعر الأساسي للإدخال، على التوالي. يمكن أن تتحمل موارد التخزين المؤقت الصريحة في نماذج Gemini القديمة المدعومة أيضًا رسوم تخزين. قس إعادة الاستخدام عبر فواصل خمول حقيقية، وليس فقط دفعة مكالمات متتالية.
اعتبر الإخفاقات، وانتهاء الصلاحية، وتوليد الإخراج جزءًا من الفاتورة. إذا انتهت صلاحية بادئة قبل إعادة استخدامها، فقد يتطلب الطلب التالي كتابة جديدة أو معالجة كاملة للإدخال. قد لا تكون المطالبات القصيرة مؤهلة على الإطلاق، بينما قد تجعل الإجابات الطويلة رموز الإخراج أكبر نفقة حتى مع إعادة استخدام قوية للتخزين. قارن التكلفة الإجمالية لكل مهمة مكتملة قبل إضافة مزيد من تعقيد التخزين المؤقت.
Which Prompt Caching API Is Best for Different Workloads?
بالنسبة لوكلاء الترميز ودعم العملاء، ضع تعريفات الأدوات الثابتة، وسياق المستودع، والسياسات، والمعرفة قبل المهمة المتغيرة. تقدم OpenAI وClaude ضوابط نقاط توقف تساعد في تحديد حدود قابلة لإعادة الاستخدام؛ قيّم قراءات التخزين المؤقت الفعلية لنقطة النهاية بدلاً من افتراض أن النص المتكرر قد تم تخزينه.
بالنسبة لتحليل المستندات والعمل متعدد الوسائط، احتفظ بالمستند المصدر أو الوسائط المدعومة قبل السؤال. يقلل النهج الضمني لـ Gemini من عبء إدارة التخزين المؤقت، بينما يسمح لك Claude بوضع علامة مباشرة على الكتلة الثابتة. تحقق من دعم نوع الوسائط والنموذج المحدد قبل الاعتماد على إعادة الاستخدام.
بالنسبة للمحادثات الطويلة، ألحِق الأدوار الجديدة بدلاً من إعادة كتابة البداية مرارًا، واختر عمرًا متاحًا يلائم الفواصل بين الأدوار. إذا كان تطبيقك يحتاج إلى مورد تخزين مؤقت مُسمى يمكنك إنشاؤه والرجوع إليه صراحةً، قيّم نموذج Gemini الذي يدعم تلك الواجهة؛ Argon لا يفعل ذلك.
لا يوجد فائز عالمي: قارن معدل إصابة التخزين المؤقت، وتكلفة المهمة المكتملة، وزمن الاستجابة ضمن نمط حركة المرور الفعلي لديك.
How Does Prompt Caching Affect Latency and Performance?
تقلل إصابة التخزين المؤقت من معالجة الإدخال المتكرر ويمكن أن تقصر زمن الوصول إلى أول رمز. لا يحسّن ذلك جودة الإجابة بطبيعته ولا يسرّع توليد الإخراج، ويظل الإدخال المخزن يحتل نافذة السياق. قِس زمن الوصول لأول رمز والوقت الإجمالي للاستجابة على طلبات قابلة للمقارنة؛ إصابة التخزين المؤقت وحدها ليست دليلًا على أن المستخدم تلقى الإجابة النهائية أسرع.
How to Optimize Prompt Caching and Troubleshoot Misses
Start with a Stable, Useful Prefix
ضع التعليمات القابلة لإعادة الاستخدام، تعريفات الأدوات، السياسات، والمستندات أولًا؛ ضع الطوابع الزمنية، معرّفات الطلبات، السياق المتغير، وسؤال المستخدم بعد ذلك. حافظ على ترتيب الأدوات والمخططات ثابتًا. عند استخدام التخزين المؤقت الصريح، أنهِ نقطة التوقف عند آخر كتلة غير متغيرة. أضف مواد مرجعية مفيدة عندما تساعد المهمة؛ لا تنفخ كل طلب فقط لملاحقة مقياس التخزين المؤقت.
If Cached Tokens Stay at Zero
تحقق من الأهلية قبل تغيير المطالبة: أكد النموذج الدقيق، ونقطة النهاية، وطول الرموز الأدنى، وإعدادات التحكم المطلوبة للتخزين المؤقت. ثم أرسل طلبين متتاليين بمحتوى مشترك مطابق. افحص إنشاء التخزين المؤقت وقراءاته بشكل منفصل؛ قد ينشئ الطلب الأول الإدخال الذي يمكن لطلب لاحق إعادة استخدامه. التخزين الضمني مؤهل للإصابة، وليس مضمونا.
بالنسبة إلى Claude، قد يعيد طلب دون الحد الأدنى صفرًا لكل من إنشاء التخزين المؤقت وقراءاته دون خطأ. يصبح إدخال التخزين المؤقت متاحًا بمجرد بدء الاستجابة الأولى. يشرح دليل التخزين المؤقت في Claude أيضًا كيف يؤثر وضع نقاط التوقف وتغيير إعدادات الطلب على إعادة الاستخدام.
If Hits Disappear Between Requests
قارن الحمولة الفعلية، لا قالب المطالبة فقط. ابحث عن نص مستند متغير، أدوات أعيد ترتيبها، مخططات معدلة، أدوار محادثة مبكرة أُعيدت كتابتها، أو حقول ديناميكية أُدرجت قبل الحد القابل لإعادة الاستخدام. تحقق من الوقت المنقضي منذ الطلب السابق وما إذا كان عمر الاحتفاظ المختار يغطيه. غيّر متغيرًا واحدًا في كل مرة وسجّل الاستخدام الناتج.
If Hits Do Not Produce Savings
افصل الإدخال المخزن، والكتابات، والإدخال غير المخزن، والإخراج، وأي رسوم تخزين. قد تفوق عمليات الكتابة المتكررة بعد فواصل الخمول، وإعادة الاستخدام المنخفضة، أو الإجابات الطويلة المتولدة خصومات الإدخال. استخدم حساب التكلفة أعلاه مع الاستخدام المقاس ومعدلات الفوترة الفعلية لنقطة النهاية. احتفظ بأي تحسين فقط إذا حسّن التكلفة الإجمالية للمهمة أو زمن الاستجابة المرئي للمستخدم.
Check Endpoint Support and Data Boundaries
قد تقبل نقطة نهاية توافقية طلبًا دون عرض نفس ضوابط التخزين أو حقول الاستخدام كواجهة برمجة التطبيقات الأصلية. أكد دعم المعلمات وقارن الاستخدام المعاد مع فوترة الحساب قبل اعتبار إعادة الاستخدام توفيرًا. حافظ على عزل المستأجرين وضوابط الوصول، واتبع سياسات المزود للاحتفاظ ومعالجة البيانات. التخزين المؤقت لا يحل محل تلك الضوابط.
How Can You Use Prompt Caching with CometAPI?
توفر CometAPI نقطة تكامل واحدة لاختبار الطلبات عبر عائلات النماذج. بالنسبة للتخزين المؤقت، تحقق من ضوابط المزود الخاصة التي تقبلها نقطة النهاية المحددة وكيف يظهر الإدخال المخزن في الاستخدام والفوترة. يمكن للمطورين توحيد اختبار النماذج مع الحفاظ على تحقق منفصل لسلوك التخزين المؤقت والمحاسبة، إذ ليست خيارات المزود الأصلية مضمونةً أن تكون متطابقة عبر نقاط نهاية الوكيل أو التوافق.
لإعدادات خاصة بالنموذج، راجع صفحات CometAPI الخاصة بـ GPT-6.1 Sol، وClaude Opus 5.5، وGemini 4 Argon. أكد أن نقطة النهاية التي اخترتها تدعم سلوك التخزين المؤقت الذي تحتاجه.
ثبّت حزمة openai واضبط COMETAPI_KEY. يرسل هذا المثال طلبات ببادئة متكررة عبر واجهة Chat Completions المتوافقة مع OpenAI في CometAPI. أكد توافر النموذج، ثم افحص الاستخدام المرتجع وفوترة الحساب للحصول على دليل على إعادة استخدام التخزين المؤقت. لا تنسخ معلمات التخزين المؤقت الخاصة بـ Responses API إلى هذه النقطة النهائية دون التحقق من دعمها.
import os
from pathlib import Path
from openai import OpenAI
client = OpenAI(
api_key=os.environ["COMETAPI_KEY"],
base_url="https://api.cometapi.com/v1",
)
shared = Path("reference.txt").read_text(encoding="utf-8")
for question in ["Summarize the architecture.", "Identify the main technical risks."]:
response = client.chat.completions.create(
model="gpt-6.1-sol",
messages=[
{"role": "system", "content": shared},
{"role": "user", "content": question},
],
)
print(response.choices[0].message.content)
print(response.usage)
Conclusion
بالنسبة للتطبيقات المعتمدة على التكرار، يمكن أن يُحدث التخزين المؤقت للمطالبات فرقًا ملموسًا في اقتصاديات الاستدلال. تمنح OpenAI المطورين ضوابط متزايدة التفصيل على المطالبات والاحتفاظ؛ تقدم Claude ضوابط تلقائية وعلى مستوى الكتلة؛ تجعل Gemini إعادة الاستخدام الضمنية مباشرة في النماذج الحديثة. يعتمد التنفيذ المناسب على حجم المطالبات المستقرة، ومعدل الإصابات، وانتهاء الصلاحية، والتكلفة الإجمالية. ابدأ ببادئة مشتركة واضحة، تحقق من بيانات الاستخدام، ثم حسّن الاحتفاظ واختيار المزود باستخدام قياسات قريبة من الإنتاج.
FAQ
How can I compare caching providers fairly?
أعد تشغيل نفس المستندات المصدر المفيدة وأسئلة مكافئة، لكن استخدم عدادات الرموز ومعدلات الفوترة الفعلية لكل مزود. حافظ على متطلبات الإخراج قابلة للمقارنة وبلّغ عن الطلبات غير الناجحة كما تنجح. عدد ثابت من الأحرف لا يعني نفس عدد الرموز، لذا قارن تكلفة المهمة المكتملة إلى جانب قياسات إصابة التخزين المؤقت.
Should I cache every document in a changing knowledge base?
جمّع المستندات بحسب مدى تكرار تغييرها ومدى تكرار إعادة استخدامها. يمكن لمستند محدث بشكل متكرر أن يُبطل بادئة مشتركة كبيرة مرارًا؛ وضع المواد السياسية الثابتة أولًا والمحتوى المتغير لاحقًا يمكن أن يقلل هذا التعرض. انْسَخ إصدارات المواد المصدرية عن قصد وحدّثها عندما تتطلب الصحة ذلك، حتى إن قللت إعادة الاستخدام.