Questa pagina descrive alcuni casi d'uso per la creazione di applicazioni basate su LLM utilizzando LlamaIndex integrato con AlloyDB Omni. I link ai notebook su GitHub sono forniti per aiutarti a esplorare approcci o a sviluppare la tua applicazione.
LlamaIndex è un framework di orchestrazione dell'IA generativa che ti consente di collegare e integrare le origini dati con i modelli linguistici di grandi dimensioni (LLM). Puoi utilizzare LlamaIndex per creare applicazioni che accedono a informazioni e eseguono query su dati privati o specifici del dominio utilizzando query in linguaggio naturale.
LlamaIndex funge da ponte tra i dati personalizzati e gli LLM, facilitando lo sviluppo di applicazioni di assistenti virtuali con funzionalità di RAG (Retrieval Augmented Generation).
LlamaIndex è adatto per le applicazioni incentrate sui documenti perché enfatizza la gestione dei documenti strutturati, il che semplifica l'indicizzazione e il recupero. Questo framework presenta meccanismi di query ottimizzati che migliorano la velocità e la pertinenza dell'accesso alle informazioni, oltre a una gestione solida dei metadati per filtri più sofisticati.
Per ulteriori informazioni sul framework LlamaIndex, consulta la documentazione del prodotto LlamaIndex.
Componenti di LlamaIndex
AlloyDB Omni offre le seguenti interfacce LlamaIndex:
- Negozio Vector
- Document Store
- Archivi di indici
- Negozi di Chat
- Lettore di documenti
Scopri come utilizzare LlamaIndex con la guida rapida per AlloyDB Omni.
Negozio Vector
Questa integrazione di LlamaIndex ti consente di utilizzare la natura solida e scalabile di AlloyDB Omni per archiviare e gestire i dati di LlamaIndex. Abbinando le funzionalità di indicizzazione e query di LlamaIndex all'elevata affidabilità e prestazioni di AlloyDB Omni, puoi creare applicazioni basate su LLM più efficienti e scalabili.
LlamaIndex suddivide un documento (documento, testo e PDF) in componenti del documento chiamati nodi. VectorStore può contenere solo i vettori di incorporamento dei contenuti dei nodi importati e il testo dei nodi. Un nodo contiene contenuti di testo, incorporamenti vettoriali e metadati. Puoi applicare filtri a questi campi dei metadati per limitare il recupero dei nodi a quelli che corrispondono ai criteri dei metadati specificati.
Per lavorare con gli store di vettori in AlloyDB Omni, utilizza la classe
AlloyDBVectorStore
. Per ulteriori informazioni, consulta
LlamaIndex Vector Stores.
Memorizza gli embedding vettoriali con la classe AlloyDBVectorStore
Il notebook AlloyDB Omni per l'archivio di vettori mostra come eseguire le seguenti operazioni:
- Crea un
AlloyDBEngine
per connetterti all'istanza AlloyDB Omni utilizzandoAlloyDBEngine.from_connection_string()
. - Inizializza una tabella per archiviare gli embedding vettoriali.
- Crea un'istanza di classe di embedding utilizzando qualsiasi modello di embedding dell'indice Llama.
- Inizializza un datastore vettoriale
AlloyDBVectorStore
predefinito. - Crea ed esegui query su un indice dal repository di vettori utilizzando VectorStoreIndex.
- Crea un archivio di vettori personalizzato per archiviare e filtrare i metadati.
- Aggiungi un indice ANN per migliorare la latenza di ricerca.
Documenti e indici
L'integrazione di Document Store di LlamaIndex gestisce l'archiviazione e il recupero di documenti strutturati, ottimizzandoli per le funzionalità document-centric di LlamaIndex. Document Store archivia i contenuti correlati ai vettori nel repository di vettori.
Per ulteriori informazioni, consulta la documentazione del prodotto LlamaIndex Document Stores.
Gli indici archiviati semplificano la gestione degli indici per consentire query e recupero dei dati rapidi, ad esempio di riepilogo, parole chiave e albero. Index
in
LlamaIndex è uno spazio di archiviazione leggero solo per i metadati del nodo. Gli aggiornamenti ai metadati dei nodi non richiedono la nuova indicizzazione (generazione di embedding di lettura) del nodo completo o di tutti i nodi di un documento.
Per saperne di più, consulta LlamaIndex Index Stores.
Archiviare documenti e indici
Il notebook AlloyDB Omni per Document Store mostra come utilizzare AlloyDB Omni per archiviare documenti e indici utilizzando le classi AlloyDBDocumentStore
e AlloyDBIndexStore
. Imparerai a:
- Crea un
AlloyDBEngine
per connetterti all'istanza AlloyDB Omni utilizzandoAlloyDBEngine.from_connection_string()
. - Crea tabelle per DocumentStore e IndexStore.
- Inizializza un
AlloyDBDocumentStore
predefinito. - Configura un
AlloyDBIndexStore
. - Aggiungi documenti al
Docstore
. - Utilizza Document Store con più indici.
- Carica gli indici esistenti.
Negozi di Chat
I Chat Store gestiscono la cronologia delle conversazioni e il contesto per le applicazioni basate su chat, consentendo interazioni personalizzate. I Chat Store forniscono un repository centralizzato che archivia e recupera i messaggi di chat all'interno di una conversazione, consentendo all'LLM di mantenere il contesto e fornire risposte più pertinenti in base al dialogo in corso.
Per impostazione predefinita, i modelli linguistici di grandi dimensioni sono a stato nullo, il che significa che non conservano gli input precedenti, a meno che non vengano forniti esplicitamente ogni volta. Con un magazzino chat, puoi preservare il contesto della conversazione, il che consente al modello di generare risposte più pertinenti e coerenti nel tempo.
Il modulo di memoria in LlamaIndex consente di archiviare e recuperare in modo efficiente il contesto conversazionale, consentendo interazioni più personalizzate e contestualizzate nelle applicazioni di chat. Puoi integrare il modulo di memoria in LlamaIndex con un ChatStore e un ChatMemoryBuffer. Per ulteriori informazioni, consulta LlamaIndex Chat Stores.
Memorizzare la cronologia chat
Il notebook AlloyDB Omni per Chat Store mostra come utilizzare AlloyDB for PostgreSQL
per archiviare la cronologia chat utilizzando la classe AlloyDBChatStore
. Imparerai a:
- Crea un
AlloyDBEngine
per connetterti all'istanza AlloyDB Omni utilizzandoAlloyDBEngine.from_connection_string()
. - Inizializza un
AlloyDBChatStore
predefinito. - Crea un
ChatMemoryBuffer
. - Crea un'istanza di classe LLM.
- Utilizza
AlloyDBChatStore
senza un contesto di archiviazione. - Utilizza
AlloyDBChatStore
con un contesto di archiviazione. - Crea e utilizza Chat Engine.
Lettore di documenti
Document Reader recupera e trasforma in modo efficiente i dati da AlloyDB Omni in formati compatibili con LlamaIndex per l'indicizzazione. L'interfaccia Document Reader fornisce metodi per caricare i dati da un'origine come Documents
.
Document è una classe che memorizza un frammento di testo e i metadati associati. Puoi utilizzare i lettori di documenti per caricare i documenti che vuoi archiviare negli archivi di documenti o utilizzare per creare gli indici.
Per ulteriori informazioni, consulta LlamaIndex Document Reader.
Recuperare i dati come documenti
Il notebook AlloyDB Omni per Document Reader mostra come utilizzare AlloyDB Omni per recuperare i dati come documenti utilizzando la classe AlloyDBReader
. Imparerai a:
- Crea un
AlloyDBEngine
per connetterti all'istanza AlloyDB Omni utilizzandoAlloyDBEngine.from_connection_string()
. - Crea
AlloyDBReader
. - Carica i documenti utilizzando l'argomento
table_name
. - Carica i documenti utilizzando una query SQL.
- Imposta il formato dei contenuti della pagina.
- Carica i documenti.
Passaggi successivi
- Crea applicazioni basate su LLM utilizzando LangChain.
- Scopri come eseguire il deployment di AlloyDB Omni e di un modello di IA locale su Kubernetes.