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:
- Archivio vettoriale
- Loader per documenti
- Cronologia dei messaggi di chat
- Archivio di grafi
- QA di grafi
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
SpannerDocumentSaverper 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
SpannerChatMessageHistoryper 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
SpannerGraphStorecon 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:
- QA di grafi utilizza un LLM LangChain per tradurre una domanda in linguaggio naturale in una query GQL.
- Spanner Graph utilizza l'interfaccia dell'archivio di grafi per eseguire la query GQL.
- I risultati della query GQL vengono inviati di nuovo all'LLM.
- 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.