Como replicar o sistema MRKL usando agentes em LangChain?

Como Replicar O Sistema Mrkl Usando Agentes Em Langchain



O sistema Modular Reasoning, Knowledge, and Language (MRKL) é uma arquitetura que pode extrair respostas com os motivos de sua verificação. Integra modelos de linguagem, raciocínio discreto e fontes externas de conhecimento. Os modelos de linguagem produzem o texto em línguas humanas de acordo com as consultas feitas pelo usuário. MRKL (pronuncia-se: milagre) acrescenta raciocínio ao produzir as respostas para torná-las precisas e válidas.

Esboço rápido

Esta postagem irá demonstrar o seguinte:







Como replicar o sistema MRKL usando agentes em LangChain



Conclusão



Como replicar o sistema MRKL usando agentes em LangChain?

LangChain permite ao usuário construir agentes que podem ser usados ​​para realizar múltiplas tarefas para os modelos de linguagem ou chatbots. Os agentes armazenam seu trabalho com todas as etapas na memória anexada ao modelo de linguagem. Usando esses modelos, o agente pode replicar o funcionamento de qualquer sistema como MRKL para obter resultados otimizados sem ter que construí-los novamente.





Para aprender o processo de replicação do sistema MRKL usando agentes no LangChain, basta seguir as etapas listadas:

Etapa 1: instalação de estruturas

Primeiro de tudo, instale os módulos experimentais LangChain usando o pip com o comando langchain-experimental:



pip instalar langchain-experimental

Instale o módulo OpenAI para construir o modelo de linguagem para o sistema MRKL:

pip instalar openai

Etapa 2: Configurando o ambiente OpenAI

Importe as bibliotecas os e getpass para acessar a operação para solicitar ao usuário que forneça as chaves de API para as contas OpenAI e SerpAPi:

importar os

importar Obter passagem

os . aproximadamente [ 'OPENAI_API_KEY' ] = Obter passagem . Obter passagem ( 'Chave de API OpenAI:' )

os . aproximadamente [ 'SERPAPI_API_KEY' ] = Obter passagem . Obter passagem ( 'Chave de API Serpapi:' )

Passo 3: Importando Bibliotecas

Use as dependências do LangChain para importar as bibliotecas necessárias para construir o modelo de linguagem, ferramentas e agentes:

de cadeia longa. correntes importar LMMathChain

de cadeia longa. llms importar OpenAI

de cadeia longa. Serviços de utilidade pública importar SerpAPIWrapper

de cadeia longa. Serviços de utilidade pública importar Banco de dados SQL

de langchain_experimental. SQL importar SQLDatabaseChain

de cadeia longa. agentes importar agente_de_inicialização , Ferramenta

de cadeia longa. agentes importar Tipo de agente

Etapa 4: Construindo Banco de Dados

O MRKL utiliza fontes externas de conhecimento para extrair informações dos dados. Esta postagem usa SQLite, que pode ser baixado usando este guia para construir o banco de dados. O comando a seguir confirma o processo de download do SQLite exibindo sua versão instalada:

sqlite3

Use os seguintes comandos dentro de um diretório para criar o banco de dados usando o prompt de comando:

cd Área de Trabalho

cd meudb

sqlite3 Chinook. banco de dados

Faça o download do Base de dados arquivo e armazene-o no diretório para usar o seguinte comando para criar o “ .db ' arquivo:

. ler Chinook_Sqlite. SQL

SELECIONE * DO LIMITE DO Artista 10 ;

Etapa 5: upload do banco de dados

Assim que o banco de dados for criado com sucesso, carregue o arquivo no laboratório do Google:

de Google. ET AL importar arquivos

carregado = arquivos. carregar ( )

O usuário pode acessar o arquivo carregado no notebook para copiar seu caminho no menu suspenso:

Etapa 6: configurando ferramentas

Depois de construir o banco de dados, configure o modelo de linguagem, as ferramentas e as cadeias dos agentes:

procurar = SerpAPIWrapper ( )
llm = OpenAI ( temperatura = 0 )
llm_math_chain = LMMathChain ( llm = llm , detalhado = Verdadeiro )
banco de dados = Banco de dados SQL. de_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. de_llm ( llm , banco de dados , detalhado = Verdadeiro )
ferramentas = [
Ferramenta (
nome = 'Procurar' ,
função = procurar. correr ,
descrição = 'Peça aos prompts direcionados para obter respostas sobre assuntos recentes'
) ,
Ferramenta (
nome = 'Calculadora' ,
função = llm_math_chain. correr ,
descrição = 'útil para responder/resolver problemas matemáticos'
) ,
Ferramenta (
nome = 'FooBarDB' ,
função = db_chain. correr ,
descrição = 'útil para responder consultas de um banco de dados e a pergunta de entrada deve ter o contexto completo'
)
]
  • Defina a llm variável usando o OpenAI() método para obter o modelo de linguagem.
  • O procurar é a ferramenta que chama o SerpAPIWrapper() método para acessar seu ambiente.
  • O LMMathChain() O método é usado para obter as respostas relacionadas a problemas matemáticos.
  • Defina a banco de dados variável com o caminho do arquivo dentro do Banco de dados SQL() método.
  • O SQLDatabaseChain() O método pode ser usado para obter as informações do banco de dados.
  • Defina ferramentas como procurar , calculadora , e Banco de dados FooBar para construir o agente para extrair dados de diferentes fontes:

