当前位置: 首页 > article >正文

09|代理(上):ReAct框架,推理与行动的协同

应用思维链推理并不能解决大模型的固有问题:无法主动更新自己的知识,导致出现事实幻觉。也就是说,因为缺乏和外部世界的接触,大模型只拥有训练时见过的知识,以及提示信息中作为上下文提供的附加知识。如果你问的问题超出它的知识范围,要么大模型向你坦白:“我的训练时间截至XXXX年XX月XX日”,要么它就会开始一本正经地胡说。
image.png

代理的作用

每当你遇到这种需要模型做自主判断、自行调用工具、自行决定下一步行动的时候,Agent(也就是代理)就出场了。
image.png

  • 大模型:提供逻辑的引擎,负责生成预测和处理输入。
  • 与之交互的外部工具:可能包括数据清洗工具、搜索引擎、应用程序等。
  • 控制交互的代理:调用适当的外部工具,并管理整个交互过程的流程。

image.png

  • 什么时候开始在本地知识库中搜索(这个比较简单,毕竟是第一个步骤,可以预设)?
  • 怎么确定本地知识库的检索已经完成,可以开始下一步?
  • 调用哪一种外部搜索工具(比如Google引擎)?
  • 如何确定外部搜索工具返回了想要找的内容?
  • 如何确定信息真实性的检索已经全部完成,可以开始下一步?

ReAct框架

如果你接到一个新任务,你将如何做出决策并完成下一步的行动
比如说,你在运营花店的过程中,经常会经历天气变化而导致的鲜花售价变化,那么,每天早上你会如何为你的鲜花定价?
我会去Google上面查一查今天的鲜花成本价啊(行动),也就是我预计的进货的价格,然后我会根据这个价格的高低(观察),来确定我要加价多少(思考),最后计算出一个售价(行动)!
image.png

通过代理实现ReAct框架

ZERO_SHOT_REACT_DESCRIPTION ——这种常用代理类型

pip install google-search-results #先安装SerpAPI的包。
# 设置OpenAI和SERPAPI的API密钥
import os
os.environ["OPENAI_API_KEY"] = 'Your OpenAI API Key'
os.environ["SERPAPI_API_KEY"] = 'Your SerpAPI API Key'
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.llms import OpenAI
llm = OpenAI(temperature=0)
tools = load_tools(["serpapi", "llm-math"], llm=llm) # 加载一些要使用的工具,包括serpapi(这是调用Google搜索引擎的工具)以及llm-math(这是通过LLM进行数学计算的工具)。
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
agent.run("目前市场上玫瑰花的平均价格是多少?如果我在此基础上加价15%卖出,应该如何定价?")

image.png


http://www.kler.cn/a/273300.html

相关文章:

  • 文件操作案例
  • GR2——在大规模视频数据集上预训练且机器人数据上微调,随后预测动作轨迹和视频(含GR1详解)
  • Java环境下配置环境(jar包)并连接mysql数据库
  • android14修改默认锁屏方式为无
  • 算法【Java】—— 动态规划之斐波那契数列模型
  • 云原生开源开发者沙龙丨AI 应用工程化专场杭州站邀您参会
  • npm install 报错
  • login登录界面
  • C#,图论与图算法,无向图(Graph)回环(Cycle)的不相交集(disjoint)或并集查找(union find)判别算法与源代码
  • 【软考】系统集成项目管理工程师(二十一)法律法规和标准规范【1分】
  • 吴恩达深度学习环境本地化构建wsl+docker+tensorflow+cuda
  • 25考研|北大软微会「爆炸」吗?
  • 华为配置WAPI-PSK安全策略实验
  • MVC接收请求教程
  • MS17_010 漏洞利用与安全加固
  • Python内置函数map、split、join讲解
  • 跳绳计数,YOLOV8POSE
  • VSCode + PicGo + Github 实现markdown图床管理
  • 【Hadoop】 在Spark-Shell中删除Hive内部表和外部表的数据
  • Vue+SpringBoot打造数据可视化的智慧河南大屏
  • 单目相机标定实现--张正友标定法
  • 基于Spring Boot的拍卖管理系统设计与实现
  • C++ opencv2找错
  • Css提高——Css3的新增选择器
  • mac npm install 很慢或报错
  • Nadaraya-Watson核回归