Criar aplicativos com tecnologia de LLM usando o LangChain

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 oferece a estrutura, as ferramentas e os componentes para simplificar fluxos de trabalho complexos de modelo de linguagem grande (LLM). Para mais informações sobre LLMs, os casos de uso e os modelos e serviços específicos que o Google oferece, consulte uma visão geral dos conceitos e serviços de LLMs no Google Cloud.

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 AlloyDB

Aprenda a usar o LangChain com o Guia de início rápido do LangChain para AlloyDB. Este guia de início rápido cria um aplicativo que acessa um conjunto de dados de filmes da Netflix para que os usuários possam interagir com os dados de filmes.

Armazenamento de vetores para AlloyDB

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 o armazenamento de vetores no AlloyDB, use a classe AlloyDBVectorStore.

Para mais informações, consulte a documentação do produto LangChain Vector Stores.

Guia de procedimentos de armazenamento de vetores

O guia do AlloyDB para armazenamento de vetores mostra como fazer o seguinte:

  • Instalar o pacote de integração e o LangChain
  • Crie um objeto AlloyDBEngine e configure um pool de conexões para o banco de dados do AlloyDB
  • Inicializar uma tabela para a loja de vetores
  • Configurar um serviço de incorporação usando VertexAIEmbeddings
  • Inicializar o AlloyDBVectorStore
  • Adicionar e excluir documentos
  • Pesquisar documentos semelhantes
  • Adicionar um índice de vetor para melhorar a performance da pesquisa
  • Crie um repositório de vetores personalizado para se conectar a um banco de dados do AlloyDB para PostgreSQL que tenha uma tabela com embeddings de vetores.

Carregador de documentos para o AlloyDB

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 AlloyDB, use a classe AlloyDBLoader. AlloyDBLoader retorna uma lista de documentos de uma tabela usando a primeira coluna para o conteúdo da página e todas as outras colunas para metadados. A tabela padrão tem a primeira coluna como conteúdo da página e a segunda como metadados JSON. Cada linha se torna um documento. As instruções para personalizar essas configurações estão no guia de procedimentos.

Use a classe AlloyDBSaver 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 AlloyDB 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 AlloyDBSaver para armazenar e excluir documentos

Histórico de mensagens do Chat para o AlloyDB

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 AlloyDB estende essa classe com AlloyDBChatMessageHistory.

Guia de procedimentos do histórico de mensagens do Chat

O guia do AlloyDB para o histórico de mensagens do chat mostra como fazer o seguinte:

  • Instalar o pacote de integração e o LangChain
  • Crie um objeto AlloyDBEngine e configure um pool de conexões para o banco de dados do AlloyDB
  • Inicializar uma tabela
  • Inicialize a classe AlloyDBChatMessageHistory para adicionar e excluir mensagens
  • Crie uma cadeia de histórico de mensagens usando a LangChain Expression Language (LCEL)