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

الاختبار: معالجة الوثائق

اختبر معرفتك بمحمّلات الوثائق وتقسيم النص والتعامل مع الملفات.

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


السؤال 1​

ما الغرض الأساسي من محمّلات الوثائق في RAG؟

a) ضغط الوثائق
b) استخراج المحتوى النصي من صيغ ملفات متنوعة
c) تشفير الوثائق
d) ترجمة الوثائق

عرض الإجابة

الإجابة الصحيحة: b

تستخرج محمّلات الوثائق المحتوى النصي من صيغ ملفات متنوعة (PDF، Word، HTML، وغيرها) وتهيّئه للمعالجة اللاحقة في خط أنابيب RAG.


السؤال 2​

أي محمّل LangChain الأفضل لملفات PDF ذات الجداول؟

a) PyPDFLoader
b) PDFPlumberLoader
c) TextLoader
d) WebBaseLoader

عرض الإجابة

الإجابة الصحيحة: b

يوفّر PDFPlumberLoader قدرات استخراج جداول أفضل مقارنةً بمحمّلات PDF الأساسية.


السؤال 3​

علامَ يشير اختصار OCR؟

a) Optical Character Recognition
b) Online Content Reader
c) Optimized Chunk Retrieval
d) Output Compression Routine

عرض الإجابة

الإجابة الصحيحة: a

يشير OCR إلى Optical Character Recognition - تقنية تحوّل صور النص إلى نص قابل للقراءة آليًا.


السؤال 4​

ما هو تداخل الـ chunks ولماذا هو مهم؟

a) chunks مكرّرة للنسخ الاحتياطي
b) نص مشترك بين الـ chunks للحفاظ على السياق
c) حشو تشفير
d) نسبة ضغط

عرض الإجابة

الإجابة الصحيحة: b

تداخل الـ chunks نص مشترك بين chunks متتالية يمنع فقدان المعلومات عند الحدود ويحافظ على السياق.


السؤال 5​

ما حجم الـ chunk النموذجي لأنظمة RAG؟

a) 50-100 حرف
b) 500-1500 حرف
c) 10000+ حرف
d) 5-10 أحرف

عرض الإجابة

الإجابة الصحيحة: b

تتراوح أحجام الـ chunks النموذجية بين 500 و1500 حرف، بما يوازن دقة الاسترجاع مع سياق كافٍ.


السؤال 6​

أي مقسّم الأفضل للحفاظ على بنية الوثيقة في ملفات Markdown؟

a) RecursiveCharacterTextSplitter
b) TokenTextSplitter
c) MarkdownHeaderTextSplitter
d) SentenceTransformersTokenTextSplitter

عرض الإجابة

الإجابة الصحيحة: c

يحترم MarkdownHeaderTextSplitter بنية عناوين Markdown وينشئ chunks حسب أقسام الوثيقة.


السؤال 7​

ما نسبة التداخل الموصى بها نسبةً إلى حجم الـ chunk؟

a) 50-60%
b) 1-5%
c) 10-20%
d) 80-90%

عرض الإجابة

الإجابة الصحيحة: c

التداخل النموذجي 10-20% من حجم الـ chunk (مثلًا تداخل 200 حرف لـ chunks من 1000 حرف).


السؤال 8​

أي محمّل تستخدمه لوثائق PDF الممسوحة؟

a) PyPDFLoader
b) UnstructuredPDFLoader مع استراتيجية OCR
c) TextLoader
d) CSVLoader

عرض الإجابة

الإجابة الصحيحة: b

يمكن لـ UnstructuredPDFLoader مع strategy="ocr_only" أو "hi_res" معالجة ملفات PDF الممسوحة باستخدام OCR.


السؤال 9​

ماذا يفعل RecursiveCharacterTextSplitter؟

a) يقسّم بالأحرف فقط
b) يقسّم حسب تسلسل فواصل
c) يقسّم عشوائيًا
d) لا يقسّم النص أبدًا

عرض الإجابة

الإجابة الصحيحة: b

يحاول RecursiveCharacterTextSplitter التقسيم حسب الفقرات أولًا، ثم الجمل، ثم الكلمات، ثم الأحرف.


السؤال 10​

ما المعلومات التي تتضمّنها metadata الخاصة بـ Document عادةً؟

a) اسم الملف فقط
b) المصدر ورقم الصفحة ومعلومات سياقية أخرى
c) تاريخ الإنشاء فقط
d) لا تُخزَّن أي metadata

عرض الإجابة

