Capítulo 2: Framework LlamaIndex
Visão Geral do LlamaIndex
O LlamaIndex (anteriormente GPT Index) foca em indexação e consulta de dados:
- Múltiplos tipos de índice
- Motores de consulta
- Síntese de respostas
- Ferramentas de avaliação
RAG Básico com 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)
Tipos de Índice
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)
Motores de Consulta
# 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
Modos de Resposta
| Modo | Descrição | Melhor Uso |
|---|---|---|
| compact | Ajusta em um único prompt | Padrão |
| refine | Refinamento iterativo | Contextos longos |
| tree_summarize | Resumo hierárquico | Muitos documentos |
| simple_summarize | Resumo básico | Visão rápida |
LangChain vs LlamaIndex
| Recurso | LangChain | LlamaIndex |
|---|---|---|
| Foco | Cadeias gerais | Indexação de dados |
| Flexibilidade | Maior | Média |
| Curva de Aprendizado | Mais íngreme | Mais suave |
| Melhor Para | Pipelines complexos | Perguntas e respostas sobre documentos |
Próximos Passos
Continue para Capítulo 3: RAG Personalizado.