Etapa 7: Construindo e Testando o Agente

Inicialize o sistema MRKL usando as ferramentas llm e agente para obter as respostas às perguntas feitas pelo usuário:

mrkl = agente_de_inicialização ( ferramentas , llm , agente = Tipo de agente. ZERO_SHOT_REACT_DESCRIPTION , detalhado = Verdadeiro )

Execute o sistema MRKL usando o método run() com a pergunta como argumento:

mrkl. correr ( 'Qual é a idade atual de Leo DiCaprio e sua namorada também diz a diferença de idade' )

Saída

O agente produziu a resposta final com o caminho completo utilizado pelo sistema para extrair a resposta final:

Etapa 8: replicar o sistema MRKL

Agora, basta usar o mrkl palavra-chave com o método run() para obter respostas de diferentes fontes, como bancos de dados:

mrkl. correr ( 'Qual é o nome completo do artista cujo álbum chamado 'The Storm Before the Calm' foi lançado recentemente e eles estão no banco de dados FooBar e também quais de seus álbuns estão no banco de dados' )

O agente transformou automaticamente a pergunta na consulta SQL para buscar a resposta no banco de dados. O agente busca a fonte correta para obter a resposta e então monta a consulta para extrair as informações:

Etapa 9: usando ChatModel

O usuário pode simplesmente alterar o modelo de linguagem usando o método ChatOpenAI() para torná-lo um ChatModel e usar o sistema MRKL com ele:

de cadeia longa. chat_models importar ChatOpenAI

procurar = SerpAPIWrapper ( )
llm = ChatOpenAI ( temperatura = 0 )
llm1 = OpenAI ( temperatura = 0 )
llm_math_chain = LMMathChain ( llm = llm1 , detalhado = Verdadeiro )
banco de dados = Banco de dados SQL. de_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. de_llm ( llm1 , banco de dados , detalhado = Verdadeiro )
ferramentas = [
Ferramenta (
nome = 'Procurar' ,
função = procurar. correr ,
descrição = 'Peça aos prompts direcionados para obter respostas sobre assuntos recentes'
) ,
Ferramenta (
nome = 'Calculadora' ,
função = llm_math_chain. correr ,
descrição = 'útil para responder/resolver problemas matemáticos'
) ,
Ferramenta (
nome = 'FooBarDB' ,
função = db_chain. correr ,
descrição = 'útil para responder consultas de um banco de dados e a pergunta de entrada deve ter o contexto completo'
)
]

Etapa 10: teste o agente MRKL

Depois disso, construa o agente e inicialize-o na variável mrkl usando o método inicialize_agent(). Adicione o parâmetro do método para integrar os componentes como ferramentas, llm, agente e verbose para obter o processo completo na saída:

mrkl = agente_de_inicialização ( ferramentas , llm , agente = Tipo de agente. CHAT_ZERO_SHOT_REACT_DESCRIPTION , detalhado = Verdadeiro )

Execute a pergunta executando o sistema mrkl conforme exibido na captura de tela a seguir:

mrkl. correr ( 'Quem é a namorada de Leo DiCaprio? Qual a idade atual deles' )

Saída

O snippet a seguir exibe a resposta final extraída pelo agente:

Etapa 11: replicar o sistema MRKL

Utilize o sistema MRKL chamando o método run() com a pergunta na linguagem natural para extrair informações do banco de dados:

mrkl. correr ( 'Qual é o nome completo do artista cujo álbum chamado 'The Storm Before the Calm' foi lançado recentemente e eles estão no banco de dados FooBar e também quais de seus álbuns estão no banco de dados' )

Saída

O agente exibiu a resposta final extraída do banco de dados conforme mostrado na captura de tela a seguir:

Isso é tudo sobre o processo de replicação do sistema MRKL usando agentes no LangChain:

Conclusão

Para replicar o sistema MRKL utilizando agentes em LangChain, instale os módulos para obter as dependências para importação das bibliotecas. As bibliotecas são necessárias para construir o modelo de linguagem ou modelo de chat para obter respostas de múltiplas fontes usando as ferramentas. Os agentes são configurados para usar ferramentas de extração de resultados de diferentes fontes como internet, bancos de dados, etc. Este guia elaborou o processo de replicação do sistema MRKL usando agentes em LangChain.