精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring AI 實(shí)現(xiàn)讓你的 AI “三思而后行”

人工智能
在 Spring AI 中,我們可以通過?Advisor(顧問)?模式,優(yōu)雅地實(shí)現(xiàn)這一功能,讓你的 AI 在回答前真正做到“三思而后行”。

你是否遇到過這樣的情況:精心設(shè)計(jì)的 AI 應(yīng)用,在面對稍微復(fù)雜點(diǎn)的問題時(shí),給出的答案卻驢唇不對馬嘴?感覺它好像“看了一眼就答”,根本沒仔細(xì)“閱讀理解”。

別急,今天就為你介紹一個(gè)能顯著提升大模型推理能力的技巧——Re-Reading(重讀),簡稱 Re2。這個(gè)方法有 論文[1] 背書,效果顯著。

更棒的是,在 Spring AI 中,我們可以通過 Advisor(顧問) 模式,優(yōu)雅地實(shí)現(xiàn)這一功能,讓你的 AI 在回答前真正做到“三思而后行”。

什么是 Re-Reading (Re2)?

Re2 的原理出奇地簡單:讓模型把問題再讀一遍。

我們只需要將用戶的原始問題({Input_Query})通過 Prompt 改造為以下格式:

{Input_Query}
Read the question again: {Input_Query}

通過這種方式,強(qiáng)制模型在生成答案前重新審視問題,從而有效減少誤解,提高復(fù)雜推理任務(wù)的準(zhǔn)確率。

?? 友情提示:這種方法雖然能提升效果,但因?yàn)檩斎腴L度翻倍,API 調(diào)用成本也會(huì)隨之翻倍。因此,在面向 C 端的、成本敏感的應(yīng)用中請謹(jǐn)慎使用!

構(gòu)建你的 Re2 Advisor

在 Spring AI 中,Advisor 是一種 AOP(面向切面編程)思想的體現(xiàn),它允許我們在不侵入核心業(yè)務(wù)邏輯的情況下,對 AI 的請求和響應(yīng)進(jìn)行攔截和增強(qiáng)。

下面,我們來創(chuàng)建一個(gè) ReReadingAdvisor,它會(huì)攔截用戶請求并自動(dòng)應(yīng)用 Re2 模式。

/**
 * @author BNTang
 * @version 1.0
 * @description 自定義 Re2 Advisor,通過讓模型重讀問題來提高其推理能力。
 **/
public class ReReadingAdvisor implements CallAroundAdvisor, StreamAroundAdvisor {

    /**
     * 在 AI 調(diào)用前執(zhí)行,負(fù)責(zé)改寫用戶請求。
     *
     * @param advisedRequest 原始請求
     * @return 應(yīng)用了 Re2 模式的新請求
     */
    private AdvisedRequest before(AdvisedRequest advisedRequest) {
        // 將原始查詢存入?yún)?shù),以便在模板中使用
        Map<String, Object> advisedUserParams = new HashMap<>(advisedRequest.userParams());
        advisedUserParams.put("re2_input_query", advisedRequest.userText());

        // 使用新模板構(gòu)建并返回 AdvisedRequest
        return AdvisedRequest.from(advisedRequest)
                .userText("""
                        {re2_input_query}
                        Read the question again: {re2_input_query}
                        """)
                .userParams(advisedUserParams)
                .build();
    }

    /**
     * 環(huán)繞處理非流式調(diào)用。
     */
    @NotNull
    @Override
    public AdvisedResponse aroundCall(@NotNull AdvisedRequest advisedRequest, CallAroundAdvisorChain chain) {
        // 調(diào)用 before 方法修改請求,然后傳遞給調(diào)用鏈的下一個(gè)環(huán)節(jié)
        return chain.nextAroundCall(this.before(advisedRequest));
    }

    /**
     * 環(huán)繞處理流式調(diào)用。
     */
    @NotNull
    @Override
    public Flux<AdvisedResponse> aroundStream(@NotNull AdvisedRequest advisedRequest, StreamAroundAdvisorChain chain) {
        // 同樣,調(diào)用 before 方法修改請求,然后傳遞給調(diào)用鏈
        return chain.nextAroundStream(this.before(advisedRequest));
    }

    /**
     * 返回 Advisor 的名稱。
     */
    @NotNull
    @Override
    public String getName() {
        return this.getClass().getSimpleName();
    }

