ReAct
Dự án AutoGPT nổi tiếng dựa trên mô hình ReAct, kết hợp giữa lập luận + hành động. Mô hình LLM lớn đảm nhận việc lập luận, điều khiển hành động để đạt được mục tiêu, và đối với các nhà phát triển, hành động thực sự liên quan đến việc phát triển các công cụ hoặc API tốt. Chương này sẽ giới thiệu cách LangChain thực hiện mô hình ReAct.
Nạp các gói cơ bản:
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain_openai import OpenAI
Ở đây, chúng tôi sử dụng mô hình OpenAI:
llm = OpenAI(temperature=0)
Nạp hai công cụ tích hợp sẵn trong LangChain: serpapi để tìm kiếm Google và llm-math cho máy tính toán, cả hai đều được thực hiện bằng LLM. Do đó, khi nạp các công cụ, cần truyền vào mô hình llm sẽ được sử dụng.
tools = load_tools(["serpapi", "llm-math"], llm=llm)
Cuối cùng, khởi tạo đại lý với loại đại lý là AgentType.ZERO_SHOT_REACT_DESCRIPTION, đại diện cho mô hình ReAct.
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
Bây giờ, hãy thử nghiệm nó!
agent.run("Ai là bạn gái của Leonardo DiCaprio? 0.43 mũ của tuổi hiện tại của cô ấy là bao nhiêu?")
> Đang nhập chuỗi AgentExecutor mới...
Tôi cần tìm hiểu ai là bạn gái của Leonardo DiCaprio, sau đó tính toán 0.43 mũ tuổi của cô ấy.
Hành động: Tìm kiếm
Đầu vào hành động: "bạn gái của Leonardo DiCaprio"
Quan sát: Camila Morrone
Nghĩ: Tôi cần tìm hiểu tuổi của Camila Morrone
Hành động: Tìm kiếm
Đầu vào hành động: "tuổi của Camila Morrone"
Quan sát: 25 tuổi
Nghĩ: Tôi cần tính toán 25 mũ 0.43
Hành động: Máy tính
Đầu vào hành động: 25^0.43
Quan sát: Đáp án: 3.991298452658078
Nghĩ: Bây giờ tôi biết câu trả lời cuối cùng
Câu trả lời cuối cùng: Camila Morrone là bạn gái của Leonardo DiCaprio, và 0.43 mũ tuổi của cô ấy là 3.991298452658078.
> Chuỗi hoàn thành.
"Camila Morrone là bạn gái của Leonardo DiCaprio, và 0.43 mũ tuổi của cô ấy là 3.991298452658078."
Sử dụng Mô hình Trò chuyện
Từ ví dụ trước, chúng ta biết rằng đại lý cần chọn một mô hình lớn làm động cơ lập luận. Ở đây, chúng tôi thay đổi để sử dụng mô hình trò chuyện từ 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("Ai là bạn gái của Leonardo DiCaprio? 0.43 mũ của tuổi hiện tại của cô ấy là bao nhiêu?")