Vai al contenuto principale

LlamaIndex: aggiungere dati personali agli LLM

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.
Aggiornato 29 set 2026  · 10 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

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 dai concetti di alto livello

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.

pip install llama-index

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"

Inoltre, assicurati di aver installato il pacchetto openai.

pip install 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, openai e pypdf. Installiamo pypdf per poter leggere e convertire file PDF.

%pip install llama-index openai pypdf

Caricare i dati e creare l’indice

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)

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.

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.

query_engine = new_index.as_query_engine()
response = query_engine.query("When did Abid graduated?")
print(response)
Abid graduated in February 2014.

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)
Data Scientist Professional

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.

new_index.storage_context.persist()

creazione di un indice

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)

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)
Abid's job title is Technical Writer.

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.

query_engine = index.as_chat_engine()
response = query_engine.chat("What is the job title of Abid in 2021?")
print(response)
Abid's job title in 2021 is Data Science Consultant.

E senza fornire ulteriore contesto, faremo domande di follow-up.

response = query_engine.chat("What else did he do during that time?")
print(response)
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.

È 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.txt nella cartella data.

from pathlib import Path

import requests

response = requests.get(
    "https://en.wikipedia.org/w/api.php",
    params={
        "action": "query",
        "format": "json",
        "titles": "Italy",
        "prop": "extracts",
        # 'exintro': True,
        "explaintext": True,
    },
).json()
page = next(iter(response["query"]["pages"].values()))
italy_text = page["extract"]

data_path = Path("data")

if not data_path.exists():
    Path.mkdir(data_path)

with open("data/italy_text.txt", "w") as fp:
    fp.write(italy_text)

importazione del testo su Italy

Caricare i dati e costruire l’indice

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 elevenlabs

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)

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>"))

Prompt e output

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)

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)

output audio

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

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

Strumenti per Agent da Llama Hub

In breve, puoi usare LlamaIndex per costruire:

  • Q&A sui documenti
  • Chatbot
  • Agenti
  • Dati strutturati
  • Applicazioni web full-stack
  • Setup privati

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.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

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.

Argomenti
Intelligenza artificiale
Correlato

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

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.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

Mostra AltroMostra Altro