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

LlamaIndex è adatto alle applicazioni incentrate sui documenti perché enfatizza la gestione dei documenti strutturati, 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

Cloud SQL per PostgreSQL offre le seguenti interfacce LlamaIndex:

  • Datastore vettoriale
  • Datastore di documenti
  • Datastore di indici
  • Datastore di chat
  • Lettore di documenti

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

Datastore vettoriale

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 ed esecuzione di query di LlamaIndex con le prestazioni e l'affidabilità elevate di Cloud SQL per PostgreSQL, 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 importati 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 di metadati specificati.

Per lavorare con i datastore vettoriali in Cloud SQL per PostgreSQL, utilizza la PostgresVectorStore classe. Per ulteriori informazioni, consulta LlamaIndex Datastore vettoriali.

Archiviare gli embedding vettoriali con la classe PostgresVectorStore

Il Cloud SQL per PostgreSQL per il datastore vettoriale mostra come eseguire le seguenti operazioni:

  • Inizializzare una tabella per archiviare gli embedding vettoriali
  • Creare un'istanza della classe di embedding utilizzando qualsiasi Llama Index embeddings model.
  • Inizializzare un datastore vettoriale PostgresVectorStore predefinito.
  • Creare ed eseguire query su un indice dal datastore vettoriale utilizzando VectorStoreIndex.
  • Creare un datastore vettoriale personalizzato per archiviare e filtrare in modo efficace i metadati.
  • Aggiungere un indice ANN per migliorare la latenza di ricerca.

Datastore di documenti e indici

L'integrazione dei datastore di documenti di LlamaIndex gestisce l'archiviazione e il recupero di documenti strutturati, ottimizzando le funzionalità incentrate sui documenti di LlamaIndex. Il datastore di documenti archivia i contenuti correlati ai vettori nel datastore vettoriale.

Per ulteriori informazioni, consulta la documentazione del prodotto LlamaIndex Datastore di documenti.

I datastore 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, 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 LlamaIndex Datastore di indici.

Archiviare documenti e indici

Il notebook Cloud SQL per PostgreSQL per i datastore di documenti mostra come utilizzare Cloud SQL per PostgreSQL per archiviare documenti e indici utilizzando le classi PostgresDocumentStore e PostgresIndexStore . Scopri come eseguire le seguenti operazioni:

  • Creare un PostgresEngine utilizzando PostgresEngine.from_instance().
  • Creare tabelle per DocumentStore e IndexStore.
  • Inizializzare un PostgresDocumentStore predefinito.
  • Configurare un IndexStore di Postgres.
  • Aggiungere documenti a Docstore.
  • Utilizzare i datastore di documenti con più indici.
  • Caricare gli indici esistenti.

Datastore di chat

I datastore di chat mantengono la cronologia e il contesto delle conversazioni per le applicazioni basate sulla chat, consentendo interazioni personalizzate. I datastore di 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 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 Datastore di chat di LlamaIndex.

Archiviare la cronologia chat

Il notebook Cloud SQL per PostgreSQL per i datastore di chat mostra come utilizzare Cloud SQL per PostgreSQL per archiviare la cronologia chat utilizzando la PostgresChatStore classe. Scopri come eseguire le seguenti operazioni:

  • Creare un PostgresEngine utilizzando PostgresEngine.from_instance().
  • Inizializzare un PostgresChatStore. predefinito.
  • Creare un ChatMemoryBuffer.
  • Creare un'istanza della classe LLM.
  • Utilizzare PostgresChatStore senza un contesto di archiviazione.
  • Utilizzare PostgresChatStore con un contesto di archiviazione.
  • Creare e utilizzare il motore di chat.

Lettore di documenti

Il lettore di documenti recupera e trasforma in modo efficiente i dati da Cloud SQL per PostgreSQL in formati compatibili con LlamaIndex per l'indicizzazione. L'interfaccia del lettore di documenti fornisce metodi per caricare i dati da un'origine come Documents. Document è una classe che archivia un brano di testo e i metadati associati. Puoi utilizzare i lettori di documenti per caricare i documenti che vuoi archiviare nei datastore di documenti o utilizzati per creare indici.

Per ulteriori informazioni, consulta LlamaIndex Lettore di documenti.

Recuperare i dati come documenti

Il notebook Cloud SQL per PostgreSQL per il lettore di documenti mostra come utilizzare Cloud SQL per PostgreSQL per recuperare i dati come documenti utilizzando la classe PostgresReader. Scopri come eseguire le seguenti operazioni:

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

Passaggi successivi