Crea applicazioni basate su LLM utilizzando LlamaIndex

Seleziona una versione della documentazione:

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 e interrogano 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 assistenza alla conoscenza con funzionalità di Retrieval-Augmented Generation (RAG).

LlamaIndex è particolarmente adatto 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 Omni 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 Omni.

Vector Store

Questa integrazione di LlamaIndex ti consente di utilizzare la natura solida e scalabile di AlloyDB Omni 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 Omni, puoi creare applicazioni basate su LLM più efficienti e scalabili.

LlamaIndex suddivide un documento (documenti, 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 contiene contenuti di testo, vector embedding 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 utilizzare i vector store in AlloyDB Omni, utilizza la classe AlloyDBVectorStore. Per saperne di più, consulta LlamaIndex Vector Stores.

Archivia i vector embedding con la classe AlloyDBVectorStore

Il blocco note di AlloyDB Omni per il vector store mostra come:

  • Crea un AlloyDBEngine per connetterti alla tua istanza AlloyDB Omni utilizzando AlloyDBEngine.from_connection_string().
  • Inizializza una tabella per archiviare i vector embedding.
  • Crea un'istanza di classe di embedding utilizzando un modello di embedding LlamaIndex.
  • Inizializza un vector store AlloyDBVectorStore predefinito.
  • Crea ed esegui query su un indice dal vector store utilizzando VectorStoreIndex.
  • Crea un vector store personalizzato per archiviare e filtrare i metadati.
  • 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) dell'intero nodo o di tutti i nodi di un documento.

Per saperne di più, consulta LlamaIndex Index Stores.

Archivia documenti e indici

Il blocco note AlloyDB Omni per gli archivi di documenti 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 utilizzando AlloyDBEngine.from_connection_string().
  • Crea tabelle per DocumentStore e IndexStore.
  • Inizializza un AlloyDBDocumentStore predefinito.
  • Configura un AlloyDBIndexStore.
  • Aggiungi documenti alla Docstore.
  • Utilizza gli archivi di documenti con più indici.
  • Carica gli indici esistenti.

Chat Stores

I Chat Store 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 di LlamaIndex consente di archiviare e recuperare in modo efficiente il contesto della 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 Omni per gli archivi di chat mostra come utilizzare AlloyDB Omni per archiviare la cronologia chat utilizzando la classe AlloyDBChatStore. Imparerai a:

  • Crea un AlloyDBEngine per connetterti alla tua 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.
  • Creare e utilizzare il motore di chat.

Document Reader

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 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 indici.

Recupera 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 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

- Scopri come [installare AlloyDB Omni](/alloydb/omni/linux/current/docs/deploy-vm).