Esboço rápido
Esta postagem irá demonstrar o seguinte:
Como replicar o sistema MRKL usando agentes em LangChain
- Etapa 1: instalação de estruturas
- Etapa 2: Configurando o ambiente OpenAI
- Passo 3: Importando Bibliotecas
- Etapa 4: Construindo Banco de Dados
- Etapa 5: upload do banco de dados
- Etapa 6: configurando ferramentas
- Etapa 7: Construindo e Testando o Agente
- Etapa 8: replicar o sistema MRKL
- Etapa 9: usando ChatModel
- Etapa 10: teste o agente MRKL
- Etapa 11: replicar o sistema MRKL
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 osimportar 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 LMMathChainde 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 Trabalhocd 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. SQLSELECIONE * 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 arquivoscarregado = 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 ChatOpenAIprocurar = 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.