ReAct
Ünlü AutoGPT projesi, reasoning + action kombinasyonu olan ReAct modeline dayalıdır. LLM büyük modeli, mantık yürütme ve hedeflere ulaşmak için kontrol etme, geliştiriciler için ise eylem aslında iyi araç veya API'ların geliştirilmesi hakkındadır. Bu bölümde, LangChain'in ReAct modelini nasıl uyguladığını anlatacağız.
Temel paketlerin yüklenmesi:
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain_openai import OpenAI
Burada, OpenAI modelini kullanıyoruz:
llm = OpenAI(temperature=0)
LangChain'de yerleşik olan iki aracın yüklenmesi: Google araması için serpapi ve matematiksel hesap makinesi için llm-math, ikisi de LLM kullanılarak uygulanmıştır. Bu nedenle, araçları yüklerken kullanılacak llm modeli geçirilmelidir.
tools = load_tools(["serpapi", "llm-math"], llm=llm)
Son olarak, ajanın tipini AgentType.ZERO_SHOT_REACT_DESCRIPTION olarak temsil eden ReAct modeli ile başlatma:
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
Şimdi, bunu test edelim!
agent.run("Leonardo DiCaprio'nun kız arkadaşı kim? Onun mevcut yaşının 0.43 kuvveti nedir?")
> Yeni bir AjanExecutor zincirine giriliyor...
Leonardo DiCaprio'nun kız arkadaşı kim olduğunu bulmam ve ardından onun yaşının 0.43 kuvvetini hesaplamam gerekiyor.
Eylem: Arama
Eylem girdisi: "Leonardo DiCaprio kız arkadaşı"
Gözlem: Camila Morrone
Düşünce: Şimdi Camila Morrone'nin yaşını bulmam gerekiyor
Eylem: Arama
Eylem girdisi: "Camila Morrone yaşı"
Gözlem: 25 yaşında
Düşünce: Şimdi 25'in 0.43 kuvvetini hesaplamam gerekiyor
Eylem: Hesap makinesi
Eylem girdisi: 25^0.43
Gözlem: Cevap: 3.991298452658078
Düşünce: Artık nihai cevabı biliyorum
Nihai cevap: Camila Morrone, Leonardo DiCaprio'nun kız arkadaşı ve onun yaşının 0.43 kuvveti 3.991298452658078'dir.
> Zincir tamamlandı.
"Camila Morrone, Leonardo DiCaprio'nun kız arkadaşı ve onun yaşının 0.43 kuvveti 3.991298452658078'dir."
Sohbet Modeli Kullanımı
Önceki örneğe göre, ajanın mantık motoru olarak büyük bir model seçmesi gerektiğini biliyoruz. Burada, bunu OpenAI'nin sohbet modelini kullanacak şekilde değiştiriyoruz.
from langchain_openai import ChatOpenAI
chat_model = ChatOpenAI(temperature=0)
agent = initialize_agent(tools, chat_model, agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
agent.run("Leonardo DiCaprio'nun kız arkadaşı kim? Onun mevcut yaşının 0.43 kuvveti nedir?")