Database vettoriali per il prompting
Esplori come i database vettoriali memorizzano e recuperano informazioni pertinenti da fornire efficacemente ai prompt RAG.
Database vettoriali per il prompting è una lezione AI Prompt Engineering gratuita su CoddyKit. Questa è la lezione 3 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Prompt Engineering, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Prompt Engineering include 3 lezioni in totale.
Cosa sono i database vettoriali?
Benvenuto nel mondo dei database vettoriali (VDB)! Questi database specializzati stanno rivoluzionando il lavoro con i Large Language Models (LLM).
I VDB memorizzano le informazioni sotto forma di vettori numerici, ovvero semplici liste di numeri. Ciò consente loro di trovare rapidamente dati "semanticamente simili", ossia con un significato di fondo simile, non solo parole chiave corrispondenti.
Il linguaggio come numeri: embedding
Prima che i dati entrino in un VDB, vengono trasformati in un embedding. Un embedding è una rappresentazione numerica del testo, in cui parole o frasi con significati simili si trovano vicine in uno spazio multidimensionale.
- Da testo a vettore: Un modello di embedding converte il testo in un vettore.
- Significato preservato: Questi vettori catturano il significato semantico del testo.
- Il linguaggio dell'LLM: È così che gli LLM "comprendono" ed elaborano il linguaggio internamente.
Memorizzazione dei dati in un database vettoriale
Consideri un database vettoriale come una biblioteca altamente organizzata in cui ogni libro, o frammento di testo, è contrassegnato da un'impronta numerica univoca: il relativo vettore di embedding.
Quando si aggiungono dati a un VDB, il processo è il seguente:
- Se necessario, il testo viene suddiviso in frammenti più piccoli.
- Ogni frammento viene convertito in un vettore di embedding.
- Il VDB memorizza questo vettore insieme al testo originale e a tutti i metadati associati.
Il potere della ricerca per similarità
Il vero punto di forza dei VDB risiede nella capacità di eseguire la ricerca per similarità. Anziché cercare corrispondenze tra parole chiave, individuano vettori numericamente "vicini" al vettore della query.
Ciò significa che, se chiede informazioni sui "compagni canini", un VDB può recuperare documenti che menzionano "cani" o "animali domestici", anche se quelle parole esatte non sono presenti. Comprende il significato di fondo!
I VDB nella Retrieval Augmented Generation (RAG)
I database vettoriali sono il componente centrale del passaggio di "recupero" in un sistema RAG. Fungono da base di conoscenze esterna a cui gli LLM possono attingere.
Ecco il flusso semplificato:
- L'utente pone una domanda.
- La domanda viene convertita in un vettore.
- Il VDB individua i frammenti di documenti più pertinenti (vettori).
- Questi frammenti vengono inviati all'LLM come contesto per rispondere alla domanda.
Popolamento di un VDB: codice illustrativo
Vediamo un esempio concettuale in Python di come si possano aggiungere documenti a un database vettoriale. Questo processo prevede la trasformazione del testo in embedding e quindi la memorizzazione dei vettori risultanti.
Ricordi che questo codice è solo illustrativo e che, in un ambiente reale, richiede librerie client specifiche per database vettoriali e un modello di embedding.
import numpy as np
# Imagine an embedding model function
def get_embedding(text):
# In a real scenario, this uses an LLM API
# or a local embedding model.
# For illustration, let's return a dummy vector.
return np.random.rand(128).tolist() # 128-dim vector
# Imagine a simplified VectorDB client
class SimpleVectorDB:
def __init__(self):
self.vectors = {} # Stores {id: {'vector': [...], 'text': '...'}}
def add_document(self, doc_id, text_content):
vector = get_embedding(text_content)
self.vectors[doc_id] = {'vector': vector, 'text': text_content}
print(f"Added '{text_content[:20]}...' (ID: {doc_id})")
# --- Main simulation ---
db = SimpleVectorDB()
db.add_document("doc1", "The capital of France is Paris.")
db.add_document("doc2", "Eiffel Tower is a landmark in Paris.")
db.add_document("doc3", "Berlin is the capital of Germany.")Interrogazione di un VDB: codice illustrativo
Una volta popolato il database vettoriale, è possibile interrogarlo per trovare le informazioni pertinenti. Anche la query viene convertita in un embedding, dopodiché il VDB cerca i vettori più vicini.
Questo codice Python concettuale mostra come cercare contenuti semanticamente simili.
import numpy as np
from scipy.spatial.distance import cosine # For similarity
# (Re-using get_embedding and SimpleVectorDB conceptually)
def get_embedding(text):
return np.random.rand(128).tolist()
class SimpleVectorDB:
def __init__(self):
self.vectors = {}
def add_document(self, doc_id, text_content):
vector = get_embedding(text_content)
self.vectors[doc_id] = {'vector': vector, 'text': text_content}
def search(self, query_text, top_k=1):
query_vector = get_embedding(query_text)
scores = []
for doc_id, data in self.vectors.items():
doc_vector = data['vector']
# Cosine similarity: 1 - cosine distance
similarity = 1 - cosine(query_vector, doc_vector)
scores.append({'id': doc_id, 'text': data['text'], 'score': similarity})
# Sort by similarity in descending order
scores.sort(key=lambda x: x['score'], reverse=True)
return scores[:top_k]
# --- Main simulation ---
db = SimpleVectorDB()
db.add_document("doc1", "The capital of France is Paris.")
db.add_document("doc2", "Eiffel Tower is a landmark in Paris.")
db.add_document("doc3", "Berlin is the capital of Germany.")
user_query = "What is the capital city of France?"
results = db.search(user_query, top_k=2)
print(f"Query: '{user_query}'")
print("Top results:")
for res in results:
print(f"- Text: '{res['text']}' (Score: {res['score']:.2f})")Vantaggi principali dell'uso dei VDB
L'integrazione dei database vettoriali nel flusso di lavoro RAG offre vantaggi significativi:
- Ricerca semantica: trova risultati in base al significato, non solo alle parole chiave.
- Riduzione delle allucinazioni: fornisce agli LLM dati fattuali esterni come base, rendendo le risposte più affidabili.
- Scalabilità: gestisce in modo efficiente grandi quantità di dati non strutturati.
- Aggiornamenti in tempo reale: può essere aggiornato facilmente con nuove informazioni, mantenendo aggiornato il contesto dell'LLM.
Aspetti importanti relativi ai VDB
Per ottenere le migliori prestazioni dalla configurazione del database vettoriale, è opportuno considerare i seguenti aspetti:
- Scelta del modello di embedding: la qualità degli embedding influisce direttamente sull'accuratezza della ricerca.
- Strategia di suddivisione in chunk: il modo in cui si suddividono i documenti (ad es. per paragrafo o frase) influisce sul livello di granularità del recupero.
- Freschezza dei dati: aggiornare regolarmente il VDB con nuove informazioni garantisce che l'LLM disponga del contesto più recente.
- Metadati: archiviare metadati utili insieme ai vettori consente di filtrare e migliorare il recupero.
Verifica rapida: i VDB nel RAG
I database vettoriali svolgono un ruolo fondamentale nel migliorare le prestazioni e l'affidabilità degli LLM. Questa è l'occasione per verificare la comprensione della loro funzione principale all'interno di un sistema di Retrieval Augmented Generation (RAG).
Riepilogo: VDB e LLM
In questa lezione abbiamo analizzato i database vettoriali e il loro ruolo fondamentale nelle moderne applicazioni di IA, soprattutto con RAG.
- I VDB archiviano embedding numerici che rappresentano il significato del testo.
- Consentono una potente ricerca semantica, individuando le informazioni in base al contesto.
- I VDB migliorano notevolmente gli LLM fornendo dati esterni e fattuali, che portano a output più accurati e affidabili.
Acquisire padronanza dei VDB è fondamentale per creare sistemi di IA solidi e intelligenti!
Domande Frequenti
La lezione «Database vettoriali per il prompting» è gratuita?
Sì — il testo completo di «Database vettoriali per il prompting» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Prompt Engineering, passa a CoddyKit PRO. Il corso AI Prompt Engineering include 3 lezioni in totale.
Cosa imparerò in «Database vettoriali per il prompting»?
Esplori come i database vettoriali memorizzano e recuperano informazioni pertinenti da fornire efficacemente ai prompt RAG. Eserciti AI Prompt Engineering con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AI Prompt Engineering?
Non è richiesta alcuna esperienza precedente. AI Prompt Engineering su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 3.
Quanto tempo richiede la lezione «Database vettoriali per il prompting»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AI Prompt Engineering?
Sì. Ogni lezione AI Prompt Engineering include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Prompting con dati esterni
- Retrieval Augmented Generation (RAG)
- Database vettoriali per il prompting