Questa pagina descrive alcuni casi d'uso per la creazione di applicazioni basate su LLM utilizzando LlamaIndex integrato con AlloyDB per PostgreSQL. I link ai notebook su GitHub sono 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 e interrogano informazioni da dati privati o specifici di un dominio utilizzando query in linguaggio naturale.
LlamaIndex funge da ponte tra i dati personalizzati e gli LLM, facilitando lo sviluppo di applicazioni di assistenza alla conoscenza con funzionalità di Retrieval-Augmented Generation (RAG).
LlamaIndex è ideale per le applicazioni incentrate sui documenti perché enfatizza la gestione strutturata dei documenti, semplificando l'indicizzazione e il recupero. Questo framework include meccanismi di query ottimizzati che migliorano la velocità e la pertinenza dell'accesso alle informazioni, oltre a una gestione efficace dei metadati per un filtro dettagliato.
Per ulteriori informazioni sul framework LlamaIndex, consulta la documentazione del prodotto LlamaIndex.
Componenti LlamaIndex
AlloyDB offre le seguenti interfacce LlamaIndex:
- Vector Store
- Archivio documenti
- Index Store
- Chat Stores
- Document Reader
Scopri come utilizzare LlamaIndex con la guida rapida per AlloyDB.
Vector Store
Questa integrazione di LlamaIndex ti consente di utilizzare la natura solida e scalabile di AlloyDB per archiviare e gestire i tuoi dati LlamaIndex. Combinando le funzionalità di indicizzazione e query di LlamaIndex con le prestazioni e l'affidabilità elevate di AlloyDB, puoi creare applicazioni basate su LLM più efficienti e scalabili.
LlamaIndex suddivide un documento (doc, testo e PDF) in componenti chiamati nodi. VectorStore può contenere solo i vettori di incorporamento dei contenuti dei nodi importati e il testo dei nodi. Un nodo, che è un concetto di prima classe, contiene contenuti di testo, vector embedding 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 i vector store in AlloyDB, utilizza la classe AlloyDBVectorStore.
Per saperne di più, consulta LlamaIndex Vector Stores.
Archivia i vector embedding con la classe AlloyDBVectorStore
Il notebook AlloyDB per il vector store mostra come:
- Inizializza una tabella per archiviare i vector embedding
- Crea un'istanza della classe di embedding utilizzando un modello di embedding Llama Index.
- Inizializza un vector store
AlloyDBVectorStorepredefinito. - Crea un indice dal vector store ed esegui query utilizzando VectorStoreIndex.
- Crea un Vector Store personalizzato per archiviare e filtrare i metadati in modo efficace.
- Aggiungi un indice ANN per migliorare la latenza di ricerca.
Archivi di documenti e indici
L'integrazione con gli archivi di documenti LlamaIndex gestisce l'archiviazione e il recupero di documenti strutturati, ottimizzando le funzionalità incentrate sui documenti di LlamaIndex. Il datastore dei documenti archivia i contenuti correlati ai vettori nel datastore dei vettori.
Per saperne di più, consulta la documentazione del prodotto LlamaIndex Document Stores.
Gli archivi di indici facilitano la gestione degli indici per consentire l'esecuzione rapida di query e il recupero dei dati, ad esempio l'indice di riepilogo, di parole chiave e ad 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 embedding di lettura) del nodo completo o di tutti i nodi di un documento.
Per saperne di più, consulta LlamaIndex Index Stores.
Archivia documenti e indici
Il blocco note AlloyDB per gli archivi di documenti mostra come utilizzare AlloyDB per archiviare documenti e indici utilizzando le classi AlloyDBDocumentStore e AlloyDBIndexStore.
Imparerai a:
- Crea un
AlloyDBEngineutilizzandoAlloyDBEngine.from_instance(). - Crea tabelle per DocumentStore e IndexStore.
- Inizializza un
AlloyDBDocumentStorepredefinito. - Configura un
AlloyDBIndexStore. - Aggiungi documenti alla
Docstore. - Utilizza gli archivi di documenti con più indici.
- Carica gli indici esistenti.
Chat Stores
I datastore di chat mantengono la cronologia e il contesto delle conversazioni per le applicazioni basate su chat, consentendo interazioni personalizzate. I Chat Store forniscono un repository centrale che archivia e recupera i messaggi chat all'interno di una conversazione, consentendo all'LLM di mantenere il contesto e fornire risposte più pertinenti in base al dialogo in corso.
I modelli linguistici di grandi dimensioni sono stateless per impostazione predefinita, il che significa che non conservano gli input precedenti, a meno che non vengano forniti esplicitamente ogni volta. Utilizzando un archivio di 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 di conversazione, 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ù, consulta LlamaIndex
Chat Stores.
Memorizza la cronologia chat
Il notebook AlloyDB per gli archivi di chat mostra come utilizzare AlloyDB for
PostgreSQL per archiviare la cronologia chat utilizzando la classe AlloyDBChatStore. Imparerai a:
- Crea un
AlloyDBEngineutilizzandoAlloyDBEngine.from_instance(). - Inizializza un
AlloyDBChatStorepredefinito. - Crea un
ChatMemoryBuffer. - Crea un'istanza di classe LLM.
- Utilizza
AlloyDBChatStoresenza un contesto di archiviazione. - Utilizza
AlloyDBChatStorecon un contesto di archiviazione. - Creare e utilizzare il motore di chat.
Document Reader
Document Reader recupera e trasforma in modo efficiente i dati da AlloyDB 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 una parte di testo e i metadati associati. Puoi utilizzare i Document Reader per caricare i documenti che vuoi archiviare nei Document Store o utilizzare per creare indici.
Per saperne di più, consulta Document Reader di LlamaIndex.
Recupera i dati come documenti
Il blocco note AlloyDB per Document Reader mostra come utilizzare AlloyDB per recuperare i dati come documenti utilizzando la classe AlloyDBReader. Imparerai a:
- Crea un
AlloyDBEngineutilizzandoAlloyDBEngine.from_instance(). - 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.