【GPT入门】第29课 对比不同的langchain ReAct代理的思考过程
【GPT入门】第29课 对比不同的langchain ReAct代理的思考过程
- 背景描述
- 1.gpt4模型
- 2. 通义千问的模型
- 3. 总结
背景描述
1.用 react_agent 执行工具(搜索和星期),检查工具返回的聊天结果
2.使用gpt4和千义通问比较agent思考的过程的异同
3.本文提供完整可运行代码和执行结果,帮助大家理解react agent的执行
ReACT 代理的概念
ReACT(Thought, Action, Observation)是一种框架,核心思想是让代理能够进行思考、执行动作并根据动作结果进行观察,以此循环迭代,最终完成复杂任务。在该框架下,代理会产生一系列思考步骤,每步思考决定采取的行动,行动执行后得到相应观察结果,这些结果又影响下一步思考。
create_react_agent 的作用
create_react_agent 函数是 LangChain 提供的用于创建 ReACT 代理的便捷工具。它接收多个参数,如工具列表、语言模型等,通过这些参数配置并返回一个可执行任务的 ReACT 代理。
ReACT 代理的作用
–处理复杂任务:ReACT 代理能将复杂任务分解为一系列子任务,通过循环的思考 - 行动 - 观察过程逐步完成。例如,在需查询多个数据源、进行-计算和推理的任务中,代理可依次调用合适工具,最终得出结果。
–集成多种工具:它可集成多种工具,如搜索引擎、数据库查询工具、数学-计算工具等。代理会根据任务需求自动选择合适工具完成任务,提高任务处理效率和准确性。
–动态决策:根据每步行动的观察结果,代理可动态调整后续的思考和行动,适应不同情况和变化。
1.gpt4模型
import calendar
import dateutil.parser as parser
from datetime import date
from langchain.tools import tool
# from langchain.agents import load_tools
from langchain_community.agent_toolkits.load_tools import load_tools
from langchain_openai import ChatOpenAI
tools = load_tools(["serpapi"])
# tools = []
# 自定义工具
@tool("weekday")
def weekday(date_str: str) -> str:
"""Convert date to weekday name, 输入格式:yyyy-MM-dd """
print("date_str:",date_str + "\n")
if date_str == "今天":
# 获取当前日期
today = date.today()
print