ReAgir
O conhecido projeto AutoGPT é baseado no modelo ReAgir, que é uma combinação de razão + ação. O grande modelo LLM é responsável pela razão, controlando ações para alcançar objetivos, e para os desenvolvedores, a ação está na verdade sobre o desenvolvimento de boas ferramentas ou APIs. Este capítulo irá introduzir como a LangChain implementa o modelo ReAgir.
Carregando os pacotes base:
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain_openai import OpenAI
Aqui, usamos o modelo OpenAI:
llm = OpenAI(temperatura=0)
Carregando duas ferramentas integradas na LangChain: serpapi para busca no Google e llm-math para uma calculadora matemática, ambas implementadas usando LLM. Portanto, ao carregar as ferramentas, o modelo llm a ser utilizado deve ser passado.
ferramentas = load_tools(["serpapi", "llm-math"], llm=llm)
Finalmente, inicializando o agente com o tipo de agente como AgentType.ZERO_SHOT_REACT_DESCRIPTION, representando o modelo ReAgir.
agente = initialize_agent(ferramentas, llm, agente=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
Agora, vamos testar!
agente.run("Quem é namorada de Leonardo DiCaprio? Qual é a potência de 0.43 da idade dela atual?")
> Entrando em uma nova cadeia de execução do Agente...
Eu preciso descobrir quem é a namorada de Leonardo DiCaprio, e então calcular a potência de 0.43 da idade dela.
Ação: Busca
Entrada da ação: "namorada de Leonardo DiCaprio"
Observação: Camila Morrone
Pensando: Preciso descobrir a idade de Camila Morrone
Ação: Busca
Entrada da ação: "idade de Camila Morrone"
Observação: 25 anos
Pensando: Preciso calcular 25 elevado a 0.43
Ação: Calculadora
Entrada da ação: 25^0.43
Observação: Resposta: 3.991298452658078
Pensando: Agora eu sei a resposta final
Resposta final: Camila Morrone é a namorada de Leonardo DiCaprio, e a potência de 0.43 da idade dela é 3.991298452658078.
> Cadeia concluída.
"Camila Morrone é a namorada de Leonardo DiCaprio, e a potência de 0.43 da idade dela é 3.991298452658078."
Usando o Modelo de Chat
Do exemplo anterior, sabemos que o agente precisa escolher um modelo grande como motor de raciocínio. Aqui, alteramos para usar o modelo de chat da OpenAI.
from langchain_openai import ChatOpenAI
modelo_chat = ChatOpenAI(temperatura=0)
agente = initialize_agent(ferramentas, modelo_chat, agente=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
agente.run("Quem é namorada de Leonardo DiCaprio? Qual é a potência de 0.43 da idade dela atual?")