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 Cloud SQL per PostgreSQL. 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é da 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

Cloud SQL per PostgreSQL offre le seguenti interfacce LlamaIndex:

  • Vector Store
  • Document Store
  • Index Stores
  • Chat Stores
  • Lettore documenti

Scopri come utilizzare LlamaIndex con la guida rapida per Cloud SQL per PostgreSQL.

Vector Store

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

LlamaIndex suddivide un documento (doc, testo e PDF) in componenti chiamati nodi. VectorStore può contenere solo i vettori di incorporamento dei contenuti dei nodi inseriti e il testo dei nodi. Un nodo, che è un concetto di prima classe, contiene contenuti di testo, embedding vettoriali e metadati. Puoi applicare filtri a questi campi di metadati per limitare il recupero dei nodi a quelli che corrispondono ai criteri specificati per i metadati.

Per lavorare con gli spazi vettoriali in Cloud SQL per PostgreSQL, utilizza la classe PostgresVectorStore. Per maggiori informazioni, vedi LlamaIndex Vector Stores.

Archivia gli incorporamenti vettoriali con la classe PostgresVectorStore

La guida Cloud SQL per PostgreSQL per l'archivio vettoriale mostra come:

  • Inizializza una tabella per archiviare i vector embedding
  • Crea un'istanza della classe di incorporamento utilizzando qualsiasi modello di incorporamento dell'indice Llama.
  • Inizializza un datastore vettoriale PostgresVectorStore predefinito.
  • Crea ed esegui query su un indice dallo spazio di archiviazione vettoriale utilizzando VectorStoreIndex.
  • Crea un archivio vettoriale personalizzato per archiviare e filtrare in modo efficace 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à di LlamaIndex incentrate sui documenti. Document Store memorizza 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 rapide e il recupero dei dati, ad esempio indici di riepilogo, 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 (lettura dell'incorporamento generazione) 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 Cloud SQL per PostgreSQL per Document Stores mostra come utilizzare Cloud SQL per PostgreSQL per archiviare documenti e indici utilizzando le classi PostgresDocumentStore e PostgresIndexStore. Imparerai a:

  • Crea un PostgresEngine utilizzando PostgresEngine.from_instance().
  • Crea tabelle per DocumentStore e IndexStore.
  • Inizializza un PostgresDocumentStore predefinito.
  • Configura un database PostgresIndexStore.
  • Aggiungi documenti a Docstore.
  • Utilizza Document Store con più indici.
  • Carica gli indici esistenti.

Chat Stores

Gli archivi di chat mantengono la cronologia e il contesto delle conversazioni per le applicazioni basate sulla chat, consentendo interazioni personalizzate. Gli archivi della 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 conservano gli input precedenti, a meno che non vengano forniti esplicitamente ogni volta. Utilizzando un archivio 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, vedi LlamaIndex Chat Stores.

Memorizzare la cronologia chat

Il notebook Cloud SQL per PostgreSQLper Chat Stores mostra come utilizzare Cloud SQL per PostgreSQL per archiviare la cronologia della chat utilizzando la classe PostgresChatStore. Imparerai a:

  • Crea un PostgresEngine utilizzando PostgresEngine.from_instance().
  • Inizializzare un PostgresChatStore. predefinito
  • Crea un ChatMemoryBuffer.
  • Crea un'istanza della classe LLM.
  • Utilizza PostgresChatStore senza un contesto di archiviazione.
  • Utilizza PostgresChatStore con un contesto di archiviazione.
  • Crea e utilizza Chat Engine.

Lettore documenti

Document Reader recupera e trasforma in modo efficiente i dati da Cloud SQL per PostgreSQL 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 relativi metadati. Puoi utilizzare i lettori di documenti per caricare i documenti che vuoi archiviare negli archivi di documenti o utilizzare per creare indici.

Per saperne di più, consulta LlamaIndex Document Reader.

Recuperare i dati come documenti

Il notebook Cloud SQL per PostgreSQL per Document Reader mostra come utilizzare Cloud SQL per PostgreSQL per recuperare i dati come documenti utilizzando la classe PostgresReader. Imparerai a:

  • Crea un PostgresEngine utilizzando PostgresEngine.from_instance().
  • Crea PostgresReader.
  • 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