Crea applicazioni basate su LLM utilizzando LangChain

Questa pagina introduce come creare applicazioni basate su LLM utilizzando LangChain. Le panoramiche in questa pagina rimandano alle guide alle procedure in GitHub.

Che cos'è LangChain?

LangChain è un framework di orchestrazione LLM che aiuta gli sviluppatori a creare applicazioni di AI generativa o workflow di Retrieval-Augmented Generation (RAG). Fornisce la struttura, gli strumenti e i componenti per semplificare i workflow LLM complessi.

Per ulteriori informazioni su LangChain, consulta la Google LangChain pagina. Per ulteriori informazioni sul framework LangChain, consulta la documentazione del prodotto LangChain.

Componenti LangChain per Spanner

Spanner offre le seguenti interfacce LangChain:

Scopri come utilizzare questi componenti in un'applicazione con la guida rapida di LangChain per Spanner.

Archivio vettoriale per Spanner

L'archivio vettoriale recupera e archivia documenti e metadati da un database vettoriale. L'archivio vettoriale consente a un'applicazione di eseguire ricerche semantiche che interpretano il significato di una query utente. Questo tipo di ricerca è chiamato ricerca vettoriale e può trovare argomenti che corrispondono concettualmente alla query. Al momento della query, l'archivio vettoriale recupera i vettori di embedding più simili all'embedding della richiesta di ricerca. In LangChain, un archivio vettoriale si occupa di archiviare i dati incorporati ed eseguire la ricerca vettoriale per te.

Per utilizzare l'archivio vettoriale in Spanner, utilizza la classe SpannerVectorStore.

Per ulteriori informazioni, consulta la documentazione del prodotto Archivi vettoriali di LangChain.

Guida alla procedura dell'archivio vettoriale

La guida di Spanner per l'archivio vettoriale mostra come:

  • Installare il pacchetto di integrazione e LangChain
  • Inizializzare una tabella per l'archivio vettoriale
  • Configurare un servizio di embedding utilizzando VertexAIEmbeddings
  • Inizializzare SpannerVectorStore
  • Aggiungere ed eliminare documenti
  • Cercare documenti simili
  • Creare un archivio vettoriale personalizzato per connettersi a un database Spanner preesistente con una tabella con vector embedding

Loader per documenti per Spanner

Il loader per documenti salva, carica ed elimina gli oggetti Document di LangChain. Ad esempio, puoi caricare i dati per l'elaborazione in embedding e archiviarli nell'archivio vettoriale o utilizzarli come strumento per fornire un contesto specifico a catene.

Per caricare i documenti da Spanner, utilizza la classe SpannerLoader. Utilizza la classe SpannerDocumentSaver per salvare ed eliminare i documenti.

Per ulteriori informazioni, consulta l'argomento Loader per documenti di LangChain.

Guida alla procedura del loader per documenti

La guida di Spanner per il loader per documenti mostra come:

  • Installare il pacchetto di integrazione e LangChain
  • Caricare i documenti da una tabella
  • Aggiungere un filtro al loader
  • Personalizzare la connessione e l'autenticazione
  • Personalizzare la creazione dei documenti specificando i contenuti e i metadati dei clienti
  • Utilizzare e personalizzare un SpannerDocumentSaver per archiviare ed eliminare i documenti

Cronologia dei messaggi di chat per Spanner

Le applicazioni di domande e risposte richiedono una cronologia di ciò che è stato detto nella conversazione per fornire all'applicazione il contesto per rispondere a ulteriori domande dell'utente. La classe ChatMessageHistory di LangChain consente all'applicazione di salvare i messaggi in un database e recuperarli quando necessario per formulare ulteriori risposte. Un messaggio può essere una domanda, una risposta, un'affermazione, un saluto o qualsiasi altro testo fornito dall'utente o dall'applicazione durante la conversazione. ChatMessageHistory archivia ogni messaggio e li concatena per ogni conversazione.

Spanner estende questa classe con SpannerChatMessageHistory.

Guida alla procedura della cronologia dei messaggi di chat

La guida di Spanner per la cronologia dei messaggi di chat mostra come:

  • Installare LangChain ed eseguire l'autenticazione a Google Cloud
  • Inizializzare una tabella
  • Inizializzare la classe SpannerChatMessageHistory per aggiungere ed eliminare i messaggi
  • Utilizzare un client per personalizzare la connessione e l'autenticazione
  • Eliminare la sessione SpannerChatMessageHistory

Archivio di grafi per Spanner

L'archivio di grafi recupera e archivia nodi e archi da un database di grafi. Utilizza il datastore di grafi per consentire a un'applicazione di:

  • Aggiungere nodi e archi a un grafo
  • Eseguire attraversamenti e analisi su un grafo
  • Ispezionare lo schema di un grafo

Puoi anche utilizzare l'archivio di grafi con la catena QA di grafi per creare un'applicazione in grado di chattare con un grafo.

Per utilizzare l'archivio di grafi con Spanner Graph, utilizza la SpannerGraphStore classe per archiviare i nodi e gli archi estratti dai documenti. SpannerGraphStore supporta Graph Query Language (GQL).

Guida alla procedura dell'archivio di grafi

La guida di Spanner per l'archivio di grafi mostra come:

  • Installare il pacchetto di integrazione e LangChain
  • Preparare i grafi da varie origini dati
  • Inizializzare SpannerGraphStore con un database Spanner Graph esistente
  • Aggiungere nodi e archi a Spanner Graph
  • Eseguire attraversamenti utilizzando una GQL query
  • Visualizzare i risultati della query del grafo
  • Liberare spazio nel grafo

Catena QA di grafi per Spanner

La catena QA di grafi per Spanner utilizza un grafo Spanner per rispondere alle domande. Il workflow QA di grafi per rispondere a una domanda è il seguente:

  1. QA di grafi utilizza un LLM LangChain per tradurre una domanda in linguaggio naturale in una query GQL.
  2. Spanner Graph utilizza l'interfaccia dell'archivio di grafi per eseguire la query GQL.
  3. I risultati della query GQL vengono inviati di nuovo all'LLM.
  4. L'LLM genera e restituisce la risposta alla domanda.

Guida alla procedura QA di grafi

La guida di Spanner per QA di grafi mostra come utilizzare Spanner e QA di grafi per rispondere a una domanda illustrando come:

  • Creare un grafo da blob di testo non strutturati utilizzando LLMGraphTransformer.
  • Archiviare il grafo in Spanner Graph utilizzando la classe SpannerGraphStore.
  • Inizializzare un'istanza SpannerGraphQAChain.
  • Generare una risposta a una domanda in linguaggio naturale utilizzando l'archivio di grafi in Spanner Graph.