Questa pagina descrive alcuni casi d'uso per la creazione di applicazioni basate su LLM utilizzando LlamaIndex integrato con AlloyDB per PostgreSQL. Vengono forniti link ai notebook su GitHub per aiutarti a esplorare gli approcci o per aiutarti a sviluppare la tua applicazione.
LlamaIndex è un framework di orchestrazione di AI generativa che consente di connettere e integrare le origini dati con modelli linguistici di grandi dimensioni (LLM). Puoi utilizzare LlamaIndex per creare applicazioni che accedono ed eseguono query sulle 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 assistente di conoscenza con funzionalità di Retrieval-Augmented Generation (RAG).
LlamaIndex è adatto alle applicazioni incentrate sui documenti perché enfatizza la gestione strutturata dei documenti, che semplifica l'indicizzazione e il recupero. Questo framework è dotato di meccanismi di query ottimizzati che migliorano la velocità e la pertinenza dell'accesso alle informazioni, nonché di una solida gestione dei metadati per un filtraggio sfumato.
Per ulteriori informazioni sul framework LlamaIndex, consulta la documentazione del prodotto LlamaIndex.
Componenti di LlamaIndex
AlloyDB offre le seguenti interfacce LlamaIndex:
- Vector Store
- Document Store
- Index Stores
- 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 dati di LlamaIndex. Combinando le funzionalità di indicizzazione ed esecuzione di 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 di documenti chiamati nodi. Il VectorStore può contenere solo i vettori di embedding dei contenuti dei nodi inseriti 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 a criteri di metadati specificati.
Per lavorare con i datastore vettoriali in
AlloyDB, utilizza la
AlloyDBVectorStore classe.
Per ulteriori informazioni, consulta LlamaIndex
Datastore vettoriali.
Archiviare i vector embedding con la classe AlloyDBVectorStore
Il notebook di AlloyDB per il datastore vettoriale mostra come eseguire le seguenti operazioni:
- Inizializzare una tabella per archiviare i vector embedding
- Creare un'istanza della classe di embedding utilizzando qualsiasi Llama Index embeddings model.
- Inizializzare un datastore vettoriale
AlloyDBVectorStorepredefinito. - Creare ed eseguire query su un indice dal datastore vettoriale utilizzando VectorStoreIndex.
- Creare un datastore vettoriale personalizzato per archiviare e filtrare efficacemente i metadati.
- Aggiungere un indice ANN per migliorare la latenza di ricerca.
Document Store e Index Store
L'integrazione di Document Store di LlamaIndex 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 datastore vettoriale.
Per ulteriori informazioni, consulta la documentazione del prodotto LlamaIndex Document Stores.
Index Store facilita la gestione degli indici per consentire l'esecuzione rapida di query e il recupero dei dati, ad esempio l'indice di riepilogo, parole chiave e albero.Index in LlamaIndex è un archivio leggero solo per i metadati del nodo. 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 ulteriori informazioni, consulta Index Store di LlamaIndex.
Archiviare documenti e indici
Il notebook AlloyDB per Document Store mostra come utilizzare AlloyDB per archiviare documenti e indici utilizzando le classi
AlloyDBDocumentStore e AlloyDBIndexStore.
Imparerai a eseguire le seguenti operazioni:
- Creare un
AlloyDBEngineutilizzandoAlloyDBEngine.from_instance(). - Creare tabelle per DocumentStore e IndexStore.
- Inizializzare un
AlloyDBDocumentStorepredefinito. - Configurare un
AlloyDBIndexStore. - Aggiungere documenti a
Docstore. - Utilizzare Document Store con più indici.
- Caricare gli indici esistenti.
Chat Store
Chat Store mantiene la cronologia e il contesto delle conversazioni per le applicazioni basate sulla chat, consentendo interazioni personalizzate. Chat Store fornisce 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.
Per impostazione predefinita, i modelli linguistici di grandi dimensioni non hanno stato, il che significa che non conservano gli input precedenti a meno che non vengano forniti esplicitamente ogni volta. Utilizzando un datastore di chat, puoi conservare 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 ulteriori informazioni, consulta Chat Store di
LlamaIndex.
Archiviare la cronologia chat
Il notebook AlloyDB
per Chat Store mostra come utilizzare AlloyDB for
PostgreSQL per archiviare la cronologia chat utilizzando la classe AlloyDBChatStore. Imparerai a eseguire le seguenti operazioni:
- Creare un
AlloyDBEngineutilizzandoAlloyDBEngine.from_instance(). - Inizializzare un
AlloyDBChatStorepredefinito. - Creare un
ChatMemoryBuffer. - Creare un'istanza della classe LLM.
- Utilizzare
AlloyDBChatStoresenza un contesto di archiviazione. - Utilizzare
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 un testo e i metadati associati. Puoi utilizzare
Document Reader per caricare i documenti che vuoi archiviare in Document Store o
utilizzati per creare indici.
Per ulteriori informazioni, consulta LlamaIndex Document Reader.
Recuperare i dati come documenti
Il notebook AlloyDB
per Document Reader mostra come utilizzare AlloyDB per recuperare i dati come documenti utilizzando la classe AlloyDBReader. Imparerai a eseguire le seguenti operazioni:
- Creare un
AlloyDBEngineutilizzandoAlloyDBEngine.from_instance(). - Creare
AlloyDBReader. - Caricare i documenti utilizzando l'argomento
table_name. - Caricare i documenti utilizzando una query SQL.
- Impostare il formato del contenuto della pagina.
- Caricare i documenti.