springAI学习:Advisors

spring AI Advisors类似于拦截器,会对请求的prompt做出特定的修改和增强(比如传入历史沟通记录、搜索信息等等),以达到完善prompt的目的。通过Advisors API,开发人员可以创建更为复杂、可重用、可维护的AI组件。下面介绍下Advisors的运作原理。

我用的是包是spring-ai-alibaba-starter-dashscope, Advisor相关逻辑在spring-ai-client-chat-1.0.0.jar。

针对流式和非流式两个场景,Advisor有两组核心类

场景类名包含方法
流式StreamAdvisor

adviseStream

流式StreamAdvisorChain

nextStream、getStreamAdvisors

非流式CallAdvisor

adviseCall

非流式CallAdvisorChain

nextCall、getCallAdvisors

order可以定义advisor优先级,这将决定先调用哪一个(数越小代表优先级越高)。

name是advisor的名称。

nextCall/nextStream是关键方法,主要根据order获取当前可以执行的advisor,并且调用advisor的adviseCall/adviseStream, adviseCall/adviseStream又会调用advisor的before和after方法,以BaseAdvisor为例,代码如下:

以CallAdvisor为例,具体实行的逻辑如下:

1. Spring AI 根据用户的提示创建一个 chatClientRequest 对象。
2. 链中的每个advisor都会处理请求,并可能对其进行修改。
3. 最终的advisor将请求发送至聊天模型。
4. 聊天模型的响应随后会通过advisorChain传递回去,并转换为chatClientResponse。
5. 每位advisor都可以处理或修改回复。
6. 最终的chatClientResponse通过提取聊天完成内容返回给客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值