目前大模型已经被广泛使用,并在处理人们的日常任务取得比较好的效果,如回答问题、辅助编写文档等。而大模型的大部分数据来源于互联网,如维基百科、书籍、等内容进行训练而成,面向个人用户。如果将AI引入到工作场景,需要为大模型提供企业内部知识以及将企业内部工具进行交互,才能提升团队生产力及效率。
在大模型引入到工作场景时,我们有可能需要需要面临的问题,如获取企业内部数据(大模型训练的数据为公共信知识,未进行企业内部信息训练)、获取实时信息(实时聊天记录、实时报表信息等)以及与企业工具交互(完成调用API执行任务)。下面主要介绍利用ReAct框架解决与企业工具交互的问题。
01—产品什么是ReAct框架?
ReAct是Reasoning and Acting(Reason Act)缩写,意思是LLM可以逻辑推理(Reason),构建完成系列行动(Act),从而达成期望目标。ReAct框架允许大模型与外部工具交互获取额外的信息,从而给出更可靠和实际的行动。
大模型Agent功能,大模型会自己分析问题,选择合适的工具,最终解决问题。这个功能背后的原理是ReAct框架。
ReAct方式的作用就是协调LLM模型和外部的信息获取,与其他功能交互。如果说LLM模型是大脑,那ReAct框架就是这大脑的手脚和五官。同时具备帮助LLM模型获取信息、输出内容与执行决策的能力,对于一个指定的任务目标,ReAct框架会自动补齐LLM应该具备的知识和相关信息,然后再让LLM模型做成决策,并执行LLM的决策。
参考论文:ReAct: Synergizing Reasoning and Acting in Language Models
关键概念 | 描述 |
---|---|
Thought | 由LLM模型生成,是LLM产生行为和依据 |
Act | Act是指LLM判断本次需要执行的具体行为 |
Obs | LLM框架对于外界输入的获取。 |
ReAct流程里,关键是三个概念:
Thought:由LLM模型生成,是LLM产生行为和依据。可以根据LLM的思考,来衡量他要采取的行为是否合理。这是一个可用来判断本次决策是否合理的关键依据。相较于人类,thought的存在可以让LLM的决策变得更加有可解释性和可信度。
Act:Act是指LLM判断本次需要执行的具体行为。Act一般由两部分组成:行为和对象。用编程的说法就是API名称和对应的入参。LLM模型最大的优势是,可以根据Thought的判断,选择需要使用的API并生成需要填入API的参数。从而保证了ReAct框架在执行层面的可行性。
Obs:LLM框架对于外界输入的获取。它就像LLM的五官,将外界的反馈信息同步给LLM模型,协助LLM模型进一步地做分析或者决策。
一个完整的ReAct的行为,包含以下几个流程:
1、输入目标:任务的起点。可以是用户的手动输入,也可以是依靠触发器(比如系统故障报警)。
2、LOOP:LLM模型开始分析问题需要的步骤(Thought),按步骤执行Act,根据观察到的信息(Obs),循环执行这个过程。直到判断任务目标达成。
3、Finish:任务最终执行成功,返回最终结果。
代码语言:javascript复制尽可能回答以下问题,可以使用工具:
{工具名和描述}
使用以下格式回答:
问题:你必须回答的问题
思考:你应该一致保持思考,思考要怎么解决问题
动作:{工具名}。每次动作只选择一个工具,工具列表{工具名和描述}
输入:{调用工具时需要传入的参数}
观察:{第三方工具返回的结果}
【思考-动作-输入-观察】循环N次
思考:最后,输出最终结果
最终结果:针对原始问题,输出最终结果
以我想预约一个下午2点的会议室为例,理解用户意图进行推理查询对应的API和执行任务。
代码语言:javascript复制开始!
问题:我想预约一个下午2点的会议室
思考:我需要知道进行2点空的会议室
输入:2点到4点
动作:查询API
观察:XX会议室、XX会议室
思考:我需要预约下午2点的一个会议室;
动作:预定API
输入:XXX会议室
观察:预约成功
思考:
最终结果:预约了下午2点的XX会议室