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

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通过提取聊天完成内容返回给客户端。

http://www.dtcms.com/a/269299.html

相关文章:

  • 微信小程序81~90
  • 人工智能-基础篇-23-智能体Agent到底是什么?怎么理解?(智能体=看+想+做)
  • C# Dictionary源码分析
  • Qt基本组件详解:按钮、输入框与容器控件
  • 基于Java+SpringBoot的在线小说阅读平台
  • Pandas 学习教程
  • c语言中的函数VII
  • Rust单例模式:OnceLock的使用指南
  • 熔断限流降级
  • Pipeline 引用外部数据源最佳实践
  • 深度学习--tensor(创建、属性)
  • pytest合并allure报告解决方案
  • 硅基流动:云服务平台初解
  • 钉钉企业内部机器人实现单聊会话互动开发指南
  • 【Netty应用】Netty的核心设计与应用
  • 机器学习(西瓜书) 第二章 模型评估与选择
  • Linux网络: socket初识
  • C++--map和set的使用
  • 网安系列【11】之目录穿越与文件包含漏洞详解
  • ULVAC爱发科RFS03D RF POWER SUPPLY INSTRUCTION MANUAL RF射频电源
  • Kotlin数值计算Long型乘Float浮点型
  • 安卓10.0系统修改定制化____recovery-from-boot.p文件的具体作用 在定制项目中的关联
  • LLVM,polly,最新测试
  • 【郑大二年级信安小学期】Day6:CTF密码学杂项工具包
  • Multi-Agent 多智能体架构解析--DeerFlow
  • 【DPDK应用篇】事件驱动架构:eventdev异步处理模型的设计与实现
  • 大数据Spark(六十二):Spark基于Yarn提交任务流程
  • C++内存泄漏排查
  • 施密特触发器Multisim电路仿真——硬件工程师笔记
  • 暑假读书笔记第三天