LlamaIndex
LlamaIndex é uma estrutura de código aberto que carrega, indexa e recupera dados privados para LLMs, alimentando pipelines RAG e agentes de documentos.
O LlamaIndex é um framework de código aberto para conectar modelos de linguagem grandes (LLMs) a dados privados: ele carrega documentos, bancos de dados e APIs, indexa seu conteúdo e recupera as passagens de que um modelo precisa para responder a uma pergunta. A maioria dos aplicativos criados com ele usa geração aumentada por recuperação (RAG), como assistentes que respondem com base nos manuais, contratos ou chamados de uma empresa, e agentes de IA que leem e executam ações em documentos. Jerry Liu lançou o projeto como GPT Index em novembro de 2022 e o renomeou LlamaIndex em fevereiro de 2023. O framework LlamaIndex está disponível em Python e TypeScript, e a empresa também oferece o LlamaParse, um serviço hospedado que converte PDFs complexos, tabelas e apresentações em texto fácil de indexar.
Como funciona o LlamaIndex#
Um aplicativo LlamaIndex tem duas fases. A ingestão é executada uma vez por atualização de dados: conectores do LlamaHub carregam arquivos e serviços como objetos Document, um analisador de nós divide cada objeto em partes chamadas Nodes, e um modelo de embeddings converte cada Node em um vetor, seu embedding, armazenado em um índice. A consulta é executada para cada pergunta: um recuperador encontra os Nodes mais próximos da pergunta, pós-processadores como um reranqueador os reordenam ou filtram, e um sintetizador de respostas coloca os que restaram na janela de contexto do LLM, com instruções para responder com base neles.
O VectorStoreIndex é o padrão e armazena embeddings na memória ou em um banco de dados vetorial externo. Outros índices enviam cada parte ao modelo para gerar resumos, criam um grafo de conhecimento de entidades e relações para consultas no estilo GraphRAG ou correspondem palavras-chave. Um mecanismo de consulta responde a uma única pergunta, um mecanismo de chat mantém uma conversa, e os Workflows — a camada de orquestração orientada a eventos do LlamaIndex — conectam recuperação, ferramentas e vários agentes em sistemas de RAG agêntico que decidem o que pesquisar e quando.
Indexação de imagens pelo conteúdo#
A recuperação funciona com qualquer conteúdo que possa ser representado como texto. Executar o Ultralytics YOLO26 em uma coleção de fotos transforma cada imagem em uma descrição pesquisável: Results.verbose() retorna as contagens por classe de um resultado do modo de previsão como uma string curta, que se torna um Document cujos metadados mantêm o URL da imagem. Em seguida, um modelo local de embeddings do Hugging Face permite executar o índice sem uma chave de API:
from llama_index.core import Document, Settings, VectorStoreIndex
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from ultralytics import YOLO
Settings.embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-small-en-v1.5")
model = YOLO("yolo26n.pt")
# Describe each image by its detections; the URL stays in metadata and out of the embedding
docs = []
for url in ["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]:
results = model(url)
text = f"A photo containing {results[0].verbose()}"
docs.append(Document(text=text, metadata={"image": url}, excluded_embed_metadata_keys=["image"]))
# Index the descriptions, then retrieve the image that best matches a question
index = VectorStoreIndex.from_documents(docs)
retriever = index.as_retriever(similarity_top_k=1)
nodes = retriever.retrieve("Which photo shows a bus?")
print(nodes[0].node.metadata["image"], round(nodes[0].score, 3))O recuperador retorna a imagem do ônibus com sua pontuação de similaridade do cosseno, encontrada por meio da descrição do detector, e não do nome do arquivo. Adicionar um sintetizador de respostas permite responder em prosa a perguntas sobre a coleção; esse é o padrão por trás dos sistemas de RAG multimodal que combinam visão computacional com pesquisa em documentos.
LlamaIndex e ferramentas relacionadas#
- LangChain: Um framework geral para aplicativos e agentes de LLM, com um amplo conjunto de integrações. Hoje, ambos os projetos abrangem recuperação e agentes; o LlamaIndex se aprofunda mais na ingestão, análise e nos tipos de índice, e as equipes costumam usar seus recuperadores em agentes LangChain ou LangGraph.
- Bancos de dados vetoriais: Armazenam vetores e executam pesquisa vetorial. O LlamaIndex opera acima deles, decidindo como os documentos são analisados, divididos em partes, transformados em embeddings, recuperados e enviados ao modelo; além disso, oferece suporte a dezenas de armazenamentos vetoriais como backends.
- Pesquisa semântica: A etapa de recuperação por si só. O LlamaIndex acrescenta geração, para que os resultados cheguem como uma resposta com os Nodes de origem anexados para citação.










