إنتقل إلى المحتوى الرئيسي

الاختبار: بناء خطوط أنابيب RAG

اختبر معرفتك بـ LangChain وLlamaIndex وبناء خطوط أنابيب RAG.

30 سؤالًا - انقر على كل سؤال لكشف الإجابة الصحيحة.


الأسئلة 1-10: LangChain​

السؤال 1: ما هو LCEL في LangChain؟

الإجابة: LangChain Expression Language - طريقة تصريحية قابلة للتركيب لبناء chains باستخدام عامل الأنبوب (|).

السؤال 2: ماذا يفعل نوع السلسلة "stuff"؟

الإجابة: يضع كل الوثائق المسترجعة في prompt واحد - الأفضل للسياقات الصغيرة التي تتسع في نافذة سياق LLM.

السؤال 3: متى تستخدم نوع السلسلة map_reduce؟

الإجابة: عند التعامل مع مجموعات بيانات كبيرة لا تتسع في prompt واحد - يعالج الوثائق منفصلة ثم يدمج النتائج.

السؤال 4: فيما يُستخدم ConversationBufferMemory؟

الإجابة: للحفاظ على تاريخ المحادثة في تطبيقات RAG بأسلوب روبوت محادثة.

السؤال 5: ماذا يفعل RunnablePassthrough في LCEL؟

الإجابة: يمرّر الإدخال كما هو دون تغيير - مفيد لتضمين الاستعلام الأصلي في تركيبات السلسلة.

السؤال 6: كيف تنشئ مسترجعًا من vector store في LangChain؟

الإجابة: باستخدام طريقة vectorstore.as_retriever().

السؤال 7: ما الغرض من ChatPromptTemplate؟

الإجابة: إنشاء قوالب prompt قابلة لإعادة الاستخدام مع عناصر نائبة متغيّرة للمحتوى الديناميكي.

السؤال 8: ماذا يفعل StrOutputParser؟

الإجابة: يحلّل مخرجات LLM لاستخراج المحتوى النصي فقط من الإجابة.

السؤال 9: ما الأنسب لنوع السلسلة "refine"؟

الإجابة: الاستعلامات المعقّدة حيث يحسّن تحسين الإجابة تكراريًا مع كل وثيقة الجودة.

السؤال 10: كيف تضيف البث إلى سلسلة LangChain؟

الإجابة: استخدم chain.stream() بدل chain.invoke() للحصول على مكرّر لأجزاء الإجابة.


الأسئلة 11-20: LlamaIndex​

السؤال 11: ما الاسم السابق لـ LlamaIndex؟

الإجابة: GPT Index

السؤال 12: ما نوع الفهرس الرئيسي في LlamaIndex؟

الإجابة: VectorStoreIndex - يخزّن الوثائق مع embeddings الخاصة بها للبحث بالتشابه.

السؤال 13: كيف تنشئ محرّك استعلام من فهرس؟

الإجابة: باستخدام طريقة index.as_query_engine().

السؤال 14: ما محرّك المحادثة في LlamaIndex؟

الإجابة: محرّك استعلام بذاكرة محادثة مدمجة للتفاعلات متعددة الأدوار.

السؤال 15: ماذا يفعل وضع الإجابة "compact"؟

الإجابة: يلائم كل السياق في prompt واحد - الوضع الافتراضي والأكثر كفاءة.

السؤال 16: ما وضع الإجابة tree_summarize؟

الإجابة: يلخّص الوثائق هرميًا، مفيد لمجموعات نتائج كبيرة جدًا.

السؤال 17: ما هو SimpleDirectoryReader؟

الإجابة: أداة لتحميل كل الوثائق من مجلد مع اكتشاف تلقائي لنوع الملف.

السؤال 18: بماذا يتحكّم معامل similarity_top_k؟

الإجابة: عدد الوثائق المتشابهة المراد استرجاعها لكل استعلام.

السؤال 19: فيما يُستخدم SummaryIndex؟

الإجابة: إنشاء ملخصات للوثائق بدل البحث بالتشابه.

السؤال 20: كيف يختلف تركيز LlamaIndex عن LangChain؟

الإجابة: يركّز LlamaIndex على فهرسة البيانات والاستعلام عنها، بينما LangChain أعمّ لبناء chains.


الأسئلة 21-30: RAG عام ومخصّص​

السؤال 21: متى ينبغي بناء RAG مخصّص بدل استخدام الأطر؟

الإجابة: عندما تحتاج تحكّمًا دقيقًا، أو أقل قدر من التبعيات، أو متطلبات أداء محددة.

السؤال 22: ما الخطوات الثلاث الأساسية في أي نظام RAG؟

الإجابة: 1) تحويل الاستعلام إلى embedding، 2) استرجاع الوثائق ذات الصلة، 3) توليد إجابة بالسياق.

السؤال 23: لماذا قد يكون RAG المخصّص أسرع من الأطر؟

الإجابة: عبء أقل، بلا طبقات تجريد، محسَّن لحالة استخدام محددة.

السؤال 24: ما العيب الرئيسي لـ RAG المخصّص؟

الإجابة: عمل تطوير وصيانة أكثر - تبني كل شيء بنفسك.

السؤال 25: كيف تضيف تخزينًا مؤقتًا إلى RAG مخصّص؟

الإجابة: استخدم تقنيات مثل @lru_cache لتخزين embeddings مؤقتًا أو Redis لتخزين النتائج.

السؤال 26: فيما يفيد البث في RAG؟

الإجابة: تقديم مخرجات الإجابة في الوقت الحقيقي للمستخدمين دون انتظار اكتمال التوليد.

السؤال 27: أي إطار أفضل للنماذج الأولية السريعة؟

الإجابة: LlamaIndex لأسئلة وأجوبة بسيطة على الوثائق، وLangChain للخطوط الأكثر تعقيدًا.

السؤال 28: ما الحد الأدنى الذي تحتاجه لنظام RAG أساسي؟

الإجابة: نموذج embeddings، وvector store، ونموذج LLM، وشيفرة لربطها.

السؤال 29: كيف تتعامل مع الأخطاء في RAG الإنتاجي؟

الإجابة: كتل try-catch، وإجابات احتياطية، وتسجيل، ومراقبة.

السؤال 30: ما الذي يحدّد جودة إجابة RAG أكثر من غيره؟

الإجابة: جودة الاسترجاع - إذا استرجعت الوثائق الصحيحة، يمكن لنموذج LLM توليد إجابات جيدة.


النتائج​

الدرجةالمستوى
27-30ممتاز - فهم قوي لأطر RAG
21-26جيد - يُوصى ببعض المراجعة
15-20متوسط - راجع الفصول مرة أخرى
أقل من 15يحتاج مراجعة شاملة

العودة إلى الوحدة 6 | المتابعة إلى الوحدة 7