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

الفصل 2: إطار LlamaIndex

نظرة عامة على LlamaIndex​

يركّز LlamaIndex (المعروف سابقًا بـ GPT Index) على فهرسة البيانات والاستعلام عنها:

  • أنواع فهارس متعددة
  • محرّكات استعلام
  • تركيب الإجابات
  • أدوات تقييم

RAG أساسي مع LlamaIndex​

from llama_index import VectorStoreIndex, SimpleDirectoryReader
from llama_index.llms import OpenAI

# Load documents
documents = SimpleDirectoryReader("./data").load_data()

# Create index
index = VectorStoreIndex.from_documents(documents)

# Query
query_engine = index.as_query_engine()
response = query_engine.query("What is RAG?")
print(response)

أنواع الفهارس​

from llama_index import (
VectorStoreIndex,
SummaryIndex,
TreeIndex,
KeywordTableIndex
)

# Vector Index - similarity search
vector_index = VectorStoreIndex.from_documents(docs)

# Summary Index - summarization
summary_index = SummaryIndex.from_documents(docs)

# Tree Index - hierarchical
tree_index = TreeIndex.from_documents(docs)

# Keyword Index - keyword extraction
keyword_index = KeywordTableIndex.from_documents(docs)

محرّكات الاستعلام​

# Basic query engine
query_engine = index.as_query_engine(
similarity_top_k=5,
response_mode="compact" # or "tree_summarize", "refine"
)

# Chat engine with memory
chat_engine = index.as_chat_engine(
chat_mode="condense_question",
verbose=True
)

# Use chat engine
response = chat_engine.chat("What is RAG?")
response = chat_engine.chat("Tell me more") # Remembers context

أوضاع الإجابة​

الوضعالوصفالأنسب لـ
compactملاءمة prompt واحدالافتراضي
refineتحسين تكراريسياقات طويلة
tree_summarizeملخص هرميوثائق كثيرة
simple_summarizeملخص أساسينظرة سريعة

LangChain مقابل LlamaIndex​

الميزةLangChainLlamaIndex
التركيزChains عامةفهرسة البيانات
المرونةأعلىمتوسطة
منحنى التعلّمأشدألطف
الأنسب لـخطوط معقّدةأسئلة وأجوبة على الوثائق

الخطوات التالية​

تابع إلى الفصل 3: RAG مخصّص.