Agora, vamos aprender sobre agentes.
A ideia central dos agentes é utilizar um modelo de linguagem para escolher uma sequência de ações a serem tomadas. Em chains, uma sequência de ações é codificada diretamente (no código). Nos agentes, um modelo de linguagem é usado como um mecanismo de raciocínio para determinar quais ações tomar e em que ordem.
Ferramentas(tools) são as funções que um agente pode chamar.
Então, para criarmos o nosso primeiro agente, vamos usar o nosso web app de geração de nomes para pets.
Vamos até o arquivo langchain_helper.py e vamos importar algumas classes que vamos precisar para implementar o agente.
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
Vamos precisar também instalar alguns pacotes:
pip install wikipedia
pip install numexpr
Vamos então criar o agente, para tanto, vamos criar uma nova função, conforme abaixo:
def langchain_agent():
llm=OpenAI(temperature=0.5)
Conforme o código acima, vamos continuar usando a classe OpenAI, na criação do objeto llm.
Vamos fazer o load das ferramentas(tools) que vamos precisar, usando o script abaixo:
tools = load_tools(["wikipedia", "llm-math"], llm=llm)
Vamos fazer a inicialização do agente usando o seguinte script:
agent = initialize_agent(
tools,
llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
Para executar(run) o agente usamos o seguinte script:
result = agent.run(
"What is the average age of a dog? Multiply the age by 3"
)
Podemos então, imprimir na tela o resultado:
print(result)
Precisamos agora, chamar(call) a função que acabamo de criar da seguinte forma:
if __name__ == "__main__":
#print(generate_pet_name("Dog", "black"))
langchain_agent()
Agora, vamos executar o script:
python langchain_helper.py
E funciona! O nosso agente está funcionando! Olha a resposta que ele nos deu:
> Entering new AgentExecutor chain...
I should use the calculator to multiply the average age by 3
Action: Calculator
Action Input: 12 x 3
Observation: Answer: 36
Thought: I should use the calculator to divide the average age by 3
Action: Calculator
Action Input: 36 / 3
Observation: Answer: 12.0
Thought: I now know the final answer
Final Answer: The average age of a dog is 12 years old.
> Finished chain.
The average age of a dog is 12 years old.
Perfeito o agente funciona, mas a LLM não nos deu a resposta correta!:(