    /**
     * 定義 Advisor 的執(zhí)行順序,數(shù)值越小,優(yōu)先級越高。
     */
    @Override
    public int getOrder() {
        return 0; // 設(shè)置為高優(yōu)先級
    }
}

即插即用:在 ChatClient 中啟用 Advisor

Advisor 寫好了,用起來也非常簡單。只需在構(gòu)建 ChatClient 時(shí),通過 .defaultAdvisors() 方法將其加入即可。

/**
 * App 構(gòu)造函數(shù),初始化聊天客戶端。
 *
 * @param ollamaChatModel 聊天模型實(shí)例
 */
public App(ChatModel ollamaChatModel) {
    ChatMemory chatMemory = new InMemoryChatMemory();
    chatClient = ChatClient.builder(ollamaChatModel)
            .defaultSystem(SYSTEM_PROMPT)
            .defaultAdvisors(
                    new MessageChatMemoryAdvisor(chatMemory), // 記憶顧問
                    new ReReadingAdvisor() // 啟用 Re-Reading 顧問!
            )
            .build();
}

現(xiàn)在,所有通過這個(gè) chatClient 發(fā)出的請求,都會(huì)自動(dòng)被 ReReadingAdvisor 處理,實(shí)現(xiàn)推理增強(qiáng),而我們的業(yè)務(wù)代碼無需做任何改動(dòng)。是不是非常優(yōu)雅?

Advisor 最佳實(shí)踐清單

為了讓你更好地駕馭 Advisor,這里總結(jié)了幾個(gè)最佳實(shí)踐:

1. 保持單一職責(zé):每個(gè) Advisor 應(yīng)該只做一件事,比如日志、緩存、重試或像我們今天的 Re2。

2. 注意執(zhí)行順序:通過 getOrder() 控制 Advisor 的執(zhí)行順序,確保邏輯正確。

3. 兼容流式與非流式:盡可能同時(shí)實(shí)現(xiàn) CallAroundAdvisor 和 StreamAroundAdvisor 接口,讓你的 Advisor 更通用。

4. 保持高效:避免在 Advisor 中執(zhí)行耗時(shí)操作,以免阻塞整個(gè)調(diào)用鏈。

5. 充分測試:特別是邊界情況,確保 Advisor 的健壯性。

6. 善用 Reactor(進(jìn)階):對于復(fù)雜的流式處理,可以利用 Reactor 的操作符進(jìn)行精細(xì)控制。

@Override
public Flux<AdvisedResponse> aroundStream(AdvisedRequest advisedRequest, StreamAroundAdvisorChain chain) {
    return Mono.just(advisedRequest)
            .publishOn(Schedulers.boundedElastic())
            .map(this::modifyRequest) // 請求前處理
            .flatMapMany(chain::nextAroundStream)
            .map(this::modifyResponse); // 響應(yīng)后處理
}

7. 共享狀態(tài)(進(jìn)階):使用 advisedRequest.updateContext() 和 advisedResponse.adviseContext() 在 Advisor 鏈中傳遞狀態(tài)。

// 在 Advisor A 中更新上下文
advisedRequest = advisedRequest.updateContext(context -> {
context.put("my_key", "my_value");
return context;
});

// 在 Advisor B 中讀取上下文
Object value = advisedResponse.adviseContext().get("my_key");

引用鏈接

[1] 論文: https://arxiv.org/pdf/2309.06275

責(zé)任編輯:武曉燕 來源: 程序員NEO
相關(guān)推薦

2018-08-08 06:49:35

云計(jì)算私有云公有云

2009-10-29 18:04:32

2011-03-29 15:53:28

數(shù)據(jù)庫管理

2023-10-14 13:07:52

訓(xùn)練模型

2015-02-26 14:10:58

部署虛擬化

2011-02-18 10:22:30

2015-04-20 10:47:53

微服務(wù)容器技術(shù)PaaS

2025-04-07 09:00:00

模型AI推理

2010-08-26 15:33:28

無線網(wǎng)絡(luò)

2013-09-11 11:00:59

HTML5企業(yè)

2023-10-16 13:39:00

AI智能

2025-02-18 08:00:00

2023-09-06 08:30:00

低代碼自動(dòng)化開發(fā)

2010-02-01 16:39:32

Dell主板質(zhì)量

