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 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 Cloud SQL para MySQL

O Cloud SQL para MySQL oferece as seguintes interfaces do LangChain:

Saiba como usar o LangChain com o Guia de início rápido do LangChain para Cloud SQL para MySQL.

Armazenamento de vetores do Cloud SQL para MySQL

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 Cloud SQL para MySQL, use a classe MySQLVectorStore.

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

Guia de procedimentos de armazenamento de vetores

O guia do Cloud SQL para MySQL sobre o armazenamento de vetores mostra como fazer o seguinte:

  • Instalar o pacote de integração e o LangChain
  • Criar um objeto MySQLEngine e configurar um pool de conexões para o banco de dados do Cloud SQL para MySQL
  • Inicializar uma tabela
  • Criar um objeto de embedding usando VertexAIEmbeddings
  • Inicializar um MySQLVectorStore padrão
  • Adicionar textos
  • Excluir textos
  • Pesquisar documentos
  • Pesquisar documentos por vetor
  • Adicionar um índice para acelerar consultas de pesquisa de vetor
  • Remover um índice
  • Criar um repositório de vetores personalizado
  • Pesquisar documentos com um filtro de metadados

Carregador de documentos do Cloud SQL para MySQL

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 no carregador de documentos do Cloud SQL para MySQL, use a classe MySQLLoader. Os métodos MySQLLoader retornam um ou mais documentos de uma tabela. Use a classe MySQLDocumentSaver 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 Cloud SQL para MySQL sobre 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 MySQLDocumentSaver para armazenar e excluir documentos

Histórico de mensagens do Chat do Cloud SQL para MySQL

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 Cloud SQL para MySQL estende essa classe com MySQLChatMessageHistory.

Guia de procedimentos do histórico de mensagens do Chat

No guia do Cloud SQL para MySQL sobre o histórico de mensagens do Chat, mostramos como fazer o seguinte:

  • Instalar o LangChain e fazer a autenticação no Google Cloud
  • Criar um objeto MySQLEngine e configurar um pool de conexões para o banco de dados do Cloud SQL para MySQL
  • Inicializar uma tabela
  • Inicialize a classe MySQLChatMessageHistory para adicionar e excluir mensagens
  • Crie uma cadeia de histórico de mensagens usando a LangChain Expression Language (LCEL) e os modelos de chat da Vertex AI do Google.