الإجابة الصحيحة: b

تتضمّن metadata عادةً ملف المصدر ورقم الصفحة والمؤلف والتواريخ ومعلومات سياقية أخرى ذات صلة.


السؤال 11​

أي مكوّن LlamaIndex يحمّل عدة ملفات من مجلد؟

a) SingleFileReader
b) SimpleDirectoryReader
c) BatchLoader
d) FolderProcessor

عرض الإجابة

الإجابة الصحيحة: b

يمكن لـ SimpleDirectoryReader تحميل عدة ملفات تكراريًا من مجلد مع خيارات تصفية.


السؤال 12​

لماذا قد تكون الـ chunks الأصغر مشكلة؟

a) تستخدم تخزينًا أكثر من اللازم
b) قد تفقد سياقًا مهمًا
c) بطيئة جدًا في المعالجة
d) لا يمكن تحويلها إلى embeddings

عرض الإجابة

الإجابة الصحيحة: b

قد تفقد الـ chunks الأصغر سياقًا مهمًا، ما يصعّب على نموذج LLM الفهم والإجابة.


السؤال 13​

ما الغرض من add_start_index في مقسّمات النص؟

a) ترقيم الصفحات
b) تتبّع موضع كل chunk في الوثيقة الأصلية
c) ترتيب الـ chunks أبجديًا
d) ضغط الـ chunks

عرض الإجابة

الإجابة الصحيحة: b

يتتبّع add_start_index موضع كل chunk في الوثيقة المصدر، وهو مفيد للاستشهادات وتصحيح الأخطاء.


السؤال 14​

كيف ينبغي التعامل مع الجداول في الوثائق أثناء الـ chunking؟

a) تقسيمها عبر عدة chunks
b) إبقاؤها كـ chunks مفردة
c) حذفها بالكامل
d) تحويلها إلى صور

عرض الإجابة

الإجابة الصحيحة: b

ينبغي إبقاء الجداول كـ chunks مفردة للحفاظ على بنيتها ومعناها.


السؤال 15​

أي مكتبة Python شائعة لاستخراج الجداول من ملفات PDF؟

a) requests
b) Camelot
c) numpy
d) flask

عرض الإجابة

الإجابة الصحيحة: b

Camelot مكتبة شائعة مصمَّمة خصيصًا لاستخراج الجداول من ملفات PDF.


السؤال 16​

ما هو التقسيم الدلالي (semantic chunking)؟

a) التقسيم حسب حجم الملف
b) التقسيم بناءً على المعنى أو التشابه
c) التقسيم أبجديًا
d) تقسيم عشوائي

عرض الإجابة

الإجابة الصحيحة: b

يقسّم التقسيم الدلالي النص بناءً على التشابه الدلالي، فيُبقي المحتوى المرتبط معًا.


السؤال 17​

أي ترميز ينبغي تحديده عادةً لـ TextLoader؟

a) ASCII
b) UTF-8
c) Base64
d) Binary

عرض الإجابة

الإجابة الصحيحة: b

UTF-8 هو الترميز القياسي الذي يدعم معظم الأحرف عبر اللغات المختلفة.


السؤال 18​

بماذا يعدّ TokenTextSplitter حجم الـ chunk؟

a) أحرف
b) كلمات
c) Tokens (كما يعدّها tokenizer الخاص بنموذج LLM)
d) بايتات

عرض الإجابة

الإجابة الصحيحة: c

يعدّ TokenTextSplitter الـ tokens الفعلية كما يعدّها tokenizer الخاص بنموذج LLM، وهذا مهم لحدود السياق.


السؤال 19​

ما التحدي الرئيسي في ملفات PDF متعددة الأعمدة؟

a) فقدان الألوان
b) قد يكون ترتيب القراءة غير صحيح
c) زيادة حجم الملف
d) لا يمكن فتحها

عرض الإجابة

الإجابة الصحيحة: b

قد تربك التخطيطات متعددة الأعمدة المستخرجات، فيندمج نص من أعمدة مختلفة بشكل خاطئ.


السؤال 20​

كيف يمكن جعل الصور المضمّنة في الوثائق قابلة للبحث؟

a) تحويلها إلى PDF
b) استخدام نماذج الرؤية لتوليد أوصاف
c) حذفها
d) ضغطها

عرض الإجابة

الإجابة الصحيحة: b

يمكن لنماذج الرؤية (مثل GPT-4 Vision) وصف الصور، ما يجعل محتواها قابلًا للبحث عبر النص.


