基于 AI Agent 智能体架构落地复杂问答系统的案例设计与实践

1

先从传统思维的架构设计说起

我们先来看一个场景:用户输入一个问题(Prompt)后,如何实现用户问题的自动路由和查询(比如:是 RAG 检索还是 SQL 查询)

  • 解决方案:意图识别架构设计

第一、对于用户输入的问题(Prompt),我们通过意图识别模块来判断是需要路由给RAG 检索还是路由给 SQL 查询;

第二、意图识别模块接收用户的问题(Prompt),然后将用户的问题交给大模型去判断分类;

第三、意图识别架构设计如下图所示:

13e1e16596fec24e00d7f5e113b75680.png

第四、大模型需要提前做 SFT Fine-tuning 微调,目的是让大模型知道什么问题属于 RAG 检索问题,什么问题属于 SQL 查询问题,Fine-tuning 微调的样本数据格式如下:

examples =[
{
"inn":"我想知道东方阿尔法优势产业混合C基金,在2021年年度报告中,前10大重仓股中,有多少只股票在报告期内取得正收益。",
"out":"rag_question***我想知道东方阿尔法优势产业混合C基金,在2021年年度报告中,前10大重仓股中,有多少只股票在报告期内取得正收益。"
},
{
"inn":"森赫电梯股份有限公司产品生产材料是什么?",
"out":"rag_question***森赫电梯股份有限公司产品生产材料是什么?"
},
{
"inn":"20210930日,一级行业为机械的股票的成交金额合计是多少?取整。",
"out":"agent_question***20210930日,一级行业为机械的股票的成交金额合计是多少?取整。"
},
...
  ]

第五、意图识别模块识别结果后,通过在代码中硬编码 if...else 对识别后的分类进行不同的后续处理,代码如下:

# 如果是 RAG 相关的问题
if intent =="rag_question":
    result = self.rag.get_result(question=question)
return result


# 如果是 Agent 相关的问题
elif intent =="agent_question":
    result = self.agent.get_result(input=question)
return result


# 其他类问题
else:
    result = self.chat.invoke(input=question).content
return result
  • 意图识别架构设计的问题

从上述实现流程我们可以看到,意图识别的架构设计本质还是传统的开发模式,也就是静态业务流程编排的面向过程架构设计范式,也就是说程序执行的每一个步骤还是由开发者精准控制,大模型此刻只是扮演者辅助工具角色,用于问题分类,这种面向过程的架构设计范式有3个问题:

第一、若意图识别出现偏差,后续的处理流程将失去效果,结果必然会出现错误。

第二、尽管我们可以在 if...else... 结构中加入修正策略,比如:当 RAG 检索失败时转而查询 SQ L数据库,但面对复杂的需求,这种策略的编写与维护成本将呈指数级增长。

第三、最关键的是,这种处理方式丝毫体现不出智能化的特点。

那么如何基于 AI Agent 智能体的架构设计对用户问题(Prompt)自主判断和自主解决呢?

2

基于 AI Agent 智能体的新架构设计方案

AI Agent 智能体由大模型推理能力、Planning 规

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值