Crie aplicações baseadas em MDIs com o LangChain

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 grandes modelos de linguagem (GMLs). Para mais informações sobre os MDIs, os respetivos exemplos de utilização e os modelos e serviços específicos que a Google oferece, consulte uma vista geral dos conceitos e serviços de MDIs Google Cloud.

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 AlloyDB

Saiba como usar o LangChain com o início rápido do LangChain para o AlloyDB. Este início rápido cria uma aplicação que acede a um conjunto de dados de filmes da Netflix para que os utilizadores possam interagir com os dados de filmes.

Armazenamento de vetores para o AlloyDB

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

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

Guia de procedimentos da base de dados vetorial

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

  • Instale o pacote de integração e o LangChain
  • Crie um objeto AlloyDBEngine e configure um conjunto de ligações à sua base de dados do AlloyDB
  • Inicialize uma tabela para o armazenamento de vetores
  • Configure um serviço de incorporação através do VertexAIEmbeddings
  • Inicialize AlloyDBVectorStore
  • Adicione e elimine documentos
  • Pesquise documentos semelhantes
  • Adicione um índice vetorial para melhorar o desempenho da pesquisa
  • Crie um arquivo de vetores personalizado para se ligar a uma base de dados do AlloyDB for PostgreSQL pré-existente que tenha uma tabela com incorporações de vetores

Carregador de documentos para o AlloyDB

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 na loja de vetores ou usá-los como uma ferramenta para fornecer contexto específico às cadeias.

Para carregar documentos do AlloyDB, use a classe AlloyDBLoader. AlloyDBLoader devolve 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 predefinida tem a primeira coluna como conteúdo da página e a segunda coluna como metadados JSON. Cada linha torna-se um documento. As instruções para personalizar estas definições encontram-se no guia de procedimentos.

Use a classe AlloyDBSaver 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 AlloyDB para o carregador de documentos mostra 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 AlloyDBSaver para armazenar e eliminar documentos

Histórico de mensagens de chat para o AlloyDB

As aplicações de perguntas e respostas requerem um histórico das coisas ditas 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 AlloyDB expande esta classe com AlloyDBChatMessageHistory.

Guia de procedimento do histórico de mensagens de chat

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

  • Instale o pacote de integração e o LangChain
  • Crie um objeto AlloyDBEngine e configure um conjunto de ligações à sua base de dados do AlloyDB
  • Inicialize uma tabela
  • Inicialize a classe AlloyDBChatMessageHistory para adicionar e eliminar mensagens
  • Crie uma cadeia para o histórico de mensagens através do Idioma de expressão do LangChain (LCEL)

O que se segue?