Esta página apresenta como criar aplicações com tecnologia de GML usando o LangChain. As vistas gerais nesta página incluem links para guias de procedimentos no GitHub.
O que é a LangChain?
O LangChain é uma framework de orquestração de MDIs que ajuda os programadores a criar aplicações de IA generativa ou fluxos de trabalho de geração aumentada de recuperação (RAG). Fornece a estrutura, as ferramentas e os componentes para simplificar os fluxos de trabalho complexos de MDIs.
Para mais informações sobre o LangChain, consulte a página Google LangChain. Para mais informações sobre a framework LangChain, consulte a documentação do produto LangChain.
Componentes do LangChain para o Spanner
O Spanner oferece as seguintes interfaces LangChain:
- Banco de dados vetorial
 - Carregador de documentos
 - Histórico de mensagens do Chat
 - Loja de gráficos
 - QA de gráficos
 
Armazenamento de vetores para o Spanner
O armazenamento de vetores obtém e armazena documentos e metadados de uma base de dados de vetores. O armazenamento de vetores dá a uma aplicação a capacidade de realizar pesquisas semânticas que interpretam o significado de uma consulta do utilizador. Este tipo de pesquisa é denominado pesquisa vetorial e pode encontrar tópicos que correspondem à consulta conceptualmente. No momento da consulta, o banco de dados vetorial obtém os vetores de incorporação mais semelhantes à incorporação do pedido de pesquisa. No LangChain, um armazenamento de vetores encarrega-se de armazenar dados incorporados e realizar a pesquisa de vetores por si.
Para trabalhar com o arquivo vetorial no Spanner, use a classe SpannerVectorStore.
Para mais informações, consulte a documentação do produto LangChain Vector Stores.
Guia de procedimentos da base de dados vetorial
O guia do Spanner para o armazenamento de vetores mostra-lhe como fazer o seguinte:
- Instale o pacote de integração e o LangChain
 - Inicialize uma tabela para o armazenamento de vetores
 - Configure um serviço de incorporação através do 
VertexAIEmbeddings - Inicialize 
SpannerVectorStore - Adicione e elimine documentos
 - Pesquise documentos semelhantes
 - Crie um arquivo vetorial personalizado para associar a uma base de dados do Spanner pré-existente que tenha uma tabela com incorporações de vetores
 
Carregador de documentos para o Spanner
O carregador de documentos guarda, carrega e elimina objetos do LangChain.Document Por exemplo, pode carregar dados para processamento em incorporações e
armazená-los no armazenamento de vetores ou usá-los como uma ferramenta para fornecer contexto específico
a cadeias.
Para carregar documentos do Spanner, use a classe SpannerLoader.
Use a classe SpannerDocumentSaver para guardar e eliminar documentos.
Para mais informações, consulte o tópico Carregadores de documentos do LangChain.
Guia de procedimentos do carregador de documentos
O guia do Spanner para o carregador de documentos mostra-lhe como fazer o seguinte:
- Instale o pacote de integração e o LangChain
 - Carregue documentos a partir de uma tabela
 - Adicione um filtro ao carregador
 - Personalize a ligação e a autenticação
 - Personalize a construção de documentos especificando o conteúdo e os metadados do cliente
 - Como usar e personalizar um 
SpannerDocumentSaverpara armazenar e eliminar documentos 
Histórico de mensagens de chat para o Spanner
As aplicações de perguntas e respostas requerem um histórico do que foi dito na conversa para dar contexto à aplicação para responder a mais perguntas do utilizador. A classe ChatMessageHistory LangChain permite que a aplicação guarde mensagens numa base de dados e as obtenha quando necessário para formular mais respostas. Uma mensagem pode ser uma pergunta, uma resposta, uma declaração, uma saudação ou qualquer
outro texto que o utilizador ou a aplicação forneça durante a conversa.
ChatMessageHistory armazena cada mensagem e encadeia as mensagens para cada conversa.
O Spanner expande esta classe com SpannerChatMessageHistory.
Guia de procedimento do histórico de mensagens de chat
O guia do Spanner para o histórico de mensagens do chat mostra como fazer o seguinte:
- Instale o LangChain e autentique-se no Google Cloud
 - Inicialize uma tabela
 - Inicialize a classe 
SpannerChatMessageHistorypara adicionar e eliminar mensagens - Use um cliente para personalizar a ligação e a autenticação
 - Elimine a sessão do 
SpannerChatMessageHistory 
Armazenamento de grafos para o Spanner
O armazenamento de grafos obtém e armazena nós e arestas de uma base de dados de grafos. Use o armazenamento de grafos para permitir que uma aplicação faça o seguinte:
- Adicione nós e arestas a um gráfico
 - Realize travessias e análises num gráfico
 - Inspecione o esquema de um gráfico
 
Também pode usar o armazenamento de grafos com a cadeia de QA de grafos para criar uma aplicação que pode conversar com um grafo.
Para usar o armazenamento de grafos com o Spanner Graph, use a classe SpannerGraphStore para armazenar nós e arestas extraídos de documentos. SpannerGraphStore
suporta a linguagem de consulta de grafos (GQL).
Guia de procedimentos da loja de gráficos
O guia do Spanner para a loja de gráficos mostra como fazer o seguinte:
- Instale o pacote de integração e o LangChain
 - Prepare gráficos a partir de várias origens de dados
 - Inicialize o 
SpannerGraphStorecom uma base de dados do Spanner Graph existente - Adicione nós e arestas ao Spanner Graph
 - Realize travessias através de uma consulta GQL
 - Visualize os resultados da consulta de gráficos
 - Limpe o gráfico
 
Cadeia de QA de gráficos para o Spanner
A cadeia de QA de gráficos para o Spanner usa um gráfico do Spanner para responder a perguntas. O fluxo de trabalho de QA de grafos para responder a uma pergunta é o seguinte:
- O Graph QA usa um LLM LangChain para traduzir uma pergunta de linguagem natural numa consulta GQL.
 - O Spanner Graph usa a interface de armazenamento de gráficos para executar a consulta GQL.
 - Os resultados da consulta GQL são enviados de volta para o MDG.
 - O MDG gera e devolve a resposta à pergunta.
 
Guia do procedimento de controlo de qualidade de gráficos
O guia do Spanner para o controlo de qualidade de gráficos demonstra como usar o Spanner e o controlo de qualidade de gráficos para responder a uma pergunta mostrando-lhe como fazer o seguinte:
- Crie um gráfico a partir de blobs de texto não estruturado com 
LLMGraphTransformer. - Armazene o gráfico no Spanner Graph através da classe 
SpannerGraphStore. - Inicialize uma instância do 
SpannerGraphQAChain. - Gerar uma resposta a uma pergunta em linguagem natural através do armazenamento de grafos no Spanner Graph.