Esta página apresenta como criar aplicativos com tecnologia de LLM usando o LangChain. As visões gerais nesta página têm links para guias de procedimento no GitHub.
O que é o LangChain?
O LangChain é um framework de orquestração de LLM que ajuda os desenvolvedores a criar aplicativos de IA generativa ou fluxos de trabalho de geração aumentada de recuperação (RAG, na sigla em inglês). Ele fornece a estrutura, as ferramentas e os componentes para otimizar fluxos de trabalho complexos de LLM.
Para mais informações sobre o LangChain, consulte a página Google LangChain. Para mais informações sobre o framework LangChain, consulte a documentação do produto LangChain.
Componentes do LangChain para Spanner
O Spanner oferece as seguintes interfaces do LangChain:
- Armazenamento de vetores
- Carregador de documentos
- Histórico de mensagens do Chat
- Armazenamento de gráficos
- Controle de qualidade de gráficos
Armazenamento de vetores para Spanner
O repositório de vetores recupera e armazena documentos e metadados de um banco de dados de vetores. O armazenamento de vetores permite que um aplicativo realize pesquisas semânticas que interpretam o significado de uma consulta do usuário. Esse tipo de pesquisa é chamado de pesquisa vetorial e pode encontrar tópicos que correspondam conceitualmente à consulta. No momento da consulta, o armazenamento de vetores recupera os vetores de embedding mais semelhantes ao embedding da solicitação de pesquisa. No LangChain, um repositório de vetores é responsável pelo armazenamento de dados incorporados e pela realização da pesquisa de vetor para você.
Para trabalhar com armazenamento de vetores no Spanner, use a
classe SpannerVectorStore
.
Para mais informações, consulte a documentação do produto LangChain Vector Stores.
Guia de procedimentos de armazenamento de vetores
O guia do Spanner para armazenamento de vetores mostra como fazer o seguinte:
- Instalar o pacote de integração e o LangChain
- Inicializar uma tabela para o repositório de vetores
- Configurar um serviço de embedding usando
VertexAIEmbeddings
- Inicializar o
SpannerVectorStore
- Adicionar e excluir documentos
- Pesquisar documentos semelhantes
- Crie um repositório de vetores personalizado para se conectar a um banco de dados do Spanner preexistente que tenha uma tabela com embeddings de vetor.
Carregador de documentos para Spanner
O carregador de documentos salva, carrega e exclui objetos Document
do
LangChain. Por exemplo, é possível carregar dados para processamento em embeddings e
armazenar em um armazenamento de vetores ou usá-los como uma ferramenta para fornecer contexto específico
para cadeias.
Para carregar documentos do Spanner, use a classe SpannerLoader
.
Use a classe SpannerDocumentSaver
para salvar e excluir
documentos.
Para mais informações, consulte o tópico Carregadores de documentos LangChain.
Guia de procedimentos do carregador de documentos
O guia do Spanner para o carregador de documentos mostra como fazer o seguinte:
- Instalar o pacote de integração e o LangChain
- Carregar documentos de uma tabela
- Adicionar um filtro ao carregador
- Personalizar a conexã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
SpannerDocumentSaver
para armazenar e excluir documentos
Histórico de mensagens do Chat para Spanner
Aplicativos de perguntas e respostas exigem um histórico do que foi dito na
conversa para dar ao aplicativo contexto para responder a outras perguntas
do usuário. A classe ChatMessageHistory
do LangChain permite que o aplicativo
salve mensagens em um banco de dados e as recupere quando necessário para formular outras
respostas. Uma mensagem pode ser uma pergunta, uma resposta, uma declaração, uma saudação ou qualquer outro texto que o usuário ou aplicativo faz durante a conversa.
O ChatMessageHistory
armazena cada mensagem e encadeia mensagens para cada
conversa.
O Spanner estende essa classe com SpannerChatMessageHistory
.
Guia de procedimentos do histórico de mensagens do Chat
No guia do Spanner para o histórico de mensagens de chat, mostramos como fazer o seguinte:
- Instalar o LangChain e fazer a autenticação no Google Cloud
- Inicializar uma tabela
- Inicialize a classe
SpannerChatMessageHistory
para adicionar e excluir mensagens - Usar um cliente para personalizar a conexão e a autenticação
- Excluir a sessão
SpannerChatMessageHistory
Armazenamento de gráficos para Spanner
O repositório de gráficos recupera e armazena nós e arestas de um banco de dados de gráficos. Use o armazenamento de gráficos para permitir que um aplicativo faça o seguinte:
- Adicionar nós e arestas a um gráfico
- Realizar travessias e análises em um gráfico
- Inspecionar o esquema de um gráfico
Também é possível usar o armazenamento de gráficos com a cadeia de QA de gráficos para criar um aplicativo que pode conversar com um gráfico.
Para usar o armazenamento de gráficos com o Spanner Graph, use a classe SpannerGraphStore
para armazenar nós e arestas extraídos de documentos. SpannerGraphStore
oferece suporte à linguagem de consulta de gráficos (GQL).
Guia de procedimentos de armazenamento de gráficos
O guia do Spanner para armazenamento de gráficos mostra como fazer o seguinte:
- Instalar o pacote de integração e o LangChain
- Preparar gráficos de várias fontes de dados
- Inicializar
SpannerGraphStore
com um banco de dados do Spanner Graph - Adicionar nós e arestas ao gráfico do Spanner
- Fazer travessias usando uma consulta GQL
- Visualizar os resultados da consulta de gráfico
- Limpar o gráfico
Cadeia de QA de gráficos para Spanner
A cadeia de perguntas e respostas do gráfico para o Spanner usa um gráfico do Spanner para responder a perguntas. O fluxo de trabalho de QA de gráficos para responder a uma pergunta é o seguinte:
- O Graph QA usa um LLM do LangChain para traduzir uma pergunta em linguagem natural para uma 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 ao LLM.
- O LLM gera e retorna a resposta à pergunta.
Guia de procedimentos de controle de qualidade de gráficos
O guia do Spanner para QA de gráficos demonstra como usar o Spanner e o QA de gráficos para responder a uma pergunta mostrando como fazer o seguinte:
- Crie um gráfico de blobs de texto não estruturados usando
LLMGraphTransformer
. - Armazene o gráfico no Spanner Graph usando a classe
SpannerGraphStore
. - Inicialize uma instância de
SpannerGraphQAChain
. - Gere uma resposta a uma pergunta em linguagem natural usando o repositório de gráficos no Spanner Graph.