2013-12-09 11:06:47

2014-08-20 11:17:03

2023-07-18 15:14:04

人工智能自動(dòng)化

2015-04-16 16:58:39

2015-08-24 13:42:58

WiFi安全

2016-01-05 15:40:07

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲成人中文| 天海翼亚洲一区二区三区| 亚洲男女毛片无遮挡| 粉嫩av免费一区二区三区| 女人十八岁毛片| 国产伦精品一区二区三区视频 | 亚洲精品ady| 日本新janpanese乱熟| 老司机在线永久免费观看| 国产不卡免费视频| 国产精品久久久久久久久借妻| 久热这里有精品| 一区三区在线欧| 日韩欧美在线123| 熟女少妇精品一区二区| 污污片在线免费视频| 久久精品免费在线观看| 亚洲tv在线观看| 日韩视频在线观看一区| 欧美va亚洲va日韩∨a综合色| 亚洲免费成人av电影| 午夜大片在线观看| 韩国三级一区| 午夜私人影院久久久久| 国产又黄又爽免费视频| 美国一级片在线免费观看视频 | 最新国产在线观看| av电影在线观看一区| 成人网中文字幕| 好吊色在线视频| 一本色道久久综合亚洲精品高清| 久久夜色精品国产亚洲aⅴ| 性欧美丰满熟妇xxxx性仙踪林| 日韩精品免费视频一区二区三区| 欧洲日韩一区二区三区| 国产网站免费在线观看| 国内在线视频| 亚洲男人天堂av网| 精品国产无码在线| 日本亚洲精品| 国产欧美日韩视频一区二区| 久久涩涩网站| 性感美女一级片| 国产成人综合亚洲91猫咪| 国产一区私人高清影院| 中文字幕777| 老司机亚洲精品| 欧美与黑人午夜性猛交久久久| 精品无码免费视频| 黄色在线一区| 久久免费视频网| 久久国产精品波多野结衣| 在线成人激情| 久久视频在线播放| √天堂中文官网8在线| 久久一区二区三区电影| 日韩亚洲欧美成人| 成年人网站在线观看视频| 91日韩欧美| 久久精品视频一| 国产稀缺精品盗摄盗拍| 欧美精品一卡| 久久久久久国产精品久久| 欧美成人aaaaⅴ片在线看| 亚洲国产第一| 欧美一区二区三区……| 伊人中文字幕在线观看| 视频一区二区欧美| 国产日韩欧美夫妻视频在线观看| 91高潮大合集爽到抽搐| 国内一区二区视频| 99re视频在线观看| 色一情一乱一乱一区91av| 99热精品一区二区| 欧美一区二区福利| aⅴ在线视频男人的天堂| 中文字幕中文字幕一区| 国产日产欧美一区二区| 啦啦啦中文在线观看日本| 亚洲大型综合色站| 日韩av资源在线| 国产人妖一区| 91精品一区二区三区在线观看| 中文字幕在线观看91| 林ゆな中文字幕一区二区| 亚洲欧美日韩精品| 99成人在线观看| 激情久久婷婷| 国产精品久久久久久一区二区| 91片黄在线观看喷潮| 成人午夜大片免费观看| 欧美日韩综合精品| 黄色精品免费看| 婷婷开心激情综合| 国产精品一区二区小说| **爰片久久毛片| 亚洲欧美成人网| 国产一区二区三区在线视频观看| 亚洲久久一区二区| 国产欧美久久一区二区| 免费观看a视频| 国产精品视频九色porn| 女人被男人躁得好爽免费视频 | 一本色道久久综合亚洲精品按摩| 高清一区在线观看| 国产主播性色av福利精品一区| 正在播放欧美视频| 国产精品成人av久久| 免费观看日韩电影| 狠狠干一区二区| 毛片在线播放a| 黑人精品xxx一区一二区| 中文字幕国产高清| 国产一区二区精品福利地址| 欧美极品美女电影一区| 中文字幕一区二区三区波野结| 懂色av一区二区三区免费看| 亚洲在线观看一区| 一区二区三区短视频| 日韩免费性生活视频播放| 中文字幕av久久爽一区| 亚洲麻豆av| 亚洲精品女av网站| 98在线视频| 色婷婷亚洲精品| 中文字幕在线永久| 午夜久久黄色| 成人黄色免费网站在线观看| 国产三级在线免费观看| 亚洲成人午夜影院| 在线观看一区二区三区视频| 97国产成人高清在线观看| 国产精品国产自产拍高清av水多| 亚洲aaa在线观看| 亚洲国产毛片aaaaa无费看 | 中文字幕欧美日韩va免费视频| 日本熟妇一区二区| 国产成人a级片| 美女在线免费视频| 视频欧美精品| 精品国产一区二区三区久久久| 欧美男人天堂网| 国产婷婷一区二区| www.日本xxxx| 欧美日韩伦理| 国产精品人成电影在线观看| 国产区av在线| 欧美网站大全在线观看| 97在线观看免费视频| 久久精品亚洲| 欧美一进一出视频| 巨胸喷奶水www久久久| 国产午夜精品全部视频在线播放| 日本中文字幕第一页| 91看片淫黄大片一级在线观看| 久久国产成人精品国产成人亚洲| 精品国产18久久久久久洗澡| 51色欧美片视频在线观看| 日本视频在线观看一区二区三区| 姬川优奈aav一区二区| 日本护士做爰视频| 免播放器亚洲| 日韩中文字幕一区二区| 日韩成人一区| 精品中文字幕在线观看| 亚洲精品网站在线| 精品高清美女精品国产区| 在线观看日韩精品视频| 日韩精品一二三| 在线观看欧美一区| 久久久久久亚洲精品美女| 久久久久久久久久久久久久久久久久av | 欧美中文字幕一二三区视频| 亚洲天堂最新地址| 国产精品亚洲专一区二区三区 | 蜜桃传媒视频麻豆第一区免费观看 | 欧美伦理视频在线观看| 日韩毛片视频| 91免费视频国产| 欧美另类老肥妇| 永久免费看mv网站入口亚洲| 99久久婷婷国产一区二区三区| 亚洲伊人色欲综合网| 国产精品毛片一区二区| 精品在线一区二区| 给我免费播放片在线观看| 在线观看欧美理论a影院| 国产欧美日韩亚洲精品| 国模雨婷捆绑高清在线| 国产亚洲一区精品| 国产黄a三级三级看三级| 色综合天天综合网天天狠天天| 精品国产国产综合精品| 99精品欧美一区二区蜜桃免费| xxxx一级片| 在线播放不卡| 亚洲欧美国产不卡| 欧美成人专区| 91最新在线免费观看| 裤袜国产欧美精品一区| 欧美另类在线播放| av女优在线| 亚洲国产精品久久精品怡红院| 中文字幕乱码人妻无码久久| 亚洲综合一区二区精品导航| www.99热| 99re视频这里只有精品| 99日在线视频| 久久亚洲欧美| 国产黄色片免费在线观看| 久久在线视频免费观看| 久久婷婷开心| 97品白浆高清久久久久久| 国产精品视频内| 综合久久2023| 欧美激情亚洲激情| 男人天堂手机在线| 精品香蕉在线观看视频一| 国产精品一区二区人人爽| 日韩欧中文字幕| 久久精品久久国产| 亚洲欧美韩国综合色| 亚洲无人区码一码二码三码的含义| 成人黄色综合网站| 久久精品无码一区二区三区毛片| 日韩精品电影一区亚洲| 大陆极品少妇内射aaaaa| 欧美全黄视频| 中文字幕一区二区三区四区五区| 久久最新网址| 麻豆传媒一区二区| 美女网站色精品尤物极品姐弟| 亚洲一区二区三区xxx视频| 福利一区二区| 国产精品男人爽免费视频1| 性感女国产在线| 91a在线视频| 蜜桃视频在线网站| 91禁国产网站| 色戒汤唯在线| 欧美一级片免费在线| 理论不卡电影大全神| 国产综合在线视频| 18video性欧美19sex高清| 久久6精品影院| 51xtv成人影院| 欧美成人免费网| 最新av在线播放| 欧美激情在线一区| 日本孕妇大胆孕交无码| 欧美高清视频在线播放| dy888亚洲精品一区二区三区| 久久成人18免费网站| 怡红院av在线| 欧美激情一区二区三区在线视频观看 | 91一区二区三区在线观看| aaaa黄色片| 99精品桃花视频在线观看| 国产又爽又黄无码无遮挡在线观看| 95精品视频在线| 小早川怜子久久精品中文字幕| 日本一区二区三区在线不卡| 91精品久久久久久久久久久久| 国产精品三级久久久久三级| а天堂中文在线资源| 亚洲男女一区二区三区| 国产精品19乱码一区二区三区| 午夜不卡av在线| 久久99国产综合精品免费| 在线一区二区三区| 国产又粗又长视频| 日韩精品一区国产麻豆| 天天干天天舔天天射| 一本一道久久a久久精品逆3p | 97热精品视频官网| 少妇视频一区| 国产精品中文在线| 视频一区日韩| 欧美不卡福利| 国产精品国产三级国产在线观看| 神马午夜伦理影院| 9国产精品视频| 久久这里只精品| 成人晚上爱看视频| 9.1成人看片| 中文字幕在线观看不卡| 国产在线观看免费视频今夜| 色综合天天狠狠| 精品国产99久久久久久宅男i| 日韩av在线直播| 免费人成在线观看播放视频| 国内精品在线一区| 成人亚洲视频| 九九九九精品| 日韩一区二区在线免费| 老太脱裤让老头玩ⅹxxxx| 人妖欧美一区二区| 丝袜熟女一区二区三区| 国产精品嫩草影院com| 动漫精品一区一码二码三码四码| 在线中文字幕不卡| 亚洲毛片欧洲毛片国产一品色| 亚洲视频一区二区| 欧美xxxx免费虐| 国产精品青草久久久久福利99| 国产精品x8x8一区二区| 亚洲一区二区精品在线| 国产亚洲午夜| 久久黄色一级视频| 国产精品美女一区二区在线观看| 日韩污视频在线观看| 欧美一区二区精品在线| 国产女人在线视频| 97久久超碰福利国产精品…| 999精品视频在线观看| 色播亚洲婷婷| 夜夜精品视频| 波多野吉衣在线视频| 国产精品久久久久一区二区三区 | 国产精品一区二区三区四区五区 | 欧美午夜在线播放| 午夜精品一区二区三区在线观看| 99精品99| 久久久久国产免费| 亚洲人成人一区二区在线观看| 波多野结衣激情视频| 亚洲高清福利视频| 青春草在线视频| 91亚洲永久免费精品| 日韩电影一区| 无人在线观看的免费高清视频 | 69av成人| av激情久久| 一区二区蜜桃| 成人高清在线观看视频| 亚洲素人一区二区| 91美女精品网站| 久久影视免费观看| 欧美成人毛片| 亚洲视频在线观看日本a| 日韩影院在线观看| www亚洲色图| 欧美色大人视频| 视频免费一区| 91精品久久久久久| 先锋资源久久| 性生活一级大片| 一区二区三区四区激情| 精品国产999久久久免费| 欧美激情精品久久久久久蜜臀| av自拍一区| 日本男女交配视频| 成人性生交大片免费看中文| 国产真人真事毛片| 亚洲电影免费观看高清完整版在线观看 | 久久新电视剧免费观看| youjizz在线视频| 亚洲情综合五月天| 日本综合视频| 国产奶头好大揉着好爽视频| 国产一区二区精品久久91| www.99re7| 亚洲成人av片| xx欧美xxx| 亚洲一卡二卡三卡四卡无卡网站在线看 | 亚洲区小说区| 亚洲最大综合网| 亚洲美女淫视频| 色呦呦中文字幕| 国产精品91视频| 999久久久国产精品| 国产成人av片| 欧美色视频日本版| 五月婷婷在线视频| 91精品国产一区二区三区动漫 | 亚洲黄一区二区三区| 二区三区在线视频| 日韩av电影国产| 91欧美日韩| 午夜av免费看| 精品视频资源站| 免费男女羞羞的视频网站在线观看| 久久偷窥视频| 国产老肥熟一区二区三区| 日本在线播放视频| 久久精品国产成人| 秋霞在线一区| 国产一区二区在线观看免费视频| 亚洲综合色噜噜狠狠| 男女av在线| 91久久伊人青青碰碰婷婷| 香蕉久久久久久久av网站| 波多野结衣欲乱| 亚洲精品福利视频| crdy在线观看欧美| 亚洲熟妇国产熟妇肥婆| **网站欧美大片在线观看| 欧美性受xxxx狂喷水| 国产精品久久久久国产a级| 国语精品一区|