LlamaIndex è il tuo alleato dati per costruire app basate su LLM. Puoi acquisire, gestire e recuperare facilmente dati privati e specifici del dominio usando il linguaggio naturale.
LlamaIndex è un framework dati per applicazioni basate su Large Language Models (LLM). Gli LLM come GPT-4 sono pre-addestrati su enormi dataset pubblici, offrendo fin da subito incredibili capacità di elaborazione del linguaggio naturale. Tuttavia, la loro utilità è limitata senza accesso ai tuoi dati privati.
LlamaIndex ti consente di acquisire dati da API, database, PDF e altro tramite connettori dati flessibili. Questi dati vengono indicizzati in rappresentazioni intermedie ottimizzate per gli LLM. LlamaIndex permette poi di fare query e conversazioni in linguaggio naturale sui tuoi dati tramite motori di interrogazione, interfacce chat e agenti dati alimentati da LLM. Consente ai tuoi LLM di accedere e interpretare dati privati su larga scala senza riaddestrare il modello su dati più recenti.
Che tu sia un principiante in cerca di un modo semplice per interrogare i tuoi dati in linguaggio naturale o un utente avanzato che richiede una profonda personalizzazione, LlamaIndex fornisce gli strumenti. Le API di alto livello permettono di iniziare in sole cinque righe di codice, mentre le API di basso livello offrono il pieno controllo su ingestion, indicizzazione, recupero e altro ancora.
Come funziona LlamaIndex?
LlamaIndex utilizza sistemi di Retrieval Augmented Generation (RAG) che combinano large language model con una base di conoscenza privata. In genere si compone di due fasi: la fase di indicizzazione e la fase di interrogazione.
Durante la fase di indicizzazione, LlamaIndex indicizzerà in modo efficiente i dati privati in un indice vettoriale. Questo passaggio aiuta a creare una base di conoscenza ricercabile specifica per il tuo dominio. Puoi fornire documenti di testo, record di database, knowledge graph e altri tipi di dati.
In sostanza, l’indicizzazione converte i dati in vettori numerici o embedding che ne catturano il significato semantico. Ciò consente ricerche per similarità rapide sul contenuto.
Fase di interrogazione
Durante la fase di interrogazione, la pipeline RAG cerca le informazioni più pertinenti in base alla query dell’utente. Queste informazioni vengono quindi fornite all’LLM, insieme alla query, per creare una risposta accurata.
Questo processo consente all’LLM di accedere a informazioni attuali e aggiornate che potrebbero non essere state incluse nel suo addestramento iniziale.
La principale sfida in questa fase è recuperare, organizzare e ragionare su basi di conoscenza potenzialmente multiple.
Scopri di più su RAG nel nostro code-along su Retrieval Augmented Generation con PineCone.
Configurare LlamaIndex
Prima di entrare nel nostro tutorial e progetto con LlamaIndex, dobbiamo installare il pacchetto Python e configurare l’API.
Possiamo installare LlamaIndex semplicemente con pip.
Per impostazione predefinita, LlamaIndex usa il modello OpenAI GPT-3 text-davinci-003. Per usare questo modello, devi avere impostata una OPENAI_API_KEY. Puoi creare un account gratuito e ottenere una chiave API accedendo a OpenAI’s new API token.
import os
os.environ["OPENAI_API_KEY"]="INSERT OPENAI KEY"Offerto da
Inoltre, assicurati di aver installato il pacchetto openai.
In questa sezione impareremo a usare LlamaIndex per creare un lettore di CV. Puoi scaricare il tuo CV andando sulla pagina profilo di Linkedin, cliccando su Altro e poi su Salva in PDF.
Nota che stiamo usando DataLab per eseguire il codice Python. Puoi accedere a tutto il codice e all’output pertinenti nel workbook LlamaIndex: Adding Personal Data to LLMs; puoi creare facilmente una tua copia per eseguire tutto il codice senza dover installare nulla sul tuo computer!
Prima di eseguire qualsiasi cosa, dobbiamo installare llama-index, openai e pypdf. Installiamo pypdf per poter leggere e convertire file PDF.
Abbiamo una directory chiamata "Private-Data" che contiene un solo file PDF. Useremo SimpleDirectoryReader per leggerlo e poi lo convertiremo in un indice usando TreeIndex.
from llama_index import TreeIndex, SimpleDirectoryReader
resume = SimpleDirectoryReader("Private-Data").load_data()
new_index = TreeIndex.from_documents(resume)Offerto da
Eseguire una query
Una volta indicizzati i dati, puoi iniziare a fare domande usando as_query_engine(). Questa funzione ti consente di porre domande su informazioni specifiche all’interno del documento e ricevere una risposta corrispondente con l’aiuto del modello OpenAI GPT-3 text-davinci-003.
Possiamo approfondire chiedendo delle certificazioni. Sembra che LlamaIndex abbia acquisito una comprensione completa del candidato, il che può essere vantaggioso per le aziende che cercano profili specifici.
response = query_engine.query("What is the name of certification that Abid received?")print(response)Offerto da
La creazione di un indice richiede tempo. Possiamo evitare di ricreare gli indici salvando il contesto. Per impostazione predefinita, il seguente comando salverà l’archivio dell’indice nella directory ./storage.
Una volta fatto, possiamo caricare rapidamente il contesto di archiviazione e creare un indice.
from llama_index import StorageContext, load_index_from_storage
storage_context = StorageContext.from_defaults(persist_dir="./storage")
index = load_index_from_storage(storage_context)Offerto da
Per verificare che funzioni correttamente, chiederemo al motore di query una domanda dal CV. Sembra che abbiamo caricato il contesto con successo.
query_engine = index.as_query_engine()
response = query_engine.query("What is Abid's job title?")print(response)Offerto da
Invece del classico Q&A, possiamo anche usare LlamaIndex per creare un chatbot personale. Dobbiamo solo inizializzare l’indice con la funzione as_chat_engine().
Faremo una domanda semplice.
query_engine = index.as_chat_engine()
response = query_engine.chat("What is the job title of Abid in 2021?")print(response)Offerto da
Abid's job title in2021is Data Science Consultant.Offerto da
E senza fornire ulteriore contesto, faremo domande di follow-up.
response = query_engine.chat("What else did he do during that time?")print(response)Offerto da
In 2021, Abid worked as a Data Science Consultant for Guidepoint, a Writer for Towards Data Science and Towards AI, a Technical Writer for Machine Learning Mastery, an Ambassador for Deepnote,and a Technical Writer for Start It Up.Offerto da
È evidente che il motore di chat funziona alla perfezione.
Successivamente, dobbiamo installare i pacchetti necessari. Il pacchetto elevenlabs ci consente di convertire facilmente il testo in parlato tramite un’API.
%pip install llama-index openai elevenlabsOfferto da
Usando SimpleDirectoryReader caricheremo i dati e convertiremo il file TXT in un archivio vettoriale usando VectorStoreIndex.
from llama_index import VectorStoreIndex, SimpleDirectoryReader
from IPython.display import Markdown, display
from llama_index.tts import ElevenLabsTTS
from IPython.display import Audio
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)Offerto da
Query
Il nostro piano è porre una domanda generale sul paese e ricevere una risposta dall’LLM tramite il query_engine.
query ="Tell me an interesting fact about the country?"
query_engine = index.as_query_engine()
response = query_engine.query(query)
display(Markdown(f"<b>{query}</b>"))
display(Markdown(f"<p>{response}</p>"))Offerto da
Text to speech
Dopodiché useremo il modulo llama_index.tts per accedere all’API di ElevenLabsTTS. Devi fornire la chiave API di ElevenLabs per avviare la funzione di generazione audio. Puoi ottenere una chiave API gratuitamente dal sito di ElevenLabs.
import os
elevenlabs_key = os.environ["ElevenLabs_key"]
tts = ElevenLabsTTS(api_key=elevenlabs_key)Offerto da
Aggiungeremo la risposta alla funzione generate_audio per generare una voce naturale. Per ascoltare l’audio, useremo la funzione Audio di IPython.display.
audio = tts.generate_audio(str(response))
Audio(audio)Offerto da
Questo è un esempio semplice. Puoi usare più moduli per creare il tuo assistente, come Siri, che risponde alle tue domande interpretando i tuoi dati privati. Per maggiori informazioni, consulta la documentazione di LlamaIndex.
LlamaIndex fornisce un toolkit completo per costruire applicazioni basate sul linguaggio. In più, puoi usare vari data loader e strumenti per agenti da Llama Hub per sviluppare applicazioni complesse con funzionalità multiple.
Puoi collegare fonti dati personalizzate al tuo LLM con uno o più plugin Data Loader.
Per approfondire questi casi d’uso, vai alla documentazione di LlamaIndex.
Conclusione
LlamaIndex offre un potente toolkit per costruire sistemi di retrieval-augmented generation che combinano i punti di forza dei large language model con basi di conoscenza personalizzate. Consente di creare un archivio indicizzato di dati specifici del dominio e di sfruttarlo in fase di inferenza per fornire all’LLM il contesto rilevante e generare risposte di alta qualità.
In questo tutorial abbiamo conosciuto LlamaIndex e come funziona. Inoltre, abbiamo costruito un lettore di CV e un progetto di text-to-speech con poche righe di codice Python. Creare un’applicazione LLM con LlamaIndex è semplice e offre un’ampia libreria di plugin, data loader e agenti.
Per diventare un esperto sviluppatore di LLM, il prossimo passo naturale è iscriverti al corso Master Large Language Models Concepts. Questo corso ti offrirà una comprensione completa degli LLM, incluse applicazioni, metodi di addestramento, considerazioni etiche e le ricerche più recenti.
In quanto data scientist certificato, sono appassionato di sfruttare tecnologie all’avanguardia per creare applicazioni di machine learning innovative. Con una solida esperienza in riconoscimento vocale, analisi e reportistica dei dati, MLOps, AI conversazionale e NLP, ho affinato le mie competenze nello sviluppo di sistemi intelligenti in grado di avere un impatto concreto. Oltre alla mia expertise tecnica, sono anche un comunicatore efficace, con il talento di rendere chiari e sintetici concetti complessi. Di conseguenza, sono diventato un blogger molto seguito in ambito data science, condividendo idee ed esperienze con una community in crescita di professionisti dei dati. Attualmente mi concentro sulla creazione e sull’editing di contenuti, lavorando con large language model per sviluppare contenuti potenti e coinvolgenti che possano aiutare aziende e singoli a valorizzare al meglio i propri dati.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
LlamaIndex è un framework dati per applicazioni basate su Large Language Models (LLM). Gli LLM come GPT-4 sono pre-addestrati su enormi dataset pubblici, offrendo fin da subito incredibili capacità di elaborazione del linguaggio naturale. Tuttavia, la loro utilità è limitata senza accesso ai tuoi dati privati.
LlamaIndex ti consente di acquisire dati da API, database, PDF e altro tramite connettori dati flessibili. Questi dati vengono indicizzati in rappresentazioni intermedie ottimizzate per gli LLM. LlamaIndex permette poi di fare query e conversazioni in linguaggio naturale sui tuoi dati tramite motori di interrogazione, interfacce chat e agenti dati alimentati da LLM. Consente ai tuoi LLM di accedere e interpretare dati privati su larga scala senza riaddestrare il modello su dati più recenti.
Che tu sia un principiante in cerca di un modo semplice per interrogare i tuoi dati in linguaggio naturale o un utente avanzato che richiede una profonda personalizzazione, LlamaIndex fornisce gli strumenti. Le API di alto livello permettono di iniziare in sole cinque righe di codice, mentre le API di basso livello offrono il pieno controllo su ingestion, indicizzazione, recupero e altro ancora.
Come funziona LlamaIndex?
LlamaIndex utilizza sistemi di Retrieval Augmented Generation (RAG) che combinano large language model con una base di conoscenza privata. In genere si compone di due fasi: la fase di indicizzazione e la fase di interrogazione.
Immagine da High-Level Concepts
Fase di indicizzazione
Durante la fase di indicizzazione, LlamaIndex indicizzerà in modo efficiente i dati privati in un indice vettoriale. Questo passaggio aiuta a creare una base di conoscenza ricercabile specifica per il tuo dominio. Puoi fornire documenti di testo, record di database, knowledge graph e altri tipi di dati.
In sostanza, l’indicizzazione converte i dati in vettori numerici o embedding che ne catturano il significato semantico. Ciò consente ricerche per similarità rapide sul contenuto.
Fase di interrogazione
Durante la fase di interrogazione, la pipeline RAG cerca le informazioni più pertinenti in base alla query dell’utente. Queste informazioni vengono quindi fornite all’LLM, insieme alla query, per creare una risposta accurata.
Questo processo consente all’LLM di accedere a informazioni attuali e aggiornate che potrebbero non essere state incluse nel suo addestramento iniziale.
La principale sfida in questa fase è recuperare, organizzare e ragionare su basi di conoscenza potenzialmente multiple.
Scopri di più su RAG nel nostro code-along su Retrieval Augmented Generation con PineCone.
Configurare LlamaIndex
Prima di entrare nel nostro tutorial e progetto con LlamaIndex, dobbiamo installare il pacchetto Python e configurare l’API.
Possiamo installare LlamaIndex semplicemente con pip.
Per impostazione predefinita, LlamaIndex usa il modello OpenAI GPT-3 text-davinci-003. Per usare questo modello, devi avere impostata una
OPENAI_API_KEY. Puoi creare un account gratuito e ottenere una chiave API accedendo a OpenAI’s new API token.Inoltre, assicurati di aver installato il pacchetto
openai.Aggiungere dati personali agli LLM con LlamaIndex
In questa sezione impareremo a usare LlamaIndex per creare un lettore di CV. Puoi scaricare il tuo CV andando sulla pagina profilo di Linkedin, cliccando su Altro e poi su Salva in PDF.
Nota che stiamo usando DataLab per eseguire il codice Python. Puoi accedere a tutto il codice e all’output pertinenti nel workbook LlamaIndex: Adding Personal Data to LLMs; puoi creare facilmente una tua copia per eseguire tutto il codice senza dover installare nulla sul tuo computer!
Prima di eseguire qualsiasi cosa, dobbiamo installare
llama-index,openaiepypdf. Installiamopypdfper poter leggere e convertire file PDF.Caricare i dati e creare l’indice
Abbiamo una directory chiamata "Private-Data" che contiene un solo file PDF. Useremo
SimpleDirectoryReaderper leggerlo e poi lo convertiremo in un indice usandoTreeIndex.Eseguire una query
Una volta indicizzati i dati, puoi iniziare a fare domande usando
as_query_engine(). Questa funzione ti consente di porre domande su informazioni specifiche all’interno del documento e ricevere una risposta corrispondente con l’aiuto del modello OpenAIGPT-3 text-davinci-003.Nota: puoi configurare l’API di OpenAI in DataLab seguendo il tutorial Usare GPT-3.5 e GPT-4 tramite l’API di OpenAI in Python.
Come possiamo vedere, il modello LLM ha risposto accuratamente alla query. Ha cercato nell’indice e trovato le informazioni pertinenti.
Possiamo approfondire chiedendo delle certificazioni. Sembra che LlamaIndex abbia acquisito una comprensione completa del candidato, il che può essere vantaggioso per le aziende che cercano profili specifici.
Salvare e caricare il contesto
La creazione di un indice richiede tempo. Possiamo evitare di ricreare gli indici salvando il contesto. Per impostazione predefinita, il seguente comando salverà l’archivio dell’indice nella directory
./storage.Una volta fatto, possiamo caricare rapidamente il contesto di archiviazione e creare un indice.
Per verificare che funzioni correttamente, chiederemo al motore di query una domanda dal CV. Sembra che abbiamo caricato il contesto con successo.
Chatbot
Invece del classico Q&A, possiamo anche usare LlamaIndex per creare un chatbot personale. Dobbiamo solo inizializzare l’indice con la funzione
as_chat_engine().Faremo una domanda semplice.
E senza fornire ulteriore contesto, faremo domande di follow-up.
È evidente che il motore di chat funziona alla perfezione.
Dopo aver costruito la tua applicazione linguistica, il passo successivo nella tua roadmap è leggere pro e contro dell’uso dei Large Language Models (LLM) nel cloud rispetto all’esecuzione locale. Questo ti aiuterà a capire quale approccio si adatta meglio alle tue esigenze.
Creare Wiki Text to Speech con LlamaIndex
Il nostro prossimo progetto prevede lo sviluppo di un’applicazione che possa rispondere a domande provenienti da Wikipedia e convertirle in parlato.
Il codice sorgente e informazioni aggiuntive sono disponibili in questo workbook DataLab.
Web scraping della pagina di Wikipedia
Per prima cosa effettueremo lo scraping dei dati dalla pagina Italy - Wikipedia e li salveremo come file
italy_text.txtnella cartelladata.Caricare i dati e costruire l’indice
Successivamente, dobbiamo installare i pacchetti necessari. Il pacchetto
elevenlabsci consente di convertire facilmente il testo in parlato tramite un’API.Usando
SimpleDirectoryReadercaricheremo i dati e convertiremo il file TXT in un archivio vettoriale usandoVectorStoreIndex.Query
Il nostro piano è porre una domanda generale sul paese e ricevere una risposta dall’LLM tramite il
query_engine.Text to speech
Dopodiché useremo il modulo
llama_index.ttsper accedere all’API di ElevenLabsTTS. Devi fornire la chiave API di ElevenLabs per avviare la funzione di generazione audio. Puoi ottenere una chiave API gratuitamente dal sito di ElevenLabs.Aggiungeremo la risposta alla funzione
generate_audioper generare una voce naturale. Per ascoltare l’audio, useremo la funzioneAudiodiIPython.display.Questo è un esempio semplice. Puoi usare più moduli per creare il tuo assistente, come Siri, che risponde alle tue domande interpretando i tuoi dati privati. Per maggiori informazioni, consulta la documentazione di LlamaIndex.
Oltre a LlamaIndex, anche LangChain ti permette di creare applicazioni basate su LLM. Inoltre, puoi leggere Introduzione a LangChain per Data Engineering e Data Applications per avere una panoramica di ciò che puoi fare con LangChain, inclusi i problemi che risolve ed esempi di casi d’uso sui dati.
Casi d’uso di LlamaIndex
LlamaIndex fornisce un toolkit completo per costruire applicazioni basate sul linguaggio. In più, puoi usare vari data loader e strumenti per agenti da Llama Hub per sviluppare applicazioni complesse con funzionalità multiple.
Puoi collegare fonti dati personalizzate al tuo LLM con uno o più plugin Data Loader.
Data Loader da Llama Hub
Puoi anche usare strumenti per Agent per integrare tool e API di terze parti.
Strumenti per Agent da Llama Hub
In breve, puoi usare LlamaIndex per costruire:
Per approfondire questi casi d’uso, vai alla documentazione di LlamaIndex.
Conclusione
LlamaIndex offre un potente toolkit per costruire sistemi di retrieval-augmented generation che combinano i punti di forza dei large language model con basi di conoscenza personalizzate. Consente di creare un archivio indicizzato di dati specifici del dominio e di sfruttarlo in fase di inferenza per fornire all’LLM il contesto rilevante e generare risposte di alta qualità.
In questo tutorial abbiamo conosciuto LlamaIndex e come funziona. Inoltre, abbiamo costruito un lettore di CV e un progetto di text-to-speech con poche righe di codice Python. Creare un’applicazione LLM con LlamaIndex è semplice e offre un’ampia libreria di plugin, data loader e agenti.
Per diventare un esperto sviluppatore di LLM, il prossimo passo naturale è iscriverti al corso Master Large Language Models Concepts. Questo corso ti offrirà una comprensione completa degli LLM, incluse applicazioni, metodi di addestramento, considerazioni etiche e le ricerche più recenti.