Creare applicazioni basate su LLM utilizzando LangChain

Questa pagina introduce come creare applicazioni basate su LLM utilizzando LangChain. Le panoramiche di 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 flussi di lavoro di Retrieval-Augmented Generation (RAG). Fornisce la struttura, gli strumenti e i componenti per semplificare i flussi di lavoro <x0A>LLM complessi.

Per saperne di più su LangChain, consulta la pagina Google LangChain. 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.

Vector Store per Spanner

Vector Store recupera e archivia documenti e metadati da un database vettoriale. Vector Store offre a un'applicazione la possibilità 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, il vector store 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 LangChain Vector Stores.

Guida alla procedura del datastore vettoriale

La guida di Spanner per il vector store mostra come:

  • Installa il pacchetto di integrazione e LangChain
  • Inizializza una tabella per il datastore vettoriale
  • Configura un servizio di incorporamento utilizzando VertexAIEmbeddings
  • Inizializza SpannerVectorStore
  • Aggiungere ed eliminare documenti
  • Cercare documenti simili
  • Crea un archivio vettoriale personalizzato per connetterti a un database Spanner preesistente con una tabella con incorporamenti vettoriali

Caricatore di documenti per Spanner

Il caricatore di documenti salva, carica ed elimina gli oggetti Document LangChain. Ad esempio, puoi caricare i dati da elaborare negli incorporamenti e archiviarli nell'archivio vettoriale o utilizzarli come strumento per fornire un contesto specifico alle catene.

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

Per saperne di più, consulta l'argomento Caricatori di documenti LangChain.

Guida alla procedura di caricamento dei documenti

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

  • Installa il pacchetto di integrazione e LangChain
  • Caricare documenti da una tabella
  • Aggiungere un filtro al caricatore
  • Personalizza la connessione e l'autenticazione
  • Personalizzare la creazione dei documenti specificando i contenuti e i metadati dei clienti
  • Come utilizzare e personalizzare un SpannerDocumentSaver per archiviare ed eliminare 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 che l'utente o l'applicazione forniscono durante la conversazione. ChatMessageHistory memorizza ogni messaggio e li concatena per ogni conversazione.

Spanner estende questa classe con SpannerChatMessageHistory.

Guida alla procedura per la cronologia dei messaggi di chat

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

  • Installa LangChain e autenticati su Google Cloud
  • Inizializzare una tabella
  • Inizializza la classe SpannerChatMessageHistory per aggiungere ed eliminare messaggi
  • Utilizza un client per personalizzare la connessione e l'autenticazione
  • Elimina la sessione SpannerChatMessageHistory

Graph store per Spanner

Graph Store recupera e archivia nodi e archi da un database a grafo. Utilizza graph store per consentire a un'applicazione di:

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

Puoi anche utilizzare Graph Store con la catena QA del grafico per creare un'applicazione che possa chattare con un grafico.

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

Guida alla procedura di archiviazione dei grafici

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

  • Installa il pacchetto di integrazione e LangChain
  • Preparare grafici da varie origini dati
  • Inizializza SpannerGraphStore con un database Spanner Graph esistente
  • Aggiungere nodi e archi a Spanner Graph
  • Eseguire attraversamenti utilizzando una query GQL
  • Visualizzare i risultati della query del grafico
  • Pulire il grafico

Graph QA chain per Spanner

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

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

Guida alla procedura di controllo qualità dei grafici

La guida di Spanner per il controllo qualità dei grafici mostra come utilizzare Spanner e il controllo qualità dei grafici per rispondere a una domanda mostrando come eseguire le seguenti operazioni:

  • Crea un grafico da blob di testo non strutturato utilizzando LLMGraphTransformer.
  • Archivia il grafico in Spanner Graph utilizzando la classe SpannerGraphStore.
  • Inizializza un'istanza SpannerGraphQAChain.
  • Genera una risposta a una domanda in linguaggio naturale utilizzando l'archivio del grafico in Spanner Graph.