LlamaIndex
LlamaIndex è un framework open source che carica, indicizza e recupera dati privati per gli LLM, alimentando pipeline RAG e agenti documentali.
LlamaIndex è un framework open source per collegare i modelli linguistici di grandi dimensioni (LLM) a dati privati: carica documenti, database e API, ne indicizza i contenuti e recupera i passaggi necessari a un modello per rispondere a una domanda. La maggior parte delle applicazioni realizzate con LlamaIndex usa la generazione aumentata dal recupero (RAG), per esempio assistenti che rispondono attingendo ai manuali, ai contratti o ai ticket di un'azienda e agenti di IA che leggono documenti e agiscono su di essi. Jerry Liu ha pubblicato il progetto con il nome GPT Index nel novembre 2022 e lo ha rinominato LlamaIndex nel febbraio 2023. Il framework LlamaIndex è disponibile in Python e TypeScript; la sua azienda gestisce anche LlamaParse, un servizio ospitato che converte PDF complessi, tabelle e slide in testo facilmente indicizzabile.
Come funziona LlamaIndex#
Un'applicazione LlamaIndex si articola in due fasi. L'acquisizione avviene una volta per ogni aggiornamento dei dati: i connettori di LlamaHub caricano file e servizi come oggetti Document, un parser di nodi suddivide ciascuno di essi in blocchi chiamati Nodes e un modello di embedding converte ogni Node in un vettore, il suo embedding, che viene memorizzato in un indice. L'interrogazione avviene a ogni domanda: un sistema di recupero trova i Nodes più vicini alla domanda, i post-processori come un riordinatore li riordinano o filtrano e un sintetizzatore di risposte inserisce quelli rimanenti nella finestra di contesto dell'LLM, con istruzioni per rispondere basandosi su di essi.
Il VectorStoreIndex è l'impostazione predefinita e memorizza gli embedding in memoria o in un database vettoriale esterno. Altri indici inviano ogni blocco al modello per ottenere riepiloghi, costruiscono un grafo della conoscenza di entità e relazioni per query in stile GraphRAG oppure abbinano parole chiave. Un motore di query risponde a una singola domanda, un motore di chat mantiene una conversazione e Workflows, il livello di orchestrazione basato su eventi di LlamaIndex, collega sistemi di recupero, strumenti e più agenti in sistemi di RAG agentica che decidono cosa cercare e quando.
Indicizzare le immagini in base al loro contenuto#
Il recupero funziona con qualsiasi contenuto rappresentabile in testo. Eseguire Ultralytics YOLO26 su una raccolta di foto trasforma ogni immagine in una descrizione consultabile: Results.verbose() restituisce i conteggi per classe del risultato della modalità predict sotto forma di stringa breve, che diventa un Document con metadati che conservano l'URL dell'immagine. Un modello di embedding Hugging Face locale consente poi di usare l'indice senza una chiave 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))Il sistema di recupero restituisce l'immagine dell'autobus con il suo punteggio di similarità coseno, individuata attraverso la descrizione del rilevatore anziché il nome del file. Aggiungendo un sintetizzatore di risposte si possono formulare risposte in prosa alle domande sulla raccolta: è lo schema alla base dei sistemi di RAG multimodale che combinano la visione artificiale con la ricerca nei documenti.
LlamaIndex e gli strumenti correlati#
- LangChain: framework generico per applicazioni LLM e agenti con un'ampia gamma di integrazioni. Entrambi i progetti offrono ormai funzioni di recupero e supporto agli agenti; LlamaIndex approfondisce maggiormente l'acquisizione, l'analisi e i tipi di indice, e spesso i team usano i suoi sistemi di recupero all'interno di agenti LangChain o LangGraph.
- Database vettoriali: memorizzano vettori ed eseguono la ricerca vettoriale. LlamaIndex opera a un livello superiore, decidendo come analizzare, suddividere in blocchi, convertire in embedding e recuperare i documenti, nonché come passarli al modello; supporta decine di archivi vettoriali come back-end.
- Ricerca semantica: la sola fase di recupero. LlamaIndex aggiunge la generazione, quindi restituisce i risultati come risposta con i Nodes di origine allegati per la citazione.










