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 vengono forniti per aiutarti a esplorare gli approcci o a sviluppare la tua applicazione.
LlamaIndex è un framework di orchestrazione dell'AI generativa che ti consente di connettere e integrare origini dati con modelli linguistici di grandi dimensioni (LLM). Puoi utilizzare LlamaIndex per creare applicazioni che accedono ed eseguono query su informazioni da 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 basati sulla conoscenza con funzionalità di Retrieval-Augmented Generation (RAG).
LlamaIndex è ideale per le applicazioni incentrate sui documenti perché enfatizza la gestione strutturata dei documenti, il che semplifica l'indicizzazione e il recupero. Questo framework è caratterizzato da meccanismi di query ottimizzati che migliorano la velocità e la pertinenza dell'accesso alle informazioni, nonché una gestione robusta dei metadati per un filtraggio più preciso.
Per saperne di più sul framework LlamaIndex, consulta la documentazione del prodotto LlamaIndex.
Componenti di LlamaIndex
AlloyDB Omni offre le seguenti interfacce LlamaIndex:
- Vector Store
- Document Store
- Index Stores
- Chat Stores
- Lettore documenti
Scopri come utilizzare LlamaIndex con la guida rapida per AlloyDB Omni.
Vector Store
Questa integrazione di LlamaIndex ti consente di utilizzare la natura solida e scalabile di AlloyDB Omni per archiviare e gestire i dati di LlamaIndex. Combinando le funzionalità di indicizzazione e query di LlamaIndex con le prestazioni e l'affidabilità elevate di AlloyDB Omni, puoi creare applicazioni basate su LLM più efficienti e scalabili.
LlamaIndex suddivide un documento (doc, testo e PDF) in componenti del documento chiamati nodi. VectorStore può contenere solo i vettori di incorporamento dei contenuti dei nodi inseriti e il testo dei nodi. Un nodo contiene contenuti di testo, incorporamenti di vettori e metadati. Puoi applicare filtri a questi campi di metadati per limitare il recupero dei nodi a quelli che corrispondono ai criteri dei metadati specificati.
Per lavorare con gli spazi vettoriali in AlloyDB Omni, utilizza la classe
AlloyDBVectorStore
. Per saperne di più, consulta la sezione
LlamaIndex Vector Stores.
Memorizzare gli incorporamenti vettoriali con la classe AlloyDBVectorStore
Il notebook AlloyDB Omni per l'archivio vettoriale mostra come eseguire le seguenti operazioni:
- Crea un
AlloyDBEngine
per connetterti alla tua istanza AlloyDB Omni utilizzandoAlloyDBEngine.from_connection_string()
. - Inizializza una tabella per archiviare i vector embedding.
- Crea un'istanza della classe di incorporamento utilizzando qualsiasi modello di incorporamento Llama Index.
- Inizializza un datastore vettoriale
AlloyDBVectorStore
predefinito. - Crea ed esegui query su un indice dallo store di vettori utilizzando VectorStoreIndex.
- Crea un archivio vettoriale personalizzato per archiviare e filtrare i metadati.
- Aggiungi un indice ANN per migliorare la latenza di ricerca.
Documenti e archivi di indici
L'integrazione di LlamaIndex Document Stores gestisce l'archiviazione e il recupero di documenti strutturati, ottimizzando le funzionalità incentrate sui documenti di LlamaIndex. Document Store archivia i contenuti correlati ai vettori nel vector store.
Per ulteriori informazioni, consulta la documentazione del prodotto LlamaIndex Document Stores.
Gli Index Store facilitano la gestione degli indici per consentire query e recupero dei dati rapidi, ad esempio indice di riepilogo, parole chiave e albero. Index
in
LlamaIndex è uno spazio di archiviazione leggero solo per i metadati dei nodi. Gli aggiornamenti ai metadati dei nodi non richiedono la reindicizzazione (generazione di incorporamenti di lettura) dell'intero nodo o di tutti i nodi di un documento.
Per saperne di più, consulta LlamaIndex Index Stores.
Archiviazione di documenti e indici
Il notebook AlloyDB Omni
per Document Stores mostra come utilizzare AlloyDB Omni per archiviare
documenti e indici utilizzando le classi AlloyDBDocumentStore
e AlloyDBIndexStore
. Imparerai a:
- Crea un
AlloyDBEngine
per connetterti alla tua istanza AlloyDB Omni utilizzandoAlloyDBEngine.from_connection_string()
. - Crea tabelle per DocumentStore e IndexStore.
- Inizializza un valore predefinito
AlloyDBDocumentStore
. - Configura un
AlloyDBIndexStore
. - Aggiungi documenti a
Docstore
. - Utilizza Document Store con più indici.
- Carica gli indici esistenti.
Chat Stores
Chat Stores mantiene la cronologia e il contesto delle conversazioni per le applicazioni basate sulla chat, consentendo interazioni personalizzate. Gli archivi delle chat forniscono un repository centrale 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 stateless, il che significa che non mantengono gli input precedenti, a meno che non vengano forniti esplicitamente ogni volta. Utilizzando un archivio 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 l'archiviazione e il recupero efficienti del contesto conversazionale, consentendo interazioni più personalizzate e sensibili al contesto nelle applicazioni di chat. Puoi integrare il modulo di memoria in LlamaIndex con un ChatStore e un ChatMemoryBuffer. Per saperne di più, vedi LlamaIndex Chat Stores.
Memorizzare la cronologia chat
Il notebook AlloyDB Omni
per Chat Stores mostra come utilizzare AlloyDB for PostgreSQL
per archiviare la cronologia
delle chat utilizzando la classe AlloyDBChatStore
. Imparerai a:
- Crea un
AlloyDBEngine
per connetterti alla tua istanza AlloyDB Omni utilizzandoAlloyDBEngine.from_connection_string()
. - Inizializza un valore predefinito
AlloyDBChatStore
. - Crea un
ChatMemoryBuffer
. - Crea un'istanza della classe LLM.
- Utilizza
AlloyDBChatStore
senza un contesto di archiviazione. - Utilizza
AlloyDBChatStore
con un contesto di archiviazione. - Crea e utilizza Chat Engine.
Lettore 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 archivia un testo e i metadati associati. Puoi utilizzare Document Readers per caricare i documenti che vuoi archiviare in Document Stores o utilizzare per creare indici.
Per saperne di più, 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 alla tua istanza AlloyDB Omni utilizzandoAlloyDBEngine.from_connection_string()
. - Crea
AlloyDBReader
. - Carica i documenti utilizzando l'argomento
table_name
. - Carica 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 AI locale su Kubernetes.