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.pswp.cn/diannao/90151.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90151.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90151.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL CDC與Kafka整合指南:構建實時數據管道的完整方案

一、引言:現代數據架構的實時化需求 在數字化轉型浪潮中,實時數據已成為企業的核心資產。傳統批處理ETL(每天T1)已無法滿足以下場景需求: 實時風險監控(金融交易)即時個性化推薦(電商…

MATLAB | 繪圖復刻(二十一)| 扇形熱圖+小提琴圖

前段時間在小紅書刷到了一個很有特色的熱力圖,由大佬滾筒洗衣機創作,感覺很有意思,嘗試 MATLAB 復刻: 作者使用的是 python 代碼,趕快去瞅瞅。 復刻效果 正文部分 0.數據準備 數據需要一個用來畫熱圖的矩陣以及一個…

批量PDF轉換工具,一鍵轉換Word Excel

軟件介紹 今天為大家推薦一款高效的Office文檔批量轉換工具,能夠快速將Word和Excel文件批量轉換為PDF格式。 軟件特點 這款名為"五五Excel word批量轉PDF"的工具體積小巧,不到2M大小,卻能實現強大的批量轉換功能&#xff0c…

面試150 基本計算器

思路 利用棧(stack)來保存進入括號前的計算狀態(包括當前計算結果和符號),以便在括號結束后正確恢復計算上下文。代碼通過遍歷字符串,識別數字、加號、減號和括號。遇到數字時構造完整數值;遇到…

源哈希(sh)解析

源哈希(Source Hashing)是一種負載均衡算法,它根據請求的源 IP 地址(或其他標識符)生成哈希值,然后根據這個哈希值將請求分配到特定的后端服務實例。這種方法常用于確保來自同一客戶端的請求始終被路由到同…

axios的使用以及封裝

前言: 在現代前端開發中,網絡請求是不可避免的核心功能之一。無論是獲取后端數據、提交表單信息,還是與第三方 API 交互,高效且可靠的 HTTP 請求庫至關重要。axios 作為一款基于 Promise 的 HTTP 客戶端,憑借其簡潔的 …

github上部署自己的靜態項目

前置知識1、要在github部署項目要提交打包后的靜態文件(html,css,js)到倉庫里2、我們看下github所提供給我們的部署方式有啥,如下所見;要么是/root文件夾(就說倉庫里全是打包后的產物:html,css,js要全部放到…

能源管理綜合平臺——分布式能源項目一站式監控

綜合性的能源企業管理面臨著項目多、分布散、信息孤島等問題,分布式的多項目能源在線監控管理平臺是一種集成了多個能源項目的數據采集、監控、分析和管理的系統。平臺集成GIS能力,能夠展示項目的整體分布態勢,對不同地點、不同類型的能源項目…

修改阿里云vps為自定義用戶登錄

win系統上找到控制面板-->用戶賬戶-->更改賬戶類型點擊更改賬戶類型,此時我們看到vps的默認管理員賬戶Administrator。為了防止vps被別人使用默認賬戶Administrator攻擊,我們添加一個用戶賬戶,點擊添加用戶賬戶。 用戶名建議奇葩點&…

Linux: perf: debug問題一例,cpu使用率上升大約2%;多線程如何細化cpu及perf數據分析

文章目錄 前提面臨的問題內核級別函數的差別繼續debug總結根據pid前提 一個進程安置在一個CPU上,新功能上線之后,固定量的業務打起來,占用的CPU是42%。之前沒有新功能的情況下,CPU占用是40%。差了大約2%。而且這個進程里的線程數非常多,有50多個線程。從差距看變化不大,…

計算階梯電費

實現一個 Python 程序,根據使用的電量(從控制臺中讓用戶輸入)計算需要交的電費,電量分為兩個階梯,小于 200 度和大于 200 度,如果電量小于等于 200 度,電價就是 0.5 元/度,如果電量大…

替代MT6701,3D 霍爾磁性角度傳感器芯片

KTH5502 是一款基于垂直霍爾技術的高精度絕對角度傳感器芯片,支持全角度(0–360)測量。 芯片內部集成 X、Y 軸的垂直霍爾元件和 Z 軸的水平霍爾元件,能夠同時感知磁場在 X、Y、Z 三個 方向的變化。得益于垂直霍爾技術優異的正交匹…

華為 Mate 80 影像配置揭秘:硬軟雙升

7 月 7 日,知名數碼博主爆料了華為 Mate 80 系列的影像配置,引發廣泛關注。從曝光信息來看,Mate 80 系列在影像方面延續華為的技術探索,通過硬件升級與算法優化,力圖為用戶帶來更出色的拍攝體驗。? 爆料顯示&#xff…

Android studio升級AGP需要注意哪些

deep seek回答: 深度思考完成 用時26秒 嗯,用戶詢問的是在Android Studio中升級AGP需要注意哪些事項。這個問題很實用,因為AGP升級確實是個容易踩坑的過程。讓我看看搜索結果里有什么關鍵信息。 首先注意到搜索結果里有幾個高可信度的資料專…

MapReduce數據處理過程2萬字保姆級教程

目錄 1. MapReduce 的核心思想:分而治之的藝術 2. Hadoop MapReduce 的架構:從宏觀到微觀 3. WordCount 實例:從代碼到執行的完整旅程 4. 源碼剖析:Job.submit 的魔法 5. Map 任務的執行:從分片到鍵值對 6. Shuffle 階段:MapReduce 的幕后英雄 7. Reduce 任務的執行…

Rust單例模式:OnceLock的使用指南

想象一下你在構建一個需要全局數據庫連接的Rust應用。傳統語言里,單例模式常常伴隨著鎖的沉重和初始化競態的焦慮。但在Rust的世界里,OnceLock就像個輕巧的守門人,只允許一次安全的通行。 簡潔的OnceLock實現 看看這段代碼如何優雅地解決單…

JavaScript性能優化實戰:表格控件高效開發指南

引言 在現代Web應用開發中,電子表格功能已成為數據分析、報表展示等場景的核心需求。SpreadJS作為一款高性能的純前端電子表格控件,能夠完美兼容Excel文件格式,支持百萬級數據量和復雜公式計算。然而隨著數據規模的增長和業務邏輯的復雜化&a…

RWA(現實世界資產)代幣化系統構建指南:合規、跨境與機構級解決方案

——金融科技公司機構市場拓展戰略報告前言:RWA代幣化的機構化浪潮與市場機遇 截至2025年6月,全球RWA(Real World Assets)鏈上規模突破240億美元,3年增長超380%,成為僅次于穩定幣的增速第二賽道。貝萊德、摩…

QML Label組件

QML中的Label組件是構建用戶界面時最常用的文本顯示控件之一,它繼承自Text元素但提供了更豐富的UI特性和主題集成支持。本文將全面介紹Label的核心功能、屬性配置、使用技巧以及與Text組件的區別,幫助開發者高效構建美觀的文本界面。 Label組件基礎 La…

使用 GDB 調試 Redis 服務進程指南

1. 準備工作 安裝 GDB 在大多數 Linux 發行版上,執行: sudo apt-get update sudo apt-get install gdb確保有足夠磁盤空間 Core dump 文件可能較大,請提前檢查磁盤剩余空間: df -h .可選:使用 tmux 或 screen 為避免 S…