النقاط الرئيسية
- رخصة MIT — إطار Python الأساسي مجاني، برخصة تصريحية، ويُصان بنشاط
- المكونات الأساسية: تُغذّي Documents/Nodes فهرسًا (Index)، غالبًا VectorStoreIndex، ويسحب Retriever العُقد ذات الصلة، ويجيب Query Engine على السؤال
- مجاني للتثبيت والاستضافة الذاتية: pip install llama-index، مع مزود نموذج اللغة الخاص بك وقاعدة تخزين متجهية خاصة بك
- LlamaCloud منصة منفصلة مدفوعة حسب الاستخدام لتحليل المستندات تلقائيًا (LlamaParse) واستخلاصها — غير مطلوبة لاستخدام الإطار مفتوح المصدر
- قائم على الكود أولًا: لا توجد لوحة بصرية — هذه مكتبة Python تستوردها وتكتب كودًا فوقها
- أُرشيفت حزمة TypeScript، أي LlamaIndex.TS، وصُنّفت كمتوقفة في 30 أبريل 2026 — بايثون هي التنفيذ الذي لا يزال يُصان بنشاط
- الأنسب لـ: المطورين الذين يبنون أنظمة RAG إنتاجية ويريدون تحكمًا برمجيًا في منطق الفهرسة والاسترجاع
📍 في جملة واحدة
LlamaIndex إطار عمل Python مجاني ومفتوح المصدر (MIT) يربط نماذج اللغة الكبيرة ببياناتك الخاصة عبر الفهرسة والاسترجاع ومحركات الاستعلام — مصمم للمطورين الذين يكتبون كودًا، وليس لأدوات البناء البصرية بلا كود.
💬 بعبارات بسيطة
بدلًا من سحب صناديق على لوحة، يمنحك LlamaIndex فئات Python: حمّل مستنداتك، ابنِ فهرسًا، ثم استعلم عنه — كل خطوة هي كود يمكنك التحكم بإصداراته واختباره وتخصيصه.
📌Note: إذا كنت تريد بناء خط أنابيب RAG بربط صناديق بدلًا من كتابة Python، فإن LlamaIndex ليست الأداة المناسبة — انظر بدلًا من ذلك إلى أداة بناء بصرية مثل Flowise أو Langflow أو Dify.
ما هو LlamaIndex؟
LlamaIndex (github.com/run-llama/llama_index) إطار عمل Python مفتوح المصدر برخصة MIT لبناء تطبيقات تربط نماذج اللغة الكبيرة ببياناتك الخاصة. إنه في الأساس إطار عمل بيانات: المكتبة منظمة حول استيعاب المستندات، وهيكلتها للاسترجاع، والإجابة عن الأسئلة المتعلقة بها — وليس حول تنسيق وكلاء عام الغرض.
- موصلات البيانات: SimpleDirectoryReader للملفات المحلية، بالإضافة إلى أكثر من 300 تكامل من المجتمع ومن الشركة نفسها على LlamaHub لملفات PDF وواجهات API وقواعد بيانات SQL ومصادر أخرى
- الفهارس (Indices): بُنى تنظّم البيانات المستوعبة لاسترجاعها بواسطة LLM — أشيعها VectorStoreIndex (بحث دلالي قائم على التضمينات)
- أدوات الاسترجاع (Retrievers): تسحب العُقد ذات الصلة باستعلام معين من فهرس
- محركات الاستعلام (Query Engines): تجمع بين أداة استرجاع واستدعاء LLM للإجابة عن سؤال حول بياناتك — جوهر حلقة التوليد المعزَّز بالاسترجاع (RAG)
- سير العمل (Workflow): نظام قائم على الأحداث لتنسيق وكلاء وخطوط أنابيب متعددة الخطوات تتجاوز استعلامًا واحدًا
- يسجل مستودع Python الأساسي أكثر من 50,000 نجمة على GitHub
ما هي المكونات الأساسية لـ LlamaIndex؟
ينظّم LlamaIndex خط أنابيب RAG في خمسة مكونات: Document/Node، وIndex، وRetriever، وQuery Engine، وWorkflow. يقابل كل واحد منها خطوة في تحويل ملفات خام إلى نموذج لغة قادر على الإجابة عن أسئلة حولها.
Document / Node
- وظيفته:
- بيانات خام، ثم أجزاء مُهيكلة مقسّمة منها
Index
- وظيفته:
- ينظّم العُقد للاسترجاع (مثل VectorStoreIndex)
Retriever
- وظيفته:
- يسحب العُقد ذات الصلة باستعلام معين
Query Engine
- وظيفته:
- يجمع الاسترجاع مع استدعاء LLM للإجابة
Workflow
- وظيفته:
- تنسيق وكلاء متعددي الخطوات قائم على الأحداث
كيف يختلف LlamaIndex عن LangChain وأدوات البناء البصرية؟
LlamaIndex هو في الأساس إطار عمل بيانات، وLangChain إطار تنسيق عام الغرض، بينما أدوات مثل Flowise وLangflow وDify هي أدوات بناء بصرية بلا كود — تحل الأدوات الثلاث مشكلات مختلفة حتى عندما تتقاطع في RAG. الاختيار بينها مسألة أولويات، وليس مسألة أيها "أفضل".
هل LlamaIndex مجاني، أم يجب الدفع مقابل LlamaCloud؟
إطار عمل LlamaIndex الأساسي مجاني إلى الأبد بموجب رخصة MIT — يمكنك استضافته ذاتيًا مقابل نموذج اللغة وقاعدة البيانات المتجهية الخاصين بك، دون أي تكلفة لـ LlamaIndex. أما LlamaCloud، وهي منصة مستضافة منفصلة لتحليل المستندات واستخلاصها تلقائيًا (LlamaParse وLlamaExtract)، فتفرض اعتمادات حسب الاستخدام فوق ذلك: 1.25 دولار لكل 1,000 اعتماد، حيث يكلّف التحليل من 1 إلى 45 اعتمادًا لكل صفحة، ويكلّف الاستخلاص من 5 إلى 60 اعتمادًا لكل صفحة حسب المستوى المختار.
- الإطار مفتوح المصدر (pip install llama-index): مجاني، برخصة MIT، مستضاف ذاتيًا — لا حاجة لحساب أو اعتمادات
- LlamaCloud / LlamaParse: تحليل مستندات مدفوع، يُحاسَب بالاعتمادات، لملفات PDF ذات التخطيط المعقد، والمستندات الممسوحة ضوئيًا، والجداول، والرسوم البيانية
- لا تحتاج إلى حساب LlamaCloud لبناء أو تشغيل خط أنابيب RAG باستخدام الإطار مفتوح المصدر — يغطي SimpleDirectoryReader وأدوات تحميل مجانية أخرى النص العادي وMarkdown وملفات PDF القياسية
- يصبح LlamaCloud مهمًا عندما تكون المستندات معقدة بما يكفي (تخطيطات متعددة الأعمدة، جداول مضمّنة، خط يدوي) بحيث ينتج المحلل المجاني أجزاء رديئة الجودة
كيف تبني خط أنابيب RAG بسيطًا باستخدام LlamaIndex؟
خط أنابيب RAG عامل باستخدام LlamaIndex هو خمسة أسطر Python: حمّل المستندات، ابنِ فهرسًا، أنشئ محرك استعلام، ثم استعلم عنه. يستخدم هذا المثال قاعدة التخزين المتجهية الافتراضية في الذاكرة ونموذج لغة متوافقًا مع OpenAI؛ لاستخدام مزود محلي (مثل Ollama)، ثبّت حزمة تكامله واضبط Settings.llm قبل بناء الفهرس.
- 1ثبّت الإطار: pip install llama-index (أضِف حزمة مزود مثل llama-index-llms-ollama لاستخدام نموذج محلي بدلًا من واجهة API مستضافة).
- 2اضبط بيانات اعتماد مزود LLM الخاص بك — مثلًا export OPENAI_API_KEY=... — أو اضبط Settings.llm ليشير إلى مزود محلي قبل الخطوة التالية.
- 3ضع ملفات المصدر في مجلد (مثل data/) وحمّلها: documents = SimpleDirectoryReader("data").load_data().
- 4ابنِ فهرسًا من المستندات المحمّلة: index = VectorStoreIndex.from_documents(documents). يقسّم هذا كل مستند إلى Nodes ويضمّنها.
- 5أنشئ محرك استعلام من الفهرس: query_engine = index.as_query_engine().
- 6استعلم عن بياناتك واطبع الإجابة: response = query_engine.query("سؤالك هنا"); print(response).
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
# Load documents from a folder
documents = SimpleDirectoryReader("data").load_data()
# Build an index from documents
index = VectorStoreIndex.from_documents(documents)
# Create a query engine
query_engine = index.as_query_engine()
# Query your data
response = query_engine.query("Your question here")
print(response)هل يُعاد بناء هذا الفهرس في كل مرة يعمل فيها السكريبت؟
نعم، افتراضيًا. لأي استخدام يتجاوز سكريبتًا لمرة واحدة، استدعِ index.storage_context.persist() بعد بناء الفهرس، وأعد تحميله باستخدام load_index_from_storage() في عمليات التشغيل اللاحقة بدلًا من إعادة تضمين كل مستند في كل مرة.
هل يمكنني استخدام نموذج لغة وقاعدة تخزين متجهية محليين بدلًا من OpenAI؟
نعم. ثبّت حزمة التكامل المطابقة (مثل llama-index-llms-ollama لنموذج محلي، أو حزمة قاعدة تخزين متجهية مثل llama-index-vector-stores-chroma)، ثم اضبط Settings.llm وSettings.embed_model، أو مرّر قاعدة التخزين المتجهية إلى VectorStoreIndex.from_documents()، قبل تشغيل كود محرك الاستعلام نفسه.
هل نسخة TypeScript من LlamaIndex لا تزال مُصانة؟
لا. أُرشيفت LlamaIndex.TS (run-llama/LlamaIndexTS على GitHub) من قِبل القائمين على صيانتها وصُنّفت كمتوقفة في 30 أبريل 2026. ينص الإشعار في المستودع نفسه على أن المشروع "is deprecated and no longer maintained" (متوقف ولم يعد يُصان)، ويوجّه المستخدمين إلى وثائق LlamaCloud/LlamaParse بدلًا من حزمة TypeScript.
- إطار Python (llama_index) هو التنفيذ الذي لا يزال يُصان بنشاط — يغطي هذا المقال هذه النسخة
- ستستمر مشاريع TypeScript القائمة المبنية على LlamaIndex.TS في العمل، لكنها لن تتلقى أي تحديثات أو إصلاحات أخطاء أو تصحيحات أمنية جديدة
- لمشروع TypeScript أو JavaScript جديد، قيّم LangChain.js (مُصانة بنشاط، برخصة MIT) بدلًا من البدء على مكتبة مؤرشفة
لمن يناسب LlamaIndex؟
يشغل LlamaIndex موقعًا محددًا في مشهد أدوات RAG: المطورون الذين يريدون تحكمًا على مستوى الكود في الفهرسة والاسترجاع، وليس أسرع طريق إلى نموذج أولي بصري.
LlamaIndex مقابل البدائل
يعتمد الاختيار الصحيح على ما إذا كنت تريد تحكمًا على مستوى الكود (LlamaIndex وLangChain وHaystack) أم لوحة بصرية (Flowise وأدوات مشابهة).
| الأداة | الواجهة | الرخصة | الأنسب لـ | الصيانة |
|---|---|---|---|---|
| LlamaIndex | كود Python | MIT | خطوط أنابيب RAG مخصصة كثيفة البيانات | نشطة |
| LangChain | كود Python / JS | MIT | تنسيق LLM عام الغرض | نشطة |
| Haystack | كود Python | Apache 2.0 | بحث المؤسسات + خطوط أنابيب RAG | نشطة |
| Flowise | بصرية، سحب وإفلات | Apache 2.0 | نماذج أولية بلا كود (بلا صيانة) | مؤرشفة / لا شيء |
أخطاء شائعة عند تقييم LlamaIndex
تنشأ هذه الأخطاء من التعامل مع LlamaIndex كفئة أداة مختلفة عما هي عليه فعليًا.
الأسئلة الشائعة
هل LlamaIndex مجاني للاستخدام؟
نعم. إطار Python الأساسي مفتوح المصدر ومجاني بموجب رخصة MIT. تفرض LlamaCloud، وهي منصة مستضافة منفصلة لتحليل المستندات واستخلاصها، اعتمادات حسب الاستخدام (1.25 دولار لكل 1,000 اعتماد)، لكنها اختيارية وغير مطلوبة لبناء أو تشغيل خط أنابيب RAG.
بأي رخصة يُطرح LlamaIndex؟
رخصة MIT، سواء لإطار Python (llama_index) أو، طالما كانت مُصانة، لحزمة TypeScript (LlamaIndex.TS). تسمح MIT بالاستخدام التجاري والتعديل وإعادة التوزيع.
كيف يختلف LlamaIndex عن LangChain؟
LlamaIndex إطار عمل بيانات مبني خصيصًا حول الفهرسة والاسترجاع — Documents وNodes وIndices وRetrievers وQuery Engines. أما LangChain فهو إطار تنسيق عام الغرض يغطي السلاسل والوكلاء واستدعاء الأدوات، حيث الاسترجاع مجرد قدرة واحدة من بين قدرات كثيرة. كلاهما برخصة MIT، ويعتمدان على Python أولًا، ويُصانان بنشاط؛ تستخدم أنظمة إنتاجية كثيرة الاثنين معًا.
هل LlamaIndex أداة بناء بصرية بلا كود؟
لا. LlamaIndex مكتبة Python (وكانت سابقًا أيضًا TypeScript) تستوردها وتكتب كودًا فوقها — لا توجد لوحة سحب وإفلات. لنهج بصري بلا كود لخطوط أنابيب RAG أو الوكلاء، قيّم Flowise أو Langflow أو Dify.
ما هي LlamaCloud، وهل أحتاجها؟
LlamaCloud منصة منفصلة مدفوعة حسب الاستخدام من الشركة نفسها، تقدّم LlamaParse (تحليل المستندات) وLlamaExtract (الاستخلاص المُهيكل) للمستندات المعقدة. لا تحتاجها لاستخدام إطار LlamaIndex مفتوح المصدر — تصبح مفيدة فقط عندما تنتج أدوات تحميل المستندات المجانية نتائج ضعيفة على ملفات PDF المعقدة أو الصفحات الممسوحة ضوئيًا أو الجداول الكثيفة.
هل نسخة TypeScript من LlamaIndex لا تزال مُصانة؟
لا. أُرشيفت LlamaIndex.TS من قِبل القائمين على صيانتها وصُنّفت كمتوقفة في 30 أبريل 2026. يبقى إطار Python هو التنفيذ الذي لا يزال يُصان بنشاط. لمشروع TypeScript/JavaScript جديد، قيّم LangChain.js.
ما هو Query Engine في LlamaIndex؟
يجمع Query Engine بين أداة استرجاع واستدعاء LLM في استدعاء طريقة واحد. استدعاء index.as_query_engine().query("سؤالك") يسترجع العُقد ذات الصلة من الفهرس، ويبني موجّهًا يحتويها، ويُعيد إجابة النموذج — وهو جوهر حلقة التوليد المعزَّز بالاسترجاع (RAG).
كم عدد التكاملات التي يدعمها LlamaIndex؟
تستضيف LlamaHub أكثر من 300 حزمة تكامل من المجتمع ومن الشركة نفسها تغطي أدوات تحميل البيانات (PDF، واجهات API، قواعد بيانات SQL، وغيرها)، ومزودي نماذج اللغة، وقواعد التخزين المتجهية، إضافة إلى SimpleDirectoryReader المدمجة للملفات المحلية.
هل يمكنني استخدام نموذج لغة محلي مع LlamaIndex بدلًا من واجهة API سحابية؟
نعم. ثبّت تكامل المزود المطابق (مثل llama-index-llms-ollama لأداة Ollama)، ثم اضبطه كافتراضي عبر Settings.llm قبل بناء فهرسك — يعمل باقي خط أنابيب Document/Index/Retriever/Query Engine بالطريقة نفسها بغض النظر عن مزود نموذج اللغة المستخدم.
هل أحتاج إلى كتابة Python لاستخدام LlamaIndex؟
نعم، بالنسبة إلى النسخة المُصانة حاليًا. LlamaIndex إطار عمل قائم على الكود أولًا دون واجهة بصرية. ينبغي لغير المطورين أو الفرق التي تريد نهجًا بلا كود تقييم أداة بناء بصرية مثل Flowise أو Langflow أو Dify بدلًا من ذلك.
