00:00:00دعونا نحل مشكلة كود كلود والذاكرة، لجعل أنظمة الذكاء الاصطناعي موثوقة ودقيقة
00:00:06في الإجابة على الأسئلة حول المحادثات الماضية أو المجموعات الضخمة من المستندات، وهي مشكلة كنا
00:00:13نحاول حلها لسنوات، وكان الرد المعتاد هو الـ RAG (التوليد المعزز بالاسترداد) و
00:00:20بينما عنوان هذا الفيديو هو "المستويات السبعة لكود كلود والـ RAG"، فإن ما يدور حوله هذا الفيديو حقاً
00:00:26هو تفكيك مشكلة كود كلود، وأنظمة الذكاء الاصطناعي بشكل عام، والذاكرة، وحتى
00:00:33الأهم من ذلك، يهدف هذا الفيديو إلى إعطائك خارطة طريق تبين لك موقعك في هذا
00:00:37الصراع بين أنظمة الذكاء الاصطناعي والذاكرة، وما يمكنك فعله للوصول إلى المستوى التالي. لذا، وبينما نمر
00:00:43عبر هذه المستويات السبعة لكود كلود والـ RAG، سنتطرق إلى عدد من المواضيع ولكننا
00:00:48لن نبدأ من GraphRAG أو أي شيء معقد، سنبدأ من البداية
00:00:53وهي مجرد أنظمة الذاكرة الأساسية الأصلية في كود كلود، لأنه من المحزن القول
00:00:59إن هذا هو المكان الذي لا يبدأ فيه معظم الناس فحسب، بل هو المكان الذي يبقون فيه؛ من الذاكرة التلقائية وأشياء مثل
00:01:04Claude.md، سننتقل إلى الأدوات الخارجية مثل Obsidian قبل أن نجد أنفسنا في النهاية
00:01:10مع الكبار، مع أنظمة الـ RAG الحقيقية؛ في هذه المستويات سنتحدث عن ماهية الـ RAG فعلياً
00:01:16وكيف يعمل، والأنواع المختلفة من الـ RAG؛ الـ RAG البسيط مقابل GraphRAG مقابل الـ RAG الوكيل، وأشياء مثل
00:01:21أدوات إعادة التصنيف وكل ما بينهما. وفي كل مستوى، سنقوم بتفكيكه بنفس
00:01:25الطريقة؛ سنتحدث عما يمكن توقعه في هذا المستوى، والمهارات التي تحتاج لإتقانها، و
00:01:29الفخاخ التي يجب تجنبها، وما عليك فعله للانتقال إلى المستوى التالي. ما لن يكونه
00:01:34هذا الفيديو هو شرح تقني متعمق للغاية لكيفية إعداد هذه
00:01:40الأنظمة المحددة بالضرورة، لأنني فعلت ذلك بالفعل في حالات عديدة عندما نتحدث عن GraphRAG و
00:01:45LightRAG على سبيل المثال، أو حتى مواضيع أكثر تقدماً مثل "RAG Anything" في هذه الأنظمة المختلفة من
00:01:50أنظمة التضمين؛ لقد قمت بعمل فيديوهات أشرح فيها من البداية إلى النهاية كيفية
00:01:55إعداد ذلك بنفسك. لذا عندما نصل إلى تلك الأقسام، سأضع روابط لتلك الفيديوهات، وهذا
00:02:00لمصلحتنا معاً، لكي لا يطول الفيديو لخمس ساعات، لكن في تلك المستويات سنظل نتحدث
00:02:04عما يعنيه ذلك فعلياً، وما يقدمه لك كل نظام، ومتى يجب استخدامه. ولكن قبل
00:02:09أن نبدأ بالمستوى الأول، كلمة سريعة من راعي اليوم: أنا. ففي الشهر الماضي فقط، أطلقت
00:02:15الدورة الاحترافية لكود كلود (Claude Code Masterclass)، وهي الطريقة الأولى للانتقال من الصفر إلى مطور ذكاء اصطناعي، خاصة إذا لم تكن
00:02:21من خلفية تقنية. وهذه الدورة الاحترافية مختلفة قليلاً لأننا نركز على
00:02:25عدد من حالات الاستخدام المختلفة لتعلم كيفية استخدام كود كلود، أحدها هو شيء مثل
00:02:31الـ RAG على مستوى الإنتاج، وكيفية بناء أنظمة الـ RAG التي ستراها في هذا الفيديو في سيناريو حقيقي و
00:02:37استخدامها فعلياً كعضو في فريق أو بيعها لعميل، هذا هو نوع الأشياء التي نركز عليها، لذا
00:02:42إذا كنت ترغب في الحصول على الدخول، يمكنك العثور عليها داخل Chase AI Plus؛ هناك رابط لذلك في التعليق المثبت
00:02:47ويسعدنا انضمامك إلينا هناك. والآن لنبدأ بالمستوى الأول، وهو الذاكرة التلقائية
00:02:51هذه هي الأنظمة التي يستخدمها كود كلود تلقائياً لإنشاء نوع من جهاز الذاكرة
00:02:58لتذكر الأشياء التي تحدثت عنها فعلياً، وتعرف أنك هنا إذا لم تكن قد
00:03:02أعددت أي شيء عمداً لمساعدة كود كلود على تذكر السياق بشكل عام حول المحادثات السابقة
00:03:09أو مجرد الأشياء التي تحدث في قاعدة الكود الخاصة بك. وعندما نتحدث عن الذاكرة التلقائية، فهذا
00:03:13هو بالضبط ما تسمى به: نظام الذاكرة التلقائية، والذي يتم تفعيله تلقائياً عند استخدام
00:03:18كود كلود؛ يسمح نظام الذاكرة التلقائية أساساً لكود كلود بإنشاء ملفات بصيغة Markdown من تلقاء نفسه
00:03:26تسرد الأشياء التي يعتقد أنها مهمة عنك في ذلك المشروع المعين، وهذا يعتمد تماماً
00:03:32على حدسه الخاص بناءً على محادثاتك. ويمكنني رؤية ملفات الذاكرة هذه التي أنشأها؛ مرة أخرى
00:03:37يفعل ذلك بمفرده إذا ذهبت إلى مجلد dot claude، ثم ذهبت إلى المشاريع، سترى
00:03:42مجلداً هناك يسمى memory، وداخل ذلك الملف سترى عدداً من ملفات Markdown هنا
00:03:47هناك أربعة منها، وهي تشبه نسخة كود كلود من الملاحظات اللاصقة التي تقول "أوه نعم، لقد ذكر
00:03:51هذا ذات مرة عن أهداف نمو مشروعه على يوتيوب، فلنكتب ذلك". وداخل مجلد
00:03:59الذاكرة الخاص بكل شخص، سيكون هناك ملف memory.md. وكما ترى في ملف الذاكرة هذا، هناك ملاحظة صغيرة حول
00:04:04إحدى مهاراتي، ثم لديه أساساً فهرس لكل ملفات الذاكرة الفرعية هذه التي تقول
00:04:09مهلاً، هناك ملف عن نمو يوتيوب هنا، وواحد عن الإيرادات أو المراجع، وهذا ما يوجد بداخله
00:04:13لذا إذا كنت أتحدث فقط مع كود كلود في ملف vault الخاص بي وذكرت شيئاً عن يوتيوب و
00:04:19أهدافي مع النمو أو ما شابه، فسيشير إلى هذا ويقول "أوه نعم، تشيس يحاول
00:04:23الحصول على كذا مشترك بحلول نهاية عام 2026". إنه أمر لطيف ولكنه في النهاية ليس مفيداً جداً
00:04:30إنه يشبه إلى حد ما عندما تكون داخل ChatGPT ويقوم باستحضار أشياء عشوائية من
00:04:35المحادثات السابقة وكأنه يقحمها إقحاماً؛ فتقول "حسناً، فهمت أنك تذكرت هذا
00:04:40لكنني لا أهتم حقاً، وبصراحة من الغريب الاستمرار في طرح ذلك، أفضل لو لم تفعل"
00:04:44ولسوء الحظ، هذا هو المكان الذي يبقى فيه معظم الناس في رحلتهم مع الذاكرة، وهو مبني على
00:04:49ماضٍ مسيء إلى حد ما نعيشه جميعاً عندما يتعلق الأمر باستخدام روبوتات الدردشة هذه
00:04:54لأن روبوتات الدردشة هذه ليس لديها أي نوع من الذاكرة الحقيقية من محادثة إلى أخرى، ولذا
00:05:00نحن دائماً مرعوبون من الاضطرار للخروج من نافذة الدردشة أو الخروج من جلسة طرفية
00:05:06لأنك تعتقد "يا إلهي، لن يتذكر محادثتي"، وهذه في الواقع
00:05:10مشكلة حقيقية، لأن ما هو رد الجميع على عدم قدرة نافذة الدردشة على تذكر أي شيء؟
00:05:17حسناً، الإجابة هي أنك تستمر في تلك المحادثة للأبد لأنك لا تريد الوصول إلى
00:05:22سيناريو تضطر فيه للخروج وينسى كل شيء؛ هذا خوف ولد هنا داخل
00:05:26نوافذ الدردشة هذه بدءاً من ChatGPT ونفس الشيء مع تطبيق ويب كلود، وبصراحة كان
00:05:31الأمر أسوأ بكثير مع تطبيق ويب كلود لأنني أعتقد أننا جميعاً نتذكر الأيام التي سبقت
00:05:35نافذة السياق ذات المليون رمز، حيث كان لديك مثلاً 30 دقيقة للتحدث مع كلود ثم يقول "حسناً، أراك
00:05:39بعد أربع ساعات". المشكلة هي أن الناس نقلوا ذلك السلوك العصابي والذهاني إلى
00:05:45الطرفية، وما يفعلونه إلى حد كبير لأنك تستطيع الآن الإفلات من العقاب بفضل نافذة السياق ذات المليون رمز
00:05:50هو أنهم لا يمسحون الجلسة أبداً، بل يستمرون في التحدث والتحدث والتحدث مع كود كلود لأنهم
00:05:55لا يريدونه أبداً أن ينسى ما يتحدثون عنه بسبب مشاكل الذاكرة هذه، و
00:06:00المشكلة في ذلك هي أن كفاءتك تنخفض كثيراً بمرور الوقت كلما تحدثت مع كود كلود
00:06:05داخل نفس الجلسة، وهذه هي الفكرة الأساسية لـ "تآكل السياق" (Context Rot)؛ إذا كنت لا تعرف ما هو تآكل السياق
00:06:10فهو الظاهرة التي تتمثل في أنه كلما استخدمت نظام ذكاء اصطناعي ضمن نفس الجلسة ونفس الدردشة
00:06:16وملأت نافذة السياق تلك، أصبح أداؤه أسوأ. يمكنك رؤية ذلك هنا؛ كود كلود بمليون
00:06:23سياق، عند 256 ألف رمز، أي أنني ملأت فقط ربع نافذة السياق الخاصة به، نكون
00:06:30عند دقة 92%، وبحلول النهاية أصل إلى 78%. لذا كلما استخدمته في نفس الدردشة أصبح أسوأ، وهذه واحدة من
00:06:36المشاكل الأساسية التي يواجهها الناس مع أنظمة الذكاء الاصطناعي والذاكرة؛ لدي كود كلود ولديه مليون سياق
00:06:42الآن، ومع ذلك لا أريده أن ينسى المحادثة التي أجريها، لذا لا أغلق
00:06:47النافذة أبداً، بل أملؤها وأملؤها، ويحدث شيئان؛ الأول هو أن الفعالية تنخفض
00:06:51كما رأيت للتو، والثاني هو أن استهلاكك يمتلئ بشكل كبير لأن كمية الرموز المستخدمة عند
00:06:59مليون رمز، ذلك السياق ذو الـ 800 ألف رمز، هو أكثر بكثير من سياق ذو 80 ألف رمز، لذا ليست هذه هي المشكلة الوحيدة
00:07:08ولكن، بعيداً قليلاً عن الموضوع، نحن في نظام بيئي حالي يشتكي فيه الجميع من تراجع أداء كود كلود
00:07:12وأن استهلاكي يزداد تلقائياً؛ هناك عدد من الأسباب لذلك، ولكن أحدها
00:07:18بلا شك هو حقيقة أنه منذ إدخال المليون سياق، لم يعد لدى الناس أي فكرة عن كيفية
00:07:24إدارة نافذة السياق الخاصة بهم، وهم ليسوا جريئين بما يكفي في
00:07:29مسح وإعادة ضبط المحادثة، لكن هذا خارج الموضوع قليلاً
00:07:34النقطة من كل هذا النقاش هي أنه عندما يتعلق الأمر بالذاكرة في هذا الحديث عن الـ RAG و
00:07:39كود كلود، يجب أن نبقي "تآكل السياق" في اعتبارنا لأننا نحاول باستمرار التعامل مع هذا التوتر المتمثل في "حسناً، أريد
00:07:44إدخال السياق حتى يتمكن كود كلود من الإجابة على الأسئلة حول عدد من الأشياء، وفي الوقت نفسه
00:07:50لا أريد أن يصبح السياق كبيراً جداً لأن أداءه سيصبح أسوأ"
00:07:55لذا يجب أن يكون هذا دائماً شيئاً نفكر فيه في هذا النقاش حول الذاكرة
00:08:02ولكن لنعود إلى الفيديو الفعلي والمستوى الأول: ماذا يفعل الناس في المستوى الأول؟
00:08:06الإجابة هي أنهم لا يفعلون أي شيء حقاً، ولأنهم لا يفعلون أي شيء، فهم يعتمدون فقط
00:08:10على نافذة سياق متضخمة لتذكر الأشياء؛ لذا تعرف أنك هنا عندما لا تكون قد حررت
00:08:15ملف Claude.md أبداً، ولم تقم أبداً بإنشاء أي نوع من المنتجات أو أي نوع من الملفات التي تسمح لكلود
00:08:23بإدراك ما يحدث بحق، وما فعله بالفعل في الماضي وما الذي يحتاج
00:08:27للقيام به في المستقبل. إذاً ما الذي نحتاج لإتقانه في هذا المستوى؟ حسناً، في الحقيقة كل ما تحتاجه حقاً
00:08:31إتقانه رغم كل ما كتبته هنا، هو أن تفهم فقط أن الذاكرة التلقائية ليست كافية
00:08:35وأننا بحاجة لاتخاذ دور نشط عندما يتعلق الأمر بكود كلود والذاكرة، لأن الفخ في هذا المستوى
00:08:40هو أنك إذا لم تتخذ دوراً نشطاً فلن يكون لديك سيطرة، ونحن بحاجة للسيطرة على ما يأخذه كود كلود
00:08:44في الاعتبار عندما يجيب على أسئلتنا. ولفتح المستوى الأول والانتقال إلى المستوى الثاني
00:08:50نحتاج لذاكرة صريحة، ونحتاج لاكتشاف كيفية القيام بذلك فعلياً؛ ما هي الملفات التي
00:08:57تحتاج لتحريرها وفهم وجودها أصلاً لكي تتخذ دوراً نشطاً في هذه العلاقة
00:09:01المستوى الثاني يدور حول ملف واحد محدد وهو ملف Claude.md؛ عندما تتعرف
00:09:06على هذا الشيء تشعر وكأنه هبة من السماء؛ أخيراً هناك مكان واحد حيث يمكنني إخبار كود كلود
00:09:12ببعض القواعد والاتفاقيات التي أردت دائماً اتباعها وسيفعل ذلك، و
00:09:16في الواقع يمكنني تضمين أشياء أردت منه تذكرها وسيفعل دائماً؛ وبالتأكيد يبدو الأمر وكأنه
00:09:20تقدم في البداية. إليك نموذجاً لملف Claude.md قياسي لمشروع مساعد شخصي؛ الآن
00:09:29كود كلود سيقوم تلقائياً بإنشاء ملف Claude.md ولكن لديك القدرة على
00:09:33تحريره أو حتى تحديثه عند الطلب باستخدام أمر مثل slash init؛ وفكرة
00:09:38هذا الشيء هي أنه مرة أخرى يشبه الكأس المقدسة للتعليمات لكود كلود لهذا المشروع المعين
00:09:43لكل المقاصد والأغراض، سيقوم كود كلود بإلقاء نظرة على هذا قبل أي مهمة
00:09:50ينفذها. لذا إذا كنت تريده أن يتذكر أشياء محددة، فماذا ستفعل؟ سوف
00:09:54تضعها في Claude.md؛ نظرياً هو نطاق أصغر قليلاً من شيء مثل الـ RAG، كما تعلم
00:10:00نحن لا نضع مستندات كاملة هنا، ولكنها أشياء تريد من كود كلود أن
00:10:05يتذكرها دائماً واتفاقيات تريد منه اتباعها. لهذا النموذج لدينا قسم "عني"
00:10:09ولدينا تفصيل لهيكل نظام الملفات وكيف نريده أن يعمل فعلياً عندما
00:10:14نعطيه الأوامر؛ وكما قلت، لأنه يتم الرجوع إليه في كل مطالبة تقريباً، فإن كود كلود
00:10:18جيد جداً في اتباع هذا. لذا فكرة "مهلاً، أردته أن يتذكر أشياء محددة"
00:10:22تبدو مكاناً رائعاً لوضعها، ولكن علينا أن نكون حذرين لأننا يمكن أن نبالغ في ذلك؛ فعندما ننظر إلى
00:10:28دراسات مثل هذه التي تقيم ملف agents.md، ويمكنك استبدال agents.md بـ Claude.md
00:10:33وجدوا في الدراسة أن هذه الأنواع من الملفات يمكن أن تقلل فعلياً من فعالية نماذج
00:10:40اللغة الكبيرة بشكل عام، ولماذا ذلك؟ حسناً، لأن الشيء الذي يجعلها جيدة جداً، حقيقة
00:10:45أنه يتم حقنها في كل مطالبة تقريباً، هو أيضاً ما يمكن أن يجعلها سيئة جداً؛ فهل نحن فعلياً
00:10:51نحقن السياق الصحيح؟ هل اخترقنا الضوضاء وأعطيناه فعلياً
00:10:57إشارة مناسبة، أم أننا نلقي فقط بأشياء نعتقد أنها جيدة؟ لأنه إذا لم يكن الأمر وثيق الصلة بـ
00:11:02كل مطالبة ستفعلها تقريباً في مشروعك، فهل يجب أن يكون هنا في Claude.md؟
00:11:08هل هذه طريقة جيدة للسماح لكود كلود بتذكر الأشياء؟ أود أن أجادل بأن الإجابة لا، ليس تماماً، وهذا
00:11:15يتعارض مع ما يقوله الكثير من الناس حول Claude.md وكيف يجب عليك هيكلته؛ فبناءً على دراسات
00:11:20كهذه وبناءً على الخبرة الشخصية، الأقل هو الأكثر؛ تلوث السياق حقيقي وتآكل السياق حقيقي
00:11:26لذا إذا كان هناك شيء داخل Claude.md ولا يبدو منطقياً لكل
00:11:32مطالبة تعطيها له، فهل يجب أن يكون هناك؟ الإجابة هي لا، لكن معظم الناس لا يدركون ذلك و
00:11:37بدلاً من ذلك يقعون في فخ "كتاب القواعد المتضخم". بدلاً من ذلك، المهارات التي يجب أن نتقنها
00:11:42هي: كيف ننشئ سياق مشروع ذو إشارة عالية؟ كيف أتأكد من أن ما أضعه فعلياً
00:11:48داخل هذا الشيء منطقي؟ ومع ذلك تأتي فكرة الوعي بتآكل السياق كما تحدثنا
00:11:53في المستوى الماضي؛ وعندما تأخذ كل ذلك معاً، تشعر في المستوى الثاني وكأنك
00:11:57تتحرك للأمام، وكأنك تتخذ دوراً نشطاً في الذاكرة بوجود ملف Claude.md هذا، ثم تدرك
00:12:02أنه ليس كافياً حقاً. وعندما نتحدث عن المستوى الثالث وما يمكننا فعله للمضي قدماً هناك
00:12:08نريد التفكير في شيء ليس كتاب قواعد ثابت، بل شيء يمكن أن يتطور و
00:12:14هو شيء يمكن أن يتضمن Claude.md؛ فبدلاً من الاعتماد على Claude.md للقيام بكل شيء، ماذا لو
00:12:18استخدمنا Claude.md كنوع من ملف الفهرس الذي يوجه كود كلود في الاتجاه الصحيح بدلاً من ذلك؟
00:12:24حسناً، ماذا قصدت بكون Claude.md يعمل كنوع من الفهرس ويوجه نحو ملفات أخرى؟
00:12:30حسناً، أنا أتحدث عن بنية داخل قاعدة الكود الخاصة بك لا تحتوي فقط على ملف Markdown واحد” يحاول التعامل مع جميع مشاكل الذاكرة في شكل Claude.md؛ أنا أتحدث عن
00:12:37امتلاك ملفات متعددة لمهام محددة. أعتقد أن مثالاً رائعاً على هذا قيد التنفيذ هو ما تفعله
00:12:41أداة التنسيق GSD (Get Shit Done)؛ فهي لا تكتفي بإنشاء ملف واحد يقول "هذا ما
00:12:47سنقوم ببنائه، وهذه هي المتطلبات، وهذا ما فعلناه وإلى أين نحن ذاهبون"
00:12:53بدلاً من ذلك، تقوم بإنشاء ملفات متعددة؛ يمكنك أن ترى هنا على اليسار لدينا project.md و requirements.md
00:12:56و roadmap و state. لذا المتطلبات موجودة حتى يعرف كود كلود دائماً ويكون لديه ذاكرة لـ
00:13:02ما يفترض أن يبنيه، وخارطة الطريق تفصل ما الذي سنقوم
00:13:08بإنشائه بالضبط ليس الآن فقط، بل ما فعلناه في الماضي وفي المستقبل، والمشروع يعطيه
00:13:12ذاكرة، يعطيه سياقاً لما نقوم به في نظرة عامة رفيعة المستوى؛ ما هو هدفنا الأساسي؟
00:13:16ومن خلال تقسيم الذاكرة والسياق والاتفاقيات في هذا النوع من الأنظمة، فإننا نحارب فكرة
00:13:22تآكل السياق والفكرة التي طرحت في تلك الدراسة، وهي أن حقن هذه الملفات في كل
00:13:29مطالبة طوال الوقت كما نفعل في Claude.md هو في الواقع أمر غير بديهي ولا يساعدنا في الحصول على
00:13:34مخرجات أفضل. علاوة على ذلك، فإن تقسيمها إلى هذه الأجزاء وامتلاك مسار واضح لكلود
00:13:39ليسلكه ويقول "أريد معرفة مكان هذه المعلومة، سأذهب إلى Claude.md"
00:13:44ثم يجد أن Claude.md يقول "هذه هي الخيارات الخمسة المتاحة لي، حسناً، ها هو هذا الخيار، دعني أذهب وأجده"
00:13:49هذا النوع من الهيكل هو ما ستراه 100% في المستوى التالي عندما نتحدث عن
00:13:54Obsidian، وهو في الحقيقة نوع من إعادة تصور خام لنظام التقسيم و
00:13:58البحث عن تشابه المتجهات الذي نراه في أنظمة الـ RAG الحقيقية؛ ولكن من الواضح أن هذا نطاق صغير
00:14:04في هذا المستوى؛ نحن نتحدث عن أربعة ملفات Markdown هنا، ولا نتحدث عن نظام
00:14:10يمكنه التعامل مع آلاف وآلاف وآلاف المستندات. ولكن، كما ستسمعني أتحدث
00:14:14كثيراً، ماذا يعني ذلك بالنسبة لك؟ هل تحتاج لنظام سنتحدث عنه في المستويات أربعة و
00:14:20خمسة وستة وسبعة يمكنه التعامل مع هذا العدد من المستندات؟ الإجابة هي ربما لا، ولذا فإن جزءاً من هذه
00:14:26الرحلة مع الـ RAG هو فهم ليس فقط موقعك الحالي بل وإلى أين تحتاج للذهاب فعلاً؟ هل
00:14:32تحتاج دائماً لتكون في المستوى السابع وتعرف كيفية القيام بنظام RAG وكيل داخل كود كلود؟
00:14:36من الجيد غالباً معرفة كيفية القيام بذلك، ولكن من الجيد أيضاً معرفة متى لا تحتاج لـ
00:14:41تنفيذ ذلك؛ ففي بعض الأحيان يكون ما نراه في أنظمة مثل هذه كافياً لكثير من الناس
00:14:46لذا من المهم معرفة كيفية القيام بذلك ومعرفة ما إذا كنت تحتاج لذلك وهل يجب عليك فعله؟
00:14:52عندما نتحدث عن المستوى الثالث ونتحدث عن ملفات الحالة (state files)، كيف نعرف أننا هنا؟
00:14:58حسناً، نحن نعلم أننا هنا عندما نكون لا نزال حصرياً داخل نظام كود كلود البيئي؛ لم نقم
00:15:00بدمج أدوات أو تطبيقات خارجية، وفي الحقيقة نحن فقط في المكان الذي ننشئ فيه
00:15:04ملفات Markdown متعددة لإنشاء نظام تقسيم الذاكرة المنزلي الخاص بنا؛
00:15:09لكن هذا لا يزال مهماً حقاً؛ نحن لا نزال نتقن بعض المهارات الحقيقية هنا؛ فكرة
00:15:14هيكلة المستندات فعلياً، وامتلاك نظام ما لتحديث الحالة في كل
00:15:18جلسة، لأن هذه قد تكون مشكلة في الـ RAG أيضاً؛ كيف تتأكد من أن كل شيء محدث؟
00:15:23واحتمال كبير أنك بدأت أيضاً في الاعتماد على طبقات التنسيق في هذه المرحلة مثل
00:15:28GSD و Superpowers التي تقوم بأشياء كهذه، أي بنية ملفات Markdown المتعددة هذه من تلقاء نفسها؛ ولكن
00:15:33هناك فخ حقيقي هنا؛ ما ننشئه في هذا المشروع هو مخصص لهذا المشروع فقط؛
00:15:40ومن المربك نوعاً ما أخذ ملفات Markdown تلك ونقلها إلى مشروع آخر. لذا، فإن
00:15:46المستوى الرابع هو المكان الذي ندمج فيه Obsidian، وهذه أداة حظيت بضجة كبيرة
00:15:51ولسبب وجيه؛ فعندما تجد أشخاصاً مثل أندريه كارباثي يتحدثون عن هذه
00:15:56قواعد المعرفة لنماذج اللغة الكبيرة التي أنشأوها، والتي تم بناؤها لكل المقاصد والأغراض على أساس
00:16:00Obsidian، وهي تحصل على ما يقرب من 20 مليون مشاهدة، فيجب علينا على الأرجح الاستماع ورؤية كيف
00:16:06تعمل هذه الأداة فعلياً الآن. وللعلم، فقد قمت بعمل تحليل متعمق كامل حول
00:16:11قاعدة معرفة أندريه كارباثي لنماذج اللغة الكبيرة القائمة على Obsidian، سأضع رابطاً لذلك أعلاه؛ فإذا كنت تريد التركيز على
00:16:18كيفية بناء ذلك، فتأكد من مراجعة ذلك الفيديو أعلاه. وما أريد ذكره أيضاً لمعظم الناس هو أن
00:16:22موضوع Obsidian هذا الذي سنتحدث عنه هنا في المستوى الرابع، هو بصراحة المستوى الذي يجب على معظم الناس
00:16:27السعي للوصول إليه، لأن هذا كافٍ لمعظم الناس في معظم حالات الاستخدام؛ فعندما نتحدث عن المستويات خمسة و
00:16:32ستة وسبعة، سنتحدث عن هياكل الـ RAG الحقيقية، وبصراحة هي زائدة عن الحاجة لمعظم الناس؛
00:16:37هذا زائد عن الحاجة لمعظم الناس، فنحن نحب التحدث عن الـ RAG وكأنه رائع، وأنا أفهم ذلك، ولكن
00:16:43Obsidian هو ذلك الحل بنسبة 80% الذي يمثل في الواقع حلاً بنسبة 99% لمعظم الناس لأنه مجاني، و
00:16:50لا يتطلب أي تكاليف إضافية تقريباً، ويؤدي المهمة للمشغل الفردي؛ وعندما أقول إنه يؤدي المهمة
00:16:56للمشغل الفردي، أعني أنه يحل مشكلة ربط كود كلود بمجموعة من
00:17:02المستندات المختلفة وملفات Markdown المختلفة والقدرة على الحصول على معلومات دقيقة وفي وقتها
00:17:07منها، والحصول على نظرة ثاقبة لتلك المستندات كإنسان؛ لأنه عندما أنقر
00:17:13على هذه المستندات، يكون من الواضح جداً ما يدور بداخلها، ومن الواضح جداً ما هي المستندات
00:17:19المرتبطة بها؛ فعندما أنقر على هذه الروابط يتم نقلي إلى المزيد من المستندات، وعندما أنقر على هذه الروابط
00:17:24يتم نقلي إلى المزيد من المستندات، ولذا فبالنسبة لي كإنسان، فإن امتلاك هذه الرؤية أمر مهم
00:17:30لأن الرؤية القائمة على Obsidian للمستندات، بصراحة، أزعم أنها تتفوق على
00:17:36كثير من الرؤى التي تحصل عليها من أنظمة الـ RAG؛ فعندما نتحدث عن آلاف وآلاف
00:17:42المستندات التي يتم تضمينها في شيء مثل نظام GraphRAG، فإن هذا يبدو رائعاً بصرياً
00:17:47وثائق مدمجة في شيء مثل نظام RAG للرسوم البيانية، يبدو هذا رائعًا بصريًا
00:17:52ويبدو مذهلاً للغاية، هل تعرف حقًا ما الذي يحدث هنا؟ ربما تعرف، لكي أكون صادقًا
00:17:58أنت نوعًا ما تعتمد فقط على الإجابات التي تحصل عليها والتي ستظهر والروابط وما إلى ذلك، ولكن من
00:18:03الصعب قليلاً تتبع التضمينات، كل هذا لأقول إنه يجب عليك إيلاء اهتمام خاص
00:18:08لبرنامج Obsidian و Claude Code، لأننا عندما نتحدث عن هذه الرحلة من RAG، أقترح دائمًا
00:18:13على الجميع، بما في ذلك العملاء: لنبدأ بـ Obsidian ونرى إلى أي مدى يمكننا توسيع هذا
00:18:20وفي النهاية إذا واجهنا عائقًا، يمكنك دائمًا الانتقال إلى أنظمة RAG أكثر قوة، فلماذا لا
00:18:26تجرب الخيار البسيط؟ إذا نجح فهذا رائع، فهو مجاني ولا يكلفني شيئًا، مقابل محاولة بناء
00:18:31نظام RAG هذا الذي قد يكون من الصعب وضعه في الإنتاج اعتمادًا على ما تحاول
00:18:35القيام به؛ ابدأ دائمًا بالأشياء البسيطة، ليس من الصعب أبدًا الانتقال إلى شيء أكثر تعقيدًا
00:18:40إذًا عما نتحدث حقًا هنا في المستوى الرابع؟ ما نتحدث عنه هو أخذ
00:18:45ذلك النوع من الهيكل الذي بدأنا في بنائه في المستوى الثالث، كما تعلمون، بملف فهرس يشير إلى
00:18:50ملفات markdown مختلفة وتوسيع ذلك، ثم جلب هذه الأداة الخارجية Obsidian لجعل
00:18:56الأمر سهلاً بالنسبة لك كإنسان لرؤية هذه الروابط فعليًا، والنموذج المثالي لهذا الإصدار
00:19:00هو تقريبًا ما وضعه أندريه كارباثي في بناء قاعدة معرفية للنماذج اللغوية الكبيرة فوق Obsidian
00:19:05ومدعومة بـ Claude Code، وما يبدو عليه ذلك هو هيكل مثل هذا، فعندما تستخدم Obsidian
00:19:11وتقوم بتنزيله، فهو مجاني تمامًا مرة أخرى، ارجع إلى ذلك الفيديو الذي نشرته سابقًا، ستقوم بتعيين
00:19:16ملف معين كـ "Vault" (خزنة)، فكر في الخزنة كنوع من نظام RAG، هذا النظام
00:19:23شبه RAG الذي أنشأته، وداخل الخزنة نقوم بعد ذلك بهندسة وتنسيق ذلك باستخدام
00:19:30الملفات فقط؛ لدينا الملف الشامل المسمى الخزنة، وداخل تلك الخزنة ننشئ مجلدات
00:19:36فرعية متعددة، في حالة أندريه كارباثي يتحدث عن ثلاثة مجلدات فرعية مختلفة، والحقيقة هي أنها
00:19:41يمكن أن تكون أي مجلدات فرعية، المهم فقط أن تتطابق مع الموضوع الذي سنتحدث عنه، في
00:19:47أحد المجلدات لدينا البيانات الخام، هذا هو كل شيء نقوم باستيعابه ونريد تنظيمه في النهاية
00:19:52ليتمكن Claude Code من الرجوع إليه لاحقًا، تخيل مثلاً أنك تجعل Claude Code يقوم بتحليل تنافسي لـ
00:19:5850 من منافسيك ويسحب 50 موقعًا لكل منهم، أليس كذلك؟ نحن نتحدث عن كمية كبيرة من
00:20:03المعلومات، ربما 2500 شيء مختلف، كل ذلك سيتم وضعه في نوع من المجلد الخام
00:20:08هذا مثل منطقة الانتظار للبيانات، ثم لدينا مجلد الويكي، مجلد الويكي هو المكان الذي
00:20:14تذهب إليه البيانات المنظمة؛ ثم نجعل Claude Code يأخذ هذه البيانات الخام وينظمها بشكل أساسي
00:20:20إلى مقالات مختلفة تشبه مقالات ويكيبيديا داخل مجلد الويكي، وكل مقال يحصل على مجلد خاص به
00:20:28الفكرة هي أنه عندما تسأل Claude Code عن معلومات حول، لنقل مثلاً أننا جعلناه
00:20:33يبحث عن أشياء حول وكلاء الذكاء الاصطناعي وأقول له: يا Claude Code، حدثني عن وكلاء الذكاء الاصطناعي بنفس
00:20:38الطريقة التي تستعلم بها في نظام RAG، حسنًا، سيذهب Claude Code إلى الخزنة، ومن الخزنة
00:20:45سيذهب إلى الويكي، والويكي يحتوي على ملف markdown للفهرس الرئيسي، فكر في نوع ما كنا
00:20:50نتحدث عن فعله بملف claud.md من قبل، أليس كذلك؟ ترى كيف تنتقل هذه الموضوعات
00:20:56عبر المستويات المختلفة، يلقي نظرة على ذلك الفهرس الرئيسي، والفهرس الرئيسي يخبره بما
00:21:00هو موجود في نظام Obsidian RAG هذا، أوه، وكلاء الذكاء الاصطناعي موجودون؟ رائع، خمن ما يحدث هنا، لديه
00:21:08أيضًا ملف فهرس يتحدث عن المقالات الفردية الموجودة، ما الذي أقوله هنا؟ أنا
00:21:14أقول إن هناك تسلسلًا هرميًا واضحًا لـ Claude Code للرجوع إليه عندما يريد العثور على معلومات حول
00:21:21الملفات: الخزنة، الويكي، الفهرس، المقال، إلخ، ولأنه من الواضح جدًا كيفية العثور على المعلومات، وأيضًا
00:21:31من الواضح جدًا العثور أولاً على المعلومات وتحويلها إلى ويكي، يمكننا إنشاء نظام يحتوي على الكثير من
00:21:37الوثائق بدون RAG، المئات والآلاف إذا فعلت هذا بشكل صحيح، لأنه إذا كان النظام واضحًا، مثل
00:21:44أتحقق من الخزنة وأتحقق من الفهرس وهذا لديه تحديد واضح لمكان كل شيء، حسنًا
00:21:50فلن يكون من الصعب جدًا على Claude Code معرفة مكان العثور على الأشياء، وبالتالي يمكنك النجاح
00:21:54بهيكل غير قائم على RAG لآلاف الوثائق، وكان من الصعب جدًا القيام بذلك في الماضي
00:21:58وذلك لأن معظم الناس لا ينظمون أي شيء بأي نوع من الهيكل، لديهم فقط مليار
00:22:02وثيقة ملقاة في مجلد واحد، إنه يعادل وجود 10 ملايين ملف مبعثر في أرضية المصنع
00:22:08وتقول: هل سيجدها Claude Code؟ لا، أنت في الواقع تحتاج فقط إلى خزانة ملفات؛ فـ Claude
00:22:13Code ذكي جدًا في الواقع، ويمكنك رؤية تلك الهندسة المعمارية قيد التنفيذ هنا تمامًا؛ حاليًا نحن
00:22:17ننظر إلى ملف claud.md الموجود في خزنة Obsidian، وماذا يقول؟ حسنًا
00:22:24يفصل هيكل الخزنة، ونظام الويكي، والهيكل العام للمجلدات الفرعية في
00:22:30كيفية تشغيله أساسًا؛ مرة أخرى، نحن نستخدم claud.md كملف اتفاقيات هنا على اليسار
00:22:36يمكنك رؤية مجلد الويكي، وداخل مجلد الويكي يوجد فهرس رئيسي يسرد ما يوجد بداخل
00:22:43هناك، في هذه الحالة هناك مقال واحد فقط، وهو عن وكلاء Claude المُدارين، وداخل ذلك المجلد نرى
00:22:49وكلاء Claude المُدارين، وله مجلد ويكي خاص به يفصل المقالات بالداخل حتى تصل
00:22:55إلى المقال الفعلي نفسه؛ لذا فالخطوات التي يحتاج لاتخاذها واضحة جدًا، وعندما أقول لـ Claude Code
00:23:01حدثني عن الوكلاء المُدارين، ولدينا ويكي عن ذلك، فمن السهل جدًا عليه البحث عنها عبر
00:23:06أداة grep المدمجة لديه، فيقوم بربطي بملف markdown الفعلي ثم يفصل كل
00:23:12شيء يحدث، الآن السؤال في المستوى الرابع يصبح حقًا مسألة نطاق: كم عدد الوثائق
00:23:16التي يمكننا التعامل معها حيث يستمر هذا النوع من الأنظمة في العمل؟ هل هناك نقطة يبدأ عندها
00:23:22نظام أندريه كارباثي في الانهيار؟ حيث تقول: حسنًا، فهمت، إنه مسار واضح جدًا يجب على Claude
00:23:26Code اتباعه، يذهب إلى الفهارس وإلى آخره، هل يستمر ذلك عند
00:23:312000 وثيقة؟ 2500؟ 3000؟ هل هناك رقم واضح؟ الإجابة هي أننا لا نعرف حقًا وهناك
00:23:37رقم مبكر لأن جميع وثائقك مختلفة أيضًا، وفيما يتعلق بالوصول إلى حائط مسدود، فالأمر ليس
00:23:43ببساطة أن Claude Code يعطينا إجابات خاطئة بسبب وجود ملفات كثيرة جدًا في
00:23:47نظام Obsidian، بل كم يكلفك ذلك من حيث الرموز (tokens) الآن بعد أن أضفنا الكثير من الملفات وبأي
00:23:52سرعة يفعل ذلك؟ لأن RAG يمكن أن يكون في الواقع أسرع وأرخص بشكل لا نهائي في حالات معينة
00:23:59ما نراه هنا هو مقارنة بين النماذج اللغوية النصية (في الأشرطة العملاقة) و RAG
00:24:06النصي من حيث كمية الرموز التي استغرقها الحصول على الإجابة الصحيحة ومقدار الوقت الذي
00:24:11استغرقه الحصول على تلك الإجابة؛ ماذا نرى هنا؟ نرى أن هناك فرقًا هائلاً بين RAG
00:24:18النصي مقابل النماذج اللغوية النصية؛ يصل إلى حوالي 1200 ضعف؛ أقول إن RAG أرخص بـ 1200
00:24:25مرة وأسرع بـ 1200 مرة من النماذج اللغوية النصية في هذه الدراسات؛ الآن للتوضيح، تم هذا في عام 2025
00:24:33ولم يتم مع Claude Code، فهذه النماذج تغيرت بشكل كبير منذ ذلك الحين، هذه مجرد نماذج لغوية
00:24:37ليست لفنانين برمجيين وما إلى ذلك؛ ومع ذلك، كنا نتحدث عن فرق 1200 ضعف، لذا عندما نقيم
00:24:48ما إذا كان Obsidian هو ما يجب أن أفعله مقابل ما إذا كان يجب علي فعل نظام RAG، فالأمر ليس ببساطة
00:24:54فقط ما إذا كان يعطي الإجابة الصحيحة أم لا، لأنه يمكن أن يكون لديك سيناريو
00:24:59تحصل فيه على الإجابة الصحيحة مع Obsidian، ومع ذلك إذا ذهبت إلى RAG فسيكون أرخص بألف مرة
00:25:04وأسرع، أليس كذلك؟ لذا فهو هذا الخط الضبابي جدًا بين متى يكون Obsidian جيدًا بما يكفي
00:25:10وهذا النوع من هندسة ملفات markdown جيدًا بما يكفي وبين متى نحتاج لاستخدام RAG
00:25:15لا توجد إجابة رائعة، ليس لدي إجابة رائعة لك، الإجابة هي أنه عليك التجربة
00:25:18وعليك تجربة كليهما ورؤية ما ينجح، لأن هذا بصراحة قديم تمامًا، دراسة 2025 لنماذج أقدم
00:25:25الفرق بين RAG والنماذج اللغوية النصية ليس 1200 مرة، ولكن إلى أي مدى تضاءلت تلك الفجوة؟
00:25:32لأن هذه فجوة جنونية، فهي ليست 10 أضعاف، بل 1200 ضعف؛ لذا هناك الكثير مما يجب أن تعرفه و
00:25:39مرة أخرى، لن تعرف الإجابة مسبقًا، لن تعرفها ببساطة؛ شاهد كل الفيديوهات التي تريدها
00:25:45فلن يخبرك أحد أين يوجد ذلك الخط الفاصل، عليك حرفيًا أن تجري تجاربك الخاصة
00:25:49وترى ما يناسبك مع زيادة كمية الوثائق التي تطلب من Claude Code
00:25:54الإجابة عن أسئلة حولها؛ في هذا الصدد، دعونا ننتقل إلى المستوى الخامس حيث نبدأ أخيرًا
00:25:59في التحدث عن أنظمة RAG الحقيقية ونتحدث عن بعض أساسيات RAG مثل التضمينات (embeddings)
00:26:04وقواعد البيانات المتجهة (vector databases) وكيف تتدفق البيانات فعليًا عبر النظام عندما تصبح جزءًا من
00:26:10قاعدة معرفة RAG الخاصة بنا؛ لذا دعونا نبدأ بالتحدث عن RAG البسيط (naive RAG) وهو النوع الأساسي من
00:26:16RAG الموجود ولكنه يوفر الأساس لكل شيء آخر نقوم به؛ الآن يمكنك التفكير في أنظمة RAG
00:26:21على أنها مقسمة إلى ثلاثة أجزاء؛ على الجانب الأيسر لدينا مرحلة التضمين، ثم
00:26:27لدينا قاعدة البيانات المتجهة، ثم لدينا الاسترجاع الفعلي الذي يحدث مع النموذج اللغوي
00:26:33الكبير؛ واحد واثنان وثلاثة، ولتوضيح هذا النموذج بشكل أفضل، دعونا نبدأ برحلة
00:26:40وثيقة ستكون جزءًا من قاعدة معرفتنا؛ تذكر في نظام RAG كبير يمكننا التحدث عن آلاف
00:26:45الوثائق وكل وثيقة يمكن أن تكون آلاف الصفحات، ولكن في هذا المثال لدينا وثيقة من صفحة
00:26:50واحدة نتحدث عنها؛ الآن إذا أردنا إضافة هذه الوثيقة إلى قاعدة بياناتنا، فالطريقة التي
00:26:56ستعمل بها هي أنها لن يتم استيعابها كوحدة كاملة، وبدلاً من ذلك سنأخذ هذه الوثيقة
00:27:03ونقوم بتقطيعها إلى قطع (chunks)؛ لذا فإن هذه الصفحة الواحدة تصبح أساسًا ثلاث قطع
00:27:08مختلفة؛ يتم إرسال هذه القطع الثلاث إلى نموذج تضمين، ومهمة نموذج التضمين هي أخذ
00:27:15هذه القطع الثلاث وتحويلها إلى متجه (vector) في قاعدة بيانات متجهة؛ الآن قاعدة البيانات
00:27:21المتجهة هي مجرد نوع مختلف من قاعدة بياناتك القياسية؛ عندما نتحدث عن قاعدة بيانات
00:27:27قياسية فكر في شيء مثل مستند Excel، أليس كذلك؟ لديك أعمدة ولديك صفوف، حسنًا
00:27:32في قاعدة البيانات المتجهة، هي ليست أعمدة وصفوف ثنائية الأبعاد، بل هي في الواقع مئات
00:27:37بل آلاف الأبعاد؛ ولكن لأغراض اليوم، فكر فقط في رسم بياني ثلاثي الأبعاد مثل
00:27:43الذي تراه هنا، والمتجهات هي مجرد نقاط في ذلك الرسم البياني، وكل نقطة يتم تمثيلها
00:27:50بسلسلة من الأرقام؛ لذا يمكنك أن ترى هنا لدينا الموز، والموز يتم تمثيله بـ
00:27:570.52 و 5.12 ثم 9.31 كما ترى هناك بالأعلى؛ يستمر ذلك لمئات الأرقام
00:28:06الآن أين يتم وضع كل متجه في هذا الرسم البياني العملاق متعدد الأبعاد يعتمد على معناه
00:28:13الدلالي؛ ماذا تعني الكلمات فعليًا؟ لذا يمكنك أن ترى هنا أن هذا هو قسم
00:28:19الفاكهة، لدينا موز ولدينا تفاح ولدينا كمثرى، وهنا لدينا سفن ولدينا قوارب
00:28:24لذا بالعودة لوثيقتنا، لنتخيل أن هذه الوثيقة هي عن سفن الحرب العالمية الثانية
00:28:31إذًا كل قطعة من هذه القطع سيتم تحويلها إلى سلسلة من الأرقام وتلك السلسلة من الأرقام
00:28:37سيتم تمثيلها كنقطة في هذا الرسم البياني، أين تعتقد أنها ستذهب؟ حسنًا، من المحتمل
00:28:42أن تذهب حول هذه المنطقة، أليس كذلك؟ ستكون هذه هي الأولى والثانية والثالثة؛ هكذا يتم وضع
00:28:49الوثائق؛ كل وثيقة سيتم تقطيعها، وكل قطعة تمر عبر نموذج التضمين، ونموذج التضمين
00:28:54يدخلها في قاعدة البيانات المتجهة؛ كرر وكرر لكل وثيقة، وفي النهاية بعد أن نفعل ذلك
00:28:58عدة آلاف من المرات، نحصل على قاعدة بيانات متجهة تمثل رسمنا البياني المعرفي
00:29:04بمعنى ما، قاعدتنا المعرفية، وهذا ينقلنا إلى الخطوة الثالثة وهي جزء الاسترجاع
00:29:09إذًا أين يكمن دورك في هذا؟ حسنًا، عادةً لنصورك أنت، سنعطيك لونًا
00:29:16مختلفًا، ستكون أنت باللون الوردي؛ هذا أنت، حسنًا؟ أنت عادةً تتحدث فقط إلى
00:29:23Claude Code وتسأله أسئلة عن بوارج الحرب العالمية الثانية؛ حسنًا، في وضعك
00:29:29القياسي الذي لا يستخدم RAG، ماذا سيحدث؟ النموذج اللغوي الكبير Opus 4.6 سيلقي
00:29:34نظرة على بيانات تدريبه ثم سيعطيك إجابة بناءً على معلومات بيانات تدريبه
00:29:39عن بوارج الحرب العالمية الثانية؛ ولكن مع نظام RAG، سيفعل أكثر من ذلك، سيقوم
00:29:44باسترجاع المتجهات المناسبة، وسيستخدم تلك المتجهات لتعزيز الإجابة التي يولدها
00:29:51لك، ومن هنا جاء مسمى "التوليد المعزز بالاسترجاع" (RAG)؛ هذه هي قوة RAG، فهي تسمح لنماذجنا
00:29:56اللغوية الكبيرة بجلب معلومات ليست جزءًا من بيانات تدريبها لتعزيز إجابتها في هذا
00:30:02المثال عن بوارج الحرب العالمية الثانية؛ نعم أفهم أن النموذج اللغوي الكبير يعرف ذلك بالفعل ولكن
00:30:06استبدل هذا بأي نوع من البيانات الخاصة بالشركة التي لا تتوفر ببساطة على الويب وافعل ذلك
00:30:15على نطاق واسع، هذا هو هدف RAG؛ الآن في مثالنا عندما نسأل Claude Code عن
00:30:21معلومات حول بوارج الحرب العالمية الثانية وهو في وضع RAG، ما سيفعله هو أنه
00:30:25سيأخذ سؤالنا ويحوله إلى سلسلة من الأرقام مشابهة للمتجهات هنا، ثم سيلقي
00:30:32نظرة على ماهية الرقم لسؤالنا وأرقام المتجهات وسيرى أي من هذه المتجهات
00:30:39يطابق متجه السؤال بشكل أوثق، أليس كذلك؟ ما مدى تشابه المتجهات مع السؤال تقريبًا؟
00:30:46ثم سيسحب كمية معينة من المتجهات، سواء كان ذلك واحدًا أو اثنين أو ثلاثة أو أربعة أو خمسة
00:30:51أو عشرة أو عشرين، وسيسحب تلك المتجهات ومعلوماتها إلى النموذج اللغوي الكبير؛ لذا
00:30:56الآن أصبح لدى النموذج اللغوي الكبير إجابة بيانات تدريبه بالإضافة إلى، لنقل، 10 متجهات من
00:31:02المعلومات، أليس كذلك؟ كان ذلك جزء الاسترجاع، ثم يقوم بتعزيز وتوليد إجابة بتلك
00:31:09المعلومات الإضافية؛ وهذه هي طريقة عمل RAG، هكذا يعمل RAG البسيط؛ الآن هذا ليس
00:31:13فعالاً بشكل خاص لعدة أسباب؛ هذا الهيكل الأساسي ينهار في البداية عندما نبدأ
00:31:19في التفكير في: حسنًا، كيف نقوم بتقطيع هذه الوثائق؟ هل هو عشوائي؟ هل هو مجرد
00:31:25بناءً على عدد الرموز؟ هل لدينا عدد معين من التداخلات؟ هل الوثائق نفسها
00:31:31معدة بطريقة تجعل من المنطقي تقطيعها؟ لأنه ماذا لو كانت القطعة رقم ثلاثة تشير إلى
00:31:36شيء في القطعة رقم واحد؟ ثم في وضع المتجهات لدينا، عندما نسحب القطع، ماذا لو لم يحصل
00:31:42على القطعة الصحيحة؟ ماذا لو لم يحصل على تلك القطعة الأخرى المطلوبة كخلفية حتى يكون
00:31:47لما تقوله القطعة رقم ثلاثة معنى؟ هل تفهم ما أقول؟ في كثير من الأحيان تكون الوثيقة
00:31:53بأكملها مطلوبة للإجابة عن أسئلة حول هذه الوثائق؛ لذا فإن فكرة الحصول على هذه الإجابات
00:31:59المجزأة لا تعمل حقًا في الممارسة العملية؛ ومع ذلك، هكذا كان يتم إعداد RAG لفترة طويلة
00:32:05جدًا؛ هناك مشكلات أخرى يمكن أن تظهر، مثل ماذا لو كان لدي أسئلة حول
00:32:10العلاقات بين المتجهات المختلفة؟ لأنني الآن أقوم فقط بسحب المتجهات في صوامع منفصلة
00:32:17ولكن ماذا لو أردت معرفة كيف ترتبط القوارب بالموز؟ يبدو الأمر عشوائيًا ولكن ماذا لو فعلت؟
00:32:22في نهج قاعدة البيانات المتجهة و RAG البسيط هذا، كل شيء يكون نوعًا ما في صومعة، ومن الصعب
00:32:31ربط المعلومات وكثير من ذلك يعتمد فقط على مدى جودة تنظيم تلك الوثائق الأصلية
00:32:36هل هي منظمة بطريقة منطقية لعملية RAG؟ الآن على مر السنين توصلنا إلى بعض
00:32:41الطرق لتخفيف هذه المشكلات، أشياء مثل أدوات إعادة التصنيف (re-rankers) أو أنظمة التصنيف التي
00:32:46تلقي نظرة على جميع المتجهات التي نسحبها ثم تقوم أساسًا بإجراء تمريرة أخرى عليها
00:32:51بنموذج لغوي كبير لتصنيفها من حيث صلتها، ولكن بشكل عام فإن نظام RAG
00:32:56البسيط هذا قد عفا عليه الزمن، ومع ذلك لا يزال من المهم فهم كيفية عمله على المستوى
00:33:03التأسيسي حتى يتمكن من توجيه قراراتك إذا ذهبت نحو نهج RAG أكثر قوة
00:33:07لأنه إذا لم تفهم كيف يعمل التقطيع أو التضمينات، فكيف يمكنك اتخاذ قرارات
00:33:13حول كيفية تنظيم وثائقك؟ عندما نتحدث عن شيء مثل GraphRAG أو نتحدث عن
00:33:17أنظمة تضمين أكثر تعقيدًا مثل تلك الجديدة تمامًا من Google والتي يمكنها استيعاب
00:33:22ليس فقط النصوص بل الفيديوهات أيضًا، وإذا لم تفهم هذا النوع من الأساس فسيصعب عليك
00:33:27فهم هذا الفخ؛ والفخ هو أننا نوعًا ما أنشأنا محرك بحث رديء، لأنه مع
00:33:31أنظمة RAG البسيطة هذه حيث كل ما نفعله هو سحب القطع ولا يمكننا حقًا فهم العلاقات
00:33:36بينها، فما الفرق بين ذلك وبين وجود نظام "Ctrl+F" مفرط التعقيد؟ الإجابة
00:33:42هي أنه لا يوجد فرق كبير في الواقع، ولهذا السبب في هياكل RAG البسيطة والقديمة هذه
00:33:48والتي لا تزال منتشرة في كل مكان في الواقع؛ إذا رأيت شخصًا يقول: أوه، هذا نظام RAG
00:33:54الخاص بي على Pinecone أو نظام RAG الخاص بي على Supabase ولا يذكرون أي شيء عن GraphRAG
00:33:58أو لا يذكرون أي شيء عن وجود نظام إعادة تصنيف متطور لديهم، فإن النتائج ستكون
00:34:03سيئة لدرجة أن الفعالية الفعلية لهذا ستكون حوالي 25% من المرات التي تحصل فيها على
00:34:07شيء صحيح؛ أنت تقريبًا أفضل حالاً بالتخمين، لذا إذا كنت لا تعرف ذلك مسبقًا
00:34:12فيمكن بالتأكيد خداعك أو إرباكك أو في بعض الحالات الاحتيال عليك أساسًا لشراء
00:34:18أنظمة RAG هذه التي لا معنى لها؛ لذا فإن المستوى الخامس لا يتعلق بتنفيذ هذه الأنظمة
00:34:23البسيطة من RAG، بل يتعلق بفهم كيفية عملها بحيث عندما يحين الوقت لتنفيذ
00:34:28شيء أكثر تعقيدًا تفهم حقًا ما الذي يحدث؛ لأن ذلك الشرح لـ RAG في خمس دقائق
00:34:34هو للأسف شيء لا يفهمه معظم الناس عندما يقولون: أنا بحاجة لنظام RAG؛ حسنًا، هل
00:34:38أنت فعلاً بحاجة إليه؟ لأنه عليك أيضًا أن تسأل نفسك: ما نوع الأسئلة التي تطرحها
00:34:43فعليًا على نظامك؟ إذا كنت تعامل قاعدتك المعرفية كمجرد كتاب قواعد ضخم
00:34:48وتحتاج فقط لأشياء محددة من ذلك النظام المعرفي ليتم إحضارها، حسنًا، فإن
00:34:54Obsidian كافٍ على الأرجح أو يمكنك حتى النجاح مع نظام RAG بسيط؛ ولكن إذا كنا
00:34:59بحاجة لمعرفة العلاقات، إذا كنا بحاجة لمعرفة كيف يتفاعل "س" مع "ص" وهما وثيقتان
00:35:02منفصلتان لا يذكران بعضهما البعض حتى، وهو أمر لا يمكنني وضعه ببساطة داخل السياق
00:35:09مباشرة لأن لدي آلاف الوثائق، حسنًا، حينها ستحتاج إلى RAG
00:35:13وحينها ستحتاج إلى شيء أكثر تعقيدًا من RAG المتجهي الأساسي، حينها نحتاج للبدء
00:35:19بالتحدث عن GraphRAG؛ لذا عندما نتحدث عن المستوى السادس من Claude Code و RAG
00:35:23فنحن نتحدث عن GraphRAG ونتحدث عن هذا؛ وفي رأيي، إذا كنت ستستخدم RAG
00:35:29فهذا هو أدنى مستوى من البنية التحتية التي تحتاج لإنشائها؛ هذا يستخدم LightRAG
00:35:34وهي أداة مفتوحة المصدر تمامًا، سأضع رابطًا بالأعلى حيث أشرح بالتفصيل كيفية استخدامها
00:35:39وكيفية بنائها، ولكن فكرة GraphRAG واضحة جدًا: هي فكرة أن كل شيء متصل؛
00:35:44هذه ليست قاعدة بيانات متجهة مع مجموعة من المتجهات في صوامع منفصلة، بل هي مجموعة
00:35:50من الأشياء المتصلة ببعضها البعض؛ عندما أنقر على هذه الوثيقة يمكنني أن أرى هنا على اليمين
00:35:55وسأحرك هذا، وصف المتجه، الاسم، النوع، الملف، القطعة، والأهم من ذلك
00:36:00العلاقات المختلفة؛ وهذا النهج القائم على العلاقات يؤدي إلى نتائج أكثر فعالية؛
00:36:05إليك رسم بياني من صفحة LightRAG على GitHub؛ عمر هذا حوالي ستة إلى ثمانية أشهر
00:36:10ومن الجدير بالذكر أن LightRAG هو أخف نظام GraphRAG موجود هناك أعرفه، فهناك
00:36:15إصدارات قوية جدًا بما في ذلك GraphRAG نفسه من Microsoft؛ إنه رسم بياني ويسمى حرفيًا
00:36:23GraphRAG؛ ولكن عندما نقارن RAG البسيط بـ LightRAG ففي جميع المجالات نحصل على
00:36:30قفزات تتجاوز غالبًا 100 بالمائة، أليس كذلك؟ 31.6 مقابل 68.4، و 24 مقابل 76
00:36:35و 24 مقابل 75 وهكذا دواليك؛ ومع ذلك، وفقًا لـ LightRAG فإنه يتفوق
00:36:43بنسبة 24 مقابل 75 وهكذا دواليك، ومع ذلك، ووفقًا لـ LightRAG فإنه
00:36:49يصمد فعليًا ويتفوق على GraphRAG نفسه؛ لكن مهلاً، هذه أرقام LightRAG لذا
00:36:54خذها بحذر. الآن، عندما ننظر إلى نظام الرسم البياني للمعرفة هذا، فمن المحتمل
00:36:58أن يتبادر ذهنك فورًا إلى Obsidian لأن هذا يبدو مشابهًا جدًا، ومع ذلك،
00:37:04ما نراه هنا في Obsidian هو أكثر بدائية بكثير مما يحدث داخل LightRAG
00:37:10أو أي نظام GraphRAG، لأن هذه السلسلة من الاتصالات التي نراها هنا يدوية تمامًا
00:37:16وعشوائية إلى حد ما؛ فهي متصلة فقط لأننا حددنا المستندات ذات الصلة، أو حددها Claude Code
00:37:22عندما أنشأ هذا المستند تحديدًا، على سبيل المثال، بمجرد إضافة بعض الأقواس، بوم، أصبح المستند متصلاً.
00:37:27لذا نظريًا، يمكنني ربط مجموعة من المستندات العشوائية التي ليس لها علاقة ببعضها في الواقع.
00:37:30بما أن Claude Code ليس غبيًا، فلن يفعل ذلك، لكن هذا يختلف كثيرًا
00:37:35عما حدث هنا؛ فهذا مر بنظام تضمين فعلي، ونظر في المحتوى الحقيقي،
00:37:41وحدد علاقة، وأرسل كيانًا؛ هناك عمل أكبر بكثير يجري هنا داخل
00:37:46LightRAG فيما يتعلق بتحديد العلاقات مقارنة بـ Obsidian. الآن، هل هذا الفرق
00:37:52يعادل فعليًا فجوة هائلة في الأداء على مستوى منخفض؟ ربما في النطاقات الضخمة،
00:38:02مرة أخرى، نحن في تلك المنطقة الرمادية، فالأمر يعتمد نوعًا ما على نطاق عملك وما نتحدث عنه فعليًا،
00:38:07ولا أحد يستطيع الإجابة على هذا السؤال سواك ومن خلال الخبرة الشخصية؛ لكن افهم أن هذين
00:38:13الشيئين ليسا متماثلين، نحن لسنا متماثلين يا أخي، فهما نظامان مختلفان تمامًا، أحدهما
00:38:20متطور للغاية والآخر بدائي جدًا. افهم ذلك، ولنختتم المستوى السادس في GraphRAG،
00:38:26نحن هنا حقًا عندما نقرر أن أشياء مثل Obsidian لا تعمل، ولا يمكننا استخدام
00:38:31شيء مثل RAG التقليدي لأنه ببساطة لا يعمل، ونحتاج لشيء يمكنه استخراج الكيانات
00:38:36والعلاقات والاستفادة حقًا من تصميم نظام استعلام هجين يجمع بين المتجهات والرسم البياني.
00:38:43لكن هناك بعض الفخاخ، وبعض العقبات الخطيرة، حتى هنا في المستوى السادس عندما نتحدث
00:38:48عن LightRAG، فهذا مجرد نص. ماذا لو كان لدي ملفات PDF قابلة للمسح؟ ماذا لو كان لدي فيديوهات؟
00:38:55ماذا لو كان لدي صور؟ نحن لا نعيش في عالم ستكون فيه جميع مستنداتك مجرد ملفات Google Docs،
00:39:01إذًا ماذا نفعل في تلك الحالات؟ لذا فإن الاسترجاع متعدد الوسائط أمر ضخم، وعلاوة على ذلك ماذا
00:39:06عن جلب بعض الصفات الوكيلة لهذه الأنظمة؟ منحها المزيد من قوة الذكاء الاصطناعي، نوعًا من
00:39:11الدفعة في هذا المجال؟ حسنًا، إذا كنا نتحدث عن أشياء متعددة الوسائط، فيمكننا أخيرًا الانتقال
00:39:17إلى ما يشبه ذروة الـ RAG في يومنا هذا، واعتبارًا من أبريل 2026، هذا هو محور المستوى السابع.
00:39:24الآن، عندما نتحدث عن المستوى السابع في الـ RAG الوكيل، فإن الشيء الكبير الذي نريد التركيز عليه هنا
00:39:31هو الأشياء التي تتعلق باستيعاب البيانات متعددة الوسائط. لقد قدمنا فيديوهات عن هذه الأشياء، مثل
00:39:36Rag-Anything الذي يسمح لنا باستيراد الصور والمستندات غير النصية، فكر مرة أخرى في ملفات PDF
00:39:44القابلة للمسح الضوئي، وإدخالها في هياكل مثل الرسم البياني للمعرفة في LightRAG الذي رأيته هنا. لدينا أيضًا إصدارات جديدة مثل
00:39:49Gemini Embedding 2 الذي صدر للتو في مارس، والذي يسمح لنا فعليًا بتضمين الفيديوهات في قاعدة بيانات
00:39:56المتجهات الخاصة بنا، الفيديوهات نفسها، وبصراحة هذا هو الاتجاه الذي يسلكه هذا المجال. لم يعد كافيًا التعامل مع النصوص
00:40:01فقط. كم من المعلومات، وكم من المعرفة المحبوسة على الإنترنت، خاصة في أماكن
00:40:06مثل YouTube، حيث المحتوى مجرد فيديو؟ ونحن نريد أكثر من مجرد نص مفرغ أيضًا؛
00:40:10فالنص المفرغ لا يكفي. لذا فإن مشكلة تعدد الوسائط هذه حقيقية، ومرة أخرى، هذه أشياء
00:40:16صدرت منذ أسابيع فقط. والمستوى السابع هو أيضًا المكان الذي نحتاج فيه لبدء الانتباه إلى
00:40:20هندستنا ومساراتنا عندما يتعلق الأمر بالبيانات الداخلة والخارجة من نظام الـ RAG الخاص بنا. فليس
00:40:25كافيًا مجرد إدخال البيانات؛ هذا رائع، حسنًا لدينا كل هذه الروابط
00:40:30وما إلى ذلك، لكن كيف تصل البيانات إلى هناك؟ كيف تصل إلى هناك في سياق فريق عمل؟
00:40:35وكيف تخرج البيانات من هناك؟ ماذا لو تغيرت بعض المعلومات هنا في مستند
00:40:40معين؟ ماذا لو قام شخص ما بتعديله؟ كيف يتم تحديثه؟ ماذا لو أضفنا نسخًا مكررة؟ من يمكنه
00:40:46فعليًا وضع هذه الأشياء هناك؟ عندما يتعلق الأمر بأشياء على مستوى الإنتاج، فهذه كلها أسئلة
00:40:50تحتاج أن تبدأ بطرحها على نفسك. لذا عندما ننظر إلى نظام RAG وكيل مثل هذا النظام من
00:40:54n8n، يمكنك أن ترى أن الغالبية العظمى من البنية التحتية، كل ما هو موضح هنا، يتعلق كليًا
00:41:01باستيعاب البيانات ومزامنتها. هناك جزء صغير جدًا فقط له علاقة بالـ RAG، وهو
00:41:06موجود هناك؛ لأننا بحاجة لأنظمة تنظف البيانات وتكون قادرة على النظر في: حسنًا، لقد
00:41:11استوعبنا هذا المستند للتو، وفي الواقع كان هذا الإصدار الثاني من الإصدار الأول، فهل يمكننا الآن العودة وتنظيف تلك البيانات؟
00:41:17إليك شيء مثل مسار استيعاب البيانات حيث لا توضع المستندات مباشرة في
00:41:21النظام أو في LightRAG، بل نضعها بدلاً من ذلك داخل شيء مثل Google Drive، ومن هناك يتم استيعابها
00:41:27في نظام GraphRAG وتسجيلها. هذه هي أنواع الأشياء التي ستحدد نجاح أو فشل
00:41:31نظام الـ RAG الخاص بك عند استخدامه بشكل حقيقي. وعندما نتحدث عن الـ RAG الوكيل، يمكنك أن ترى هنا،
00:41:37وأعلم أن الصورة غير واضحة بعض الشيء، لكن إذا كان لدينا وكيل ذكاء اصطناعي يدير هذا البرنامج بالكامل؛ تخيل
00:41:42نوعًا من برامج الدردشة الآلية لفريقك، فهل يحتاج دائمًا للوصول إلى قاعدة البيانات هذه؟ الجواب هو
00:41:49على الأرجح لا. فمن المحتمل في بيئة الفريق أو بيئة العمل، أن يكون لديك معلومات
00:41:54في قاعدة بيانات مثل هذه كنصوص أو ما شابه، ولكن ربما لديك أيضًا مجموعة أخرى
00:41:58من قواعد البيانات مثل قواعد بيانات Postgres القياسية مع الكثير من المعلومات التي تريد الاستعلام عنها
00:42:03باستخدام SQL أيضًا. لذا عندما نتحدث عن نظام RAG وكيل، فنحن بحاجة لشيء يمتلك كل ذلك؛
00:42:08القدرة على اتخاذ قرار بذكاء: هل سأصل إلى قاعدة بيانات GraphRAG الممثلة
00:42:15هنا، أم سأقوم فقط ببعض استعلامات SQL في Postgres؟ هذه الأمور يمكن أن تصبح
00:42:20معقدة، صح؟ وكل هذا يعتمد على حالة الاستخدام، ولهذا السبب يصعب
00:42:23أحيانًا صنع هذه الفيديوهات ومحاولة تغطية كل حالة استثنائية. النقطة هنا في المستوى السابع ليست
00:42:30بالضرورة وجود نظام RAG خارق لم تسمع عنه من قبل، بل هي أن
00:42:34الشيطان يكمن في التفاصيل هنا، وهذا يتعلق في الغالب بجزء استيعاب البيانات وإبقائها
00:42:39محدثة، ولكن أيضًا بكيفية الوصول إلى هذا الشيء فعليًا. من السهل القيام بذلك في عرض توضيحي هنا:
00:42:46أوه، نذهب فقط إلى LightRAG وأذهب للاسترجاع وأطرح عليه الأسئلة. لكن السيناريو يختلف عندما
00:42:50نتحدث عن فريق عمل والجميع يتعامل معه من زوايا مختلفة، ومن
00:42:55المحتمل أنك لا تريد أن يتمتع الجميع بصلاحية رفعه إلى LightRAG نفسه عبر
00:43:01تطبيق ويب. ومع ذلك، بالنسبة للمشغل الفردي الذي يحاول إنشاء نوع من أنظمة الـ RAG المتطورة
00:43:07القادرة على القيام بأشياء متعددة الوسائط، أقترح مزيج Rag-Anything بالإضافة إلى LightRAG.
00:43:14لقد قمت بفيديو حول ذلك، وإذا لم أكن قد وضعته بالفعل فسأضع رابطه أعلاه. أقترح ذلك لبضعة
00:43:19أسباب؛ أولاً لأنه مفتوح المصدر وخفيف الوزن، لذا فالأمر ليس وكأنك تنفق الكثير من المال
00:43:26أو الوقت لتشغيل شيء كهذا للتأكد من أنه منطقي فعليًا لحالة استخدامك.
00:43:31مرة أخرى، الشيء الذي نريده هو ألا نعلق في أنظمة لا يوجد مخرج منها
00:43:37وقد أنفقنا الكثير من المال للوصول إليها، وهذا هو السبب في أنني أحب Obsidian وأوصي دائمًا بأشياء
00:43:42مثل LightRAG و Rag-Anything، لأنه مهلاً، إذا جربت هذا ولم ينفعك أو لم يكن
00:43:45منطقيًا؛ حسنًا، لا بأس، لقد أضعت بضع ساعات فقط، كما تعلم، فالأمر ليس وكأنك
00:43:50تنفق الكثير من المال على GraphRAG الخاص بـ Microsoft، وهو ليس رخيصًا بأي حال من الأحوال.
00:43:56إذًا متى تعرف أنك في المستوى السابع؟ حقًا عند الحاجة لأشياء متعددة الوسائط مثل فهرسة الصور والجداول والفيديوهات، وعندما
00:44:02تدمج نوعًا من نظام الوكلاء حيث يمكنه بذكاء تحديد المسار الذي سيسلكه
00:44:06للإجابة على المعلومات؛ لأنك في المستوى السابع من المحتمل أنك تدمج كل هذه الأشياء، فربما
00:44:12لديك ملف Claude MD مع بعض المعلومات الدائمة، وربما لديك في قاعدة كود مع بعض ملفات
00:44:16Markdown التي تبدو منطقية للاسترجاع السهل، وربما تتضمن أيضًا Obsidian
00:44:20في خزانة ما، بالإضافة إلى أنك تملك على الأرجح قسمًا من المستندات في قاعدة بيانات GraphRAG،
00:44:25ولديك نظام ذكاء اصطناعي في مقدمة المسار يمكنه تحديد: إذا سألوا هذا السؤال سأسلك
00:44:33هذا الطريق. هذه بنية ذاكرة ناضجة أقترحها؛ لكن ما هو الفخ هنا؟
00:44:40الفخ بصراحة هو محاولة إجبار نفسك على هذا المستوى وهذا النوع من التعقيد عندما
00:44:47لا تكون هناك حاجة فعلية لذلك. لكي نكون صادقين، بعد كل هذا، معظمكم يكتفي بـ Obsidian، فهو
00:44:52أكثر من كافٍ؛ لست بحاجة إلى GraphRAG، لست بحاجة إلى الـ RAG بشكل عام حقًا، وإذا لم يكن واضحًا أنك
00:44:57بحاجة للمستوى السابع، وبالتأكيد إذا لم تكن قد جربت مسار Obsidian بالفعل، فلا داعي لأن تكون هنا،
00:45:01فمن المحتمل أن يكون ذلك مضيعة لوقتك. لكن الغرض من هذا الفيديو بالكامل كان، وبأقصى ما في وسعي،
00:45:07هو كشف ما أراه كمستويات مختلفة للـ RAG والذاكرة و Claude Code وماهية
00:45:12هذه المشكلة، وما هي بعض التوترات وما هي المقايضات، وأين يجب أن تكون على الأرجح
00:45:18لحالة استخدامك. ومرة أخرى، أهم شيء هو مجرد التجربة، ليس عليك معرفة الإجابة
00:45:24قبل أن تبدأ في هذا، فقط جربها، وسأقوم بتجربتها بترتيب تصاعدي إن أمكن؛
00:45:28إذا كان بإمكانك الاكتفاء بملفات Markdown فقط في نظام Claude وهي أساسًا مجرد ملف Claude.md مطور، رائع، استمر.
00:45:34ثم جرب Obsidian، وإذا لم يكن Obsidian كافيًا جرب LightRAG وهكذا دواليك. إذًا هذا هو
00:45:39المكان الذي سأترككم فيه اليوم. إذا أردتم معرفة المزيد خاصة حول جانب الإنتاج
00:45:43في الـ RAG، مثل كيفية تشغيل هذا لفريق أو تجهيزه لعميل، فلدينا وحدة كاملة
00:45:47حول ذلك داخل Chase AI Plus؛ لذا تحققوا من ذلك. بخلاف ذلك، أخبروني برأيكم،
00:45:52أعلم أن هذا الفيديو كان طويلاً، وسأراكم لاحقًا.