Creare applicazioni basate su LLM utilizzando LlamaIndex

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 utilizzando AlloyDBEngine.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 utilizzando AlloyDBEngine.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 utilizzando AlloyDBEngine.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 utilizzando AlloyDBEngine.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