السؤال 21​

ما تسلسل الفواصل الافتراضي في RecursiveCharacterTextSplitter؟

a) أحرف، كلمات، جمل، فقرات
b) فقرات، أسطر جديدة، جمل، مسافات، أحرف
c) ترتيب عشوائي
d) بالنقاط فقط

عرض الإجابة

الإجابة الصحيحة: b

التسلسل الافتراضي: أسطر فارغة مزدوجة (فقرات)، أسطر جديدة مفردة، نقاط (جمل)، مسافات، أحرف.


السؤال 22​

أي محمّل تستخدمه لملفات JSONL؟

a) TextLoader
b) JSONLoader مع jq_schema مناسب
c) PDFLoader
d) ImageLoader

عرض الإجابة

الإجابة الصحيحة: b

يمكن لـ JSONLoader التعامل مع ملفات JSONL باستخدام jq_schema مناسب لاستخراج المحتوى.


السؤال 23​

ماذا يحدث إذا كان chunk_size أكبر من الوثيقة؟

a) يُرمى خطأ
b) تصبح الوثيقة chunkًا واحدًا
c) تُكرَّر الوثيقة
d) تُضغط الوثيقة

عرض الإجابة

الإجابة الصحيحة: b

إذا كانت الوثيقة أصغر من chunk_size، تبقى chunkًا واحدًا دون تقسيم.


السؤال 24​

لماذا تُعد المعالجة الدفعية مهمة لملفات CSV الكبيرة؟

a) لزيادة حجم الملف
b) لمنع مشكلات الذاكرة
c) لتشفير البيانات
d) لضغط البيانات

عرض الإجابة

الإجابة الصحيحة: b

تمنع المعالجة الدفعية تحميل الملفات الكبيرة بالكامل في الذاكرة، فتتفادى مشكلات الذاكرة.


السؤال 25​

ما الغرض من معامل 'mode' في UnstructuredPDFLoader؟

a) تحديد مستوى التشفير
b) التحكّم في كيفية الحفاظ على بنية الوثيقة
c) اختيار وضع الألوان
d) تحديد أذونات الملف

عرض الإجابة

الإجابة الصحيحة: b

يتحكّم معامل 'mode' (single، elements، paged) في كيفية الحفاظ على بنية الوثيقة أثناء الاستخراج.


السؤال 26​

أي استراتيجية تقدّم أفضل جودة استخراج في UnstructuredPDFLoader؟

a) fast
b) auto
c) hi_res
d) low_res

عرض الإجابة

الإجابة الصحيحة: c

تقدّم استراتيجية "hi_res" أعلى جودة استخراج لكنها تتطلّب وقت معالجة أطول.


السؤال 27​

ماذا ينبغي فعله بالترويسات والتذييلات في ملفات PDF؟

a) إبرازها
b) تصفيتها لإزالة الضوضاء
c) تكرارها
d) تشفيرها

عرض الإجابة

الإجابة الصحيحة: b

غالبًا تحتوي الترويسات والتذييلات محتوى متكرّرًا غير مفيد وينبغي تصفيتها.


السؤال 28​

كيف تتتبّع الملف الذي جاء منه chunk؟

a) حسب حجم الـ chunk
b) عبر metadata
c) حسب لون الـ chunk
d) عبر نسبة الضغط

عرض الإجابة

الإجابة الصحيحة: b

حقول metadata مثل 'source' أو 'file_name' تتتبّع أصل كل chunk.


السؤال 29​

ما فائدة استخدام SQLDatabaseLoader؟

a) يعمل مع SQLite فقط
b) يمكنه الاستعلام عن البيانات وتحميلها مباشرة من قواعد البيانات
c) يضغط ملفات SQL
d) يشفّر قواعد البيانات

عرض الإجابة

الإجابة الصحيحة: b

يتيح لك SQLDatabaseLoader الاستعلام عن قواعد البيانات مباشرة وتحميل النتائج كوثائق.


السؤال 30​

عند الـ chunking، ما الذي ينبغي تجنّبه؟

a) الحفاظ على metadata
b) قطع الجمل في منتصف الفكرة
c) استخدام التداخل
d) تتبّع المصدر

عرض الإجابة

الإجابة الصحيحة: b

قطع الجمل أو المفاهيم في منتصف الفكرة ينتج chunks ناقصة أو مربكة تضر بجودة الاسترجاع.


النتائج​

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

العودة إلى الوحدة 2 | المتابعة إلى الوحدة 3