الدرس 12 من 20

الذاكرة والمعرفة

انقطاعات المعرفة والتحديثات

2 دقيقة للقراءة

كل نموذج لغة كبير له تاريخ انقطاع معرفي—النقطة التي تنتهي عندها بيانات تدريبه. للوكلاء الذين يتعاملون مع مهام العالم الحقيقي، سد هذه الفجوة أمر ضروري.

انقطاعات المعرفة الحالية (ديسمبر 2025)

النموذج انقطاع المعرفة ملاحظات
GPT-4o ~يونيو 2024 لديه قدرة البحث على الويب
Claude Sonnet 4 ~مارس 2025 نماذج Claude أحدث متوفرة
Gemini 2.5 Pro ~يناير 2025 لديه التأريض/البحث
Llama 3.3 ~ديسمبر 2023 نموذج مفتوح الأوزان

مهم: تواريخ الانقطاع تتغير بشكل متكرر مع تحديثات النموذج. تحقق دائماً من الوثائق الرسمية للقيم الحالية. العديد من النماذج الآن تتضمن قدرات بحث فوري تكمّل بيانات تدريبها.

استراتيجيات للمعلومات الحالية

1. تكامل البحث الفوري

from langchain_community.tools import DuckDuckGoSearchRun

search = DuckDuckGoSearchRun()

def get_current_info(query):
    """جلب المعلومات الحالية للاستعلامات الحساسة للوقت"""
    # تحقق إذا كان الاستعلام يحتاج معلومات حالية
    needs_current = llm.generate(f"""
    هل يتطلب هذا الاستعلام معلومات بعد أبريل 2024؟
    الاستعلام: {query}
    الإجابة (نعم/لا):
    """).strip().lower() == "نعم"

    if needs_current:
        search_results = search.run(query)
        return f"معلومات حالية (حتى اليوم): {search_results}"
    return None

2. تحديثات المعرفة المجدولة

class KnowledgeUpdater:
    def __init__(self, vectorstore, sources):
        self.vectorstore = vectorstore
        self.sources = sources

    async def update(self):
        """تشغيل يومياً للحفاظ على حداثة المعرفة"""
        for source in self.sources:
            # جلب المحتوى الجديد
            new_docs = await source.fetch_updates()

            # التحقق من التغييرات
            for doc in new_docs:
                existing = self.vectorstore.similarity_search(
                    doc.content, k=1
                )
                if self.is_significantly_different(doc, existing):
                    # تحديث قاعدة المعرفة
                    self.vectorstore.add_documents([doc])
                    self.vectorstore.delete(existing[0].id)

# جدولة التحديثات اليومية
schedule.every().day.at("02:00").do(updater.update)

3. نسب المصدر

أخبر المستخدمين دائماً من أين تأتي المعلومات:

def answer_with_attribution(query):
    # الحصول من قاعدة المعرفة
    docs = retriever.get_relevant_documents(query)

    response = llm.generate(f"""
    بناءً على هذه المصادر، أجب على السؤال.
    استشهد دائماً بمصادرك.

    المصادر:
    {format_sources(docs)}

    السؤال: {query}
    """)

    return {
        "answer": response,
        "sources": [{"title": d.metadata["title"],
                    "date": d.metadata["date"],
                    "url": d.metadata["url"]} for d in docs]
    }

التعامل مع المعلومات القديمة

def check_freshness(query, response):
    """تحذير المستخدمين عندما قد تكون المعلومات قديمة"""

    # المواضيع التي تتغير بشكل متكرر
    volatile_topics = [
        "سعر السهم", "الطقس", "الأخبار",
        "أحدث", "حالي", "اليوم"
    ]

    if any(topic in query.lower() for topic in volatile_topics):
        return f"""
        {response}

        ⚠️ ملاحظة: هذه المعلومات قد تكون تغيرت.
        آخر تحقق: {get_source_date()}
        فكر في التحقق من المصادر الحالية للحصول على أحدث البيانات.
        """

    return response

أفضل الممارسات

الممارسة التنفيذ
أعلن القيود "آخر تحديث لمعرفتي كان..."
استخدم أدوات فورية البحث، APIs للبيانات الحالية
أرّخ مصادرك ضمّن متى تم استرجاع المعلومة
حدّث بانتظام جدول تحديثات قاعدة المعرفة
تحقق من المعلومات الحرجة تحقق مرجعياً من الحقائق المهمة

النقاط الرئيسية

  1. اعرف انقطاع نموذجك وأبلغ عنه
  2. استخدم الأدوات لسد فجوات المعرفة
  3. انسب المصادر لبناء الثقة
  4. حدّث بشكل استباقي للمجالات الحساسة للوقت

اختبر فهمك للذاكرة والمعرفة في الاختبار! :::

اختبار

الوحدة 3: الذاكرة والمعرفة

خذ الاختبار