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.

ReAct

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