ReAct
โครงการ AutoGPT ที่มีชื่อเสียงเป็นพื้นฐานบนโมเดล ReAct ซึ่งเป็นการรวมกันของ การคิดเชิงตรรกะ + การดำเนินการ โมเดลขนาดใหญ่ LLM รับผิดชอบในการคิดเชิงตรรกะ การควบคุมการดำเนินการเพื่อบรรลุเป้าหมาย สำหรับนักพัฒนา การดำเนินการจริงๆ ก็คือการพัฒนาเครื่องมือหรือ API ที่ดี บทนี้จะแนะนำถึงวิธีที่ LangChain นำ ReAct มาใช้งาน
โหลดแพคเกจพื้นฐาน:
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain_openai import OpenAI
ที่นี่เราใช้โมเดล OpenAI:
llm = OpenAI(temperature=0)
โหลดเครื่องมือสองตัวที่มีใน LangChain: serpapi สำหรับการค้นหาใน Google และ llm-math สำหรับเครื่องคิดคำนวณทางคณิตศาสตร์ ทั้งคู่ถูกนำมาปฏิบัติโดยใช้ LLM ดังนั้นเมื่อโหลดเครื่องมือ ควรส่ง llm โมเดลที่จะใช้เข้าไปด้วย
tools = load_tools(["serpapi", "llm-math"], llm=llm)
สุดท้าย กำหนดเอเจนต์เริ่มต้นด้วยชนิดของเอเจนต์เป็น AgentType.ZERO_SHOT_REACT_DESCRIPTION แทนโมเดล ReAct
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
ตอนนี้ลองมาทดสอบกัน!
agent.run("ใครคือแฟนสาวของ Leonardo DiCaprio? อายุปัจจุบันของเธอยกกำลัง 0.43 เท่า?")
> เริ่มการดำเนินการของเอเจนต์ใหม่...
ฉันต้องหาว่าใครคือแฟนสาวของ Leonardo DiCaprio และหลังจากนั้นคำนวณอายุของเธอยกกำลัง 0.43
การดำเนินการ: ค้นหา
ข้อมูลที่ใช้ในการดำเนินการ: "Leonardo DiCaprio แฟนสาว"
การสังเกต: Camila Morrone
คิด: ฉันต้องหาว่าอายุของ Camila Morrone เท่าไหร่
การดำเนินการ: ค้นหา
ข้อมูลที่ใช้ในการดำเนินการ: "Camila Morrone อายุ"
การสังเกต: 25 ปี
คิด: ฉันต้องคำนวณ 25 ยกกำลัง 0.43
การดำเนินการ: เครื่องคิดเลข
ข้อมูลที่ใช้ในการดำเนินการ: 25^0.43
การสังเกต: คำตอบ: 3.991298452658078
คิด: ฉันรู้คำตอบสุดท้ายแล้ว
คำตอบสุดท้าย: Camila Morrone เป็นแฟนสาวของ Leonardo DiCaprio และอายุของเธอยกกำลัง 0.43 เท่ากับ 3.991298452658078.
> การดำเนินการเสร็จสิ้นแล้ว.
"Camila Morrone เป็นแฟนสาวของ Leonardo DiCaprio และอายุของเธอยกกำลัง 0.43 เท่ากับ 3.991298452658078."
การใช้โมเดลแชท
จากตัวอย่างก่อนหน้า เราทราบว่าเอเจนต์ต้องเลือกโมเดลขนาดใหญ่เป็นเครื่องยนต์ในการคิดเชิงตรรกะ ที่นี่เราเปลี่ยนมาใช้โมเดลแชทจาก OpenAI แทน
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? อายุปัจจุบันของเธอยกกำลัง 0.43 เท่า?")