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.

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?")