الدرس 9 من 20

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

إدارة نافذة السياق

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

كل نموذج لغة كبير له نافذة سياق محدودة—العدد الأقصى من الرموز التي يمكنه معالجتها في وقت واحد. إدارة هذه النافذة أمر حاسم لبناء وكلاء فعالين.

فهم نوافذ السياق

النموذج نافذة السياق ما يعادلها بالكلمات تقريباً
GPT-4 128 ألف رمز ~96,000 كلمة
Claude 3.5 200 ألف رمز ~150,000 كلمة
GPT-4o 128 ألف رمز ~96,000 كلمة
Gemini 1.5 Pro 2 مليون رمز ~1.5 مليون كلمة

ملاحظة: سياق أطول ≠ أداء أفضل. النماذج غالباً تكافح مع المعلومات في "وسط" السياقات الطويلة.

اقتصاديات الرموز

كل استدعاء API يكلف رموزاً. محادثة وكيل نموذجية تتضمن:

موجه النظام:        ~500-2000 رمز
المحادثة:           متغير
تعريفات الأدوات:    ~100-500 لكل أداة
نتائج الأدوات:      متغير
الاستجابة:          ~200-2000 رمز

إدارة السياق بكفاءة

1. التلخيص

def manage_context(messages, max_tokens=50000):
    total_tokens = count_tokens(messages)

    if total_tokens > max_tokens:
        # تلخيص الرسائل القديمة
        old_messages = messages[:-10]  # الاحتفاظ بآخر 10
        summary = llm.generate(f"لخص هذه المحادثة: {old_messages}")

        return [
            {"role": "system", "content": f"السياق السابق: {summary}"},
            *messages[-10:]
        ]

    return messages

2. النافذة المنزلقة

الاحتفاظ فقط بالرسائل الأحدث:

def sliding_window(messages, window_size=20):
    if len(messages) > window_size:
        # الاحتفاظ دائماً برسالة النظام
        system = messages[0] if messages[0]["role"] == "system" else None
        recent = messages[-window_size:]
        return [system, *recent] if system else recent
    return messages

3. الاسترجاع الانتقائي

تضمين فقط السياق السابق ذي الصلة:

def selective_context(messages, current_query):
    # تضمين الاستعلام الحالي
    query_embedding = embed(current_query)

    # إيجاد الرسائل السابقة ذات الصلة
    relevant = []
    for msg in messages:
        similarity = cosine_similarity(query_embedding, embed(msg))
        if similarity > 0.7:
            relevant.append(msg)

    return relevant

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

الممارسة الفائدة
مراقبة استخدام الرموز البقاء ضمن الحدود، التحكم في التكاليف
التلخيص بشكل استباقي الحفاظ على المعلومات الرئيسية
إعطاء الأولوية للسياق الحديث الأكثر صلة بالمهمة الحالية
تخزين التضمينات مؤقتاً استرجاع أسرع
استخدام نماذج أصغر للتلخيص فعال من حيث التكلفة

المزالق الشائعة

  • تجاهل حدود السياق ← اقتطاع معلومات مهمة
  • تضمين كل شيء ← بطيء، مكلف، مشوش
  • الاقتطاع العدواني ← فقدان سياق رئيسي
  • التلخيص الذكي ← أفضل ما في العالمين

بعد ذلك، سنستكشف RAG—تقنية قوية لمنح الوكلاء الوصول إلى المعرفة الخارجية. :::

اختبار

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

خذ الاختبار