0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Agent應(yīng)用實戰(zhàn):從廣告智能助手落地到平臺化賦能

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2025-02-14 14:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

自2022年底ChatGPT發(fā)布以來,大模型成為非?;鸨脑掝}。如何在生活和工作中把大模型用的更好、更具價值,業(yè)界一致認(rèn)為Agent是其中一個重要的方向。下面就分享一下我們京東廣告在Agent應(yīng)用上的一些實踐和經(jīng)驗,希望能給大家?guī)硪欢ǖ膯l(fā)和思考。

?

一、Agent 在京東廣告投放中的應(yīng)用

?

1、Agent是什么

既然是講Agent的應(yīng)用,還是要先來普及一下基本概念,一句話簡介:

Agent是以大語言模型為大腦驅(qū)動,具有自主理解感知、規(guī)劃、記憶和使用工具的能力,能自動化執(zhí)行完成復(fù)雜任務(wù)的系統(tǒng)。

wKgZO2esd4SAFGzZAAlRaTWr5-M861.png

?

2、Agent能做什么

接下來,用一個小小的案例來讓大家更直觀的感受到,Agent和大模型的區(qū)別。

?

舉個栗子:一個工作中用到的高頻場景—預(yù)定會議室,假如今天有個會議計劃在15-16點,需要定個會議室。

現(xiàn)有的方式:通常要先打開辦公軟件,其次打開會議室預(yù)定應(yīng)用,然后選擇期望的會議室樓層或區(qū)域、會議時間,進行篩選,如果找出多個,再找出離自己最近或者最方便的一個,進行預(yù)定。

?

那么,如果我們希望借助大模型來幫我們提效,計劃通過一句話就實現(xiàn)會議室的預(yù)定:我在12層,幫我找個15-16點的會議室,盡量近一點

?

如果單純靠大模型是無法幫我們解決這個問題的,它大概率會回答:”要找到離你最近的會議室并了解其可用性,通常需要使用公司內(nèi)部的會議室預(yù)訂系統(tǒng)或辦公軟件,如Outlook、Google Calendar等。以下是一些建議步驟…“

?

如果利用Agent的方式,就可以很好的解決這個問題:

1、在Agent中,我們有一些工具,其中包括:查找會議室(可以時間等條件查詢可用的會議室)、預(yù)定會議室(根據(jù)會議室ID、會議室時段等信息預(yù)定會議室)。

2、當(dāng)Agent收到我們的需求時,會先用大腦(大模型)思考,大腦綜合各種信息(歷史的記憶、擁有的工具能力等)進行推理并規(guī)劃要做哪些行動。

3、大腦告知Agent需要先調(diào)用【查詢會議室】的工具,并給出調(diào)用參數(shù)(預(yù)定時段等)。

4、Agent執(zhí)行調(diào)用,完成后將結(jié)果給到大腦繼續(xù)思考。

5、如果有可用的會議室,大腦會告知Agent調(diào)用【預(yù)定會議室】工具,進行預(yù)定。否則,會根據(jù)查詢到的會議及空閑時段給出一些可用的建議,如下圖。

wKgZPGesd4WALVkQAAhNWH_zpFI691.png

?

相信通過上面這個案例,大家能更真切的感受到基于大模型的Agent,會有非常大的想象空間及廣泛的應(yīng)用場景。

?

如果我們將上面的案例再進行一些擴展,增加會議邀請的工具,那么就實現(xiàn)了一個小型的會議助手Agent??梢詭臀覀儗崿F(xiàn)幾秒鐘就完成一個現(xiàn)在大約幾分鐘才能完成的事情。

?

3、Agent 在廣告投放中的應(yīng)用場景

以上,我們對Agent有了一定的了解,接下來就介紹一下我們京東廣告投放業(yè)務(wù)在Agent應(yīng)用上的一些實踐。

首先,介紹一下Agent在廣告投放中的兩個主要的場景:

?

wKgZO2esd4aAQJJGAASXNuHYyuA359.png

?

3.1、服務(wù)提效

背景

京準(zhǔn)通作為專業(yè)的廣告投放平臺,每天有幾十萬的京東商家在此進行廣告的投放,以獲取更多的C端流量達成更高的商品銷售量。

如此龐大的商家量級,在使用過程中,每天都會有各類商家的各種各樣的問題,之前,所有用戶的問題都會走到人工客服上,人工客服會根據(jù)產(chǎn)品、運營提供的一些資料為用戶解答,對于客服無法解答的問題(如:功能異常、數(shù)據(jù)異常、政策咨詢等),再轉(zhuǎn)給產(chǎn)研側(cè)跟進解決。

痛點

這種方式主要的問題:1.咨詢高峰,通常需要排隊等待,問題解決效率低,商家體驗不好。2.人工客服成本高。

方案

針對這些問題,我們期望利用大模型打造一個智能客服,由智能客服承接用戶的問題,智能客服無法解答的再轉(zhuǎn)到人工客服,最后對于棘手的問題再轉(zhuǎn)給產(chǎn)研跟進。

收益

該方案的主要收益:1.智能客服無需排隊,秒級作答,可明顯提升用戶滿意度。2.可明顯減輕客服壓力,節(jié)省客服成本。

?

3.2 盯盤提效

背景

在廣告投放中,廣告主通常需要創(chuàng)建廣告物料,然后不斷觀察效果數(shù)據(jù),及時調(diào)整投放策略,以獲得更好的投放效果,整個過程我們稱之為“盯盤”。

痛點

查數(shù)、物料創(chuàng)建、物料編輯是廣告主最高頻的操作,當(dāng)前廣告主進行多種操作時需要跳轉(zhuǎn)多個產(chǎn)品線進行很多步操作才能完成,盯盤效率低。

方案

利用Agent的工具調(diào)用能力,為廣告主提供一些智能指令,比如,一句話查詢自定義數(shù)據(jù):查詢上個月各產(chǎn)品線的數(shù)據(jù)。

收益

智能指令的使用將明顯提升廣告主盯盤效率,比如查詢上個月各產(chǎn)品線的數(shù)據(jù),在之前,用戶需要跳轉(zhuǎn)多個界面,進行多次操作才能完成,使用智能指令后,僅需一步即可。

?

?

有了大致的思路和方案,基于此前的技術(shù)調(diào)研,我們需要構(gòu)建RAG和Function call能力來分別支撐智能客服和智能指令。

?

接下來就詳細介紹這兩個能力的技術(shù)實現(xiàn)。

?

3.3 RAG能力的構(gòu)建

wKgZPGesd4iAC8X0AA-I_Oqv9gU636.png

?

RAG模塊主要包含兩部分,分別是:離線知識構(gòu)建、在線推理引擎。

?

離線知識構(gòu)建

主要的工作是將知識轉(zhuǎn)化為向量并存儲。主要幾個步驟,如下:

1.產(chǎn)品/運營將相關(guān)業(yè)務(wù)的知識整理成文檔(Markdown、Excel等)

2.根據(jù)不同格式和切割方式將內(nèi)容切割成若干個內(nèi)容塊

3.調(diào)用embedding model,進行內(nèi)容向量化

4.將向量存儲至京東Vearch向量庫

?

Embedding模型有很多種,不同模型之間維度不一樣,常見的有1024、1536。向量存儲時通常要創(chuàng)建表空間,創(chuàng)建時需要確定維度。所以最好先確定好向量模型再進行存儲空間的創(chuàng)建。

?

在線推理引擎

提供實時在線服務(wù),主要作用是檢索相關(guān)知識并調(diào)用大模型解決問題。主要幾個步驟,如下:

1.收到用戶Query,調(diào)用embedding model,進行向量化,獲得向量

假如,用戶的問題:搜索快車關(guān)鍵詞設(shè)置

?

2.根據(jù)向量,調(diào)用Vearch接口,進行知識檢索,獲得和Query相關(guān)的知識

{"docs": [
    {
        "_id": "8684356582637079690", 
        "_score": 0.7526149153709412, 
        "_source": {
            "content": "搜索快車-搜索快車投放要素-定向設(shè)置(關(guān)鍵詞定向、商品定向)-關(guān)鍵詞定向-功能入口 n搜索快車->新增/編輯快車推廣單元->添加關(guān)鍵詞;n- 搜索快車->計劃->單元->關(guān)鍵詞設(shè)置->添加關(guān)鍵詞。", 
            "status": 1, 
            //更多字段...
        }, 
    }, 
    {
        "_id": "-1119433630625640889", 
        "_score": 0.7362563610076904, 
        "_source": {
            "content": "搜索快車-搜索快車投放要素-定向設(shè)置(關(guān)鍵詞定向、商品定向)-關(guān)鍵詞定向-關(guān)鍵詞投放策略-關(guān)鍵詞批量添加功能(推廣管理模塊)n添加關(guān)鍵詞時,可在同個計劃中選擇不同單元,針對多個單元批量添加同批次的關(guān)鍵詞,提升您的買詞效率。", 
            "status": 1, 
            //更多字段...
        }, 
    }, 
    {
        "_id": "-2002741349177277662", 
        "_score": 0.7218812704086304, 
        "_source": {
            "content": "搜索快車-產(chǎn)品操作指南-創(chuàng)建計劃-普通計劃-商品推廣-定向設(shè)置-關(guān)鍵詞n添加關(guān)鍵詞:點擊添加關(guān)鍵詞,彈出側(cè)滑框進入買詞界面;n- 購買關(guān)鍵詞:有以下幾種買詞方式n- 商品推詞:根據(jù)SKU ID,系統(tǒng)自動推薦關(guān)鍵詞,可以選擇熱搜詞、潛力詞、撿漏詞;n- 核心拓詞:根據(jù)輸入的關(guān)鍵詞,系統(tǒng)自動拓展;n- 手動輸入:手動一個個輸入關(guān)鍵詞;n- 導(dǎo)入關(guān)鍵詞:通過Excel批量導(dǎo)入;n- 用詞記錄:自動識別單元下歷史購買過的關(guān)鍵詞;", 
            "status": 1, 
            //更多字段...
        }, 
    }
    //更多知識...
]}

3.拼接提示詞,由于檢索到的結(jié)果是json,要讓模型更方便理解,需要處理成特定的格式

//這里不方便展示業(yè)務(wù)真實的提示詞,提示詞的書寫格式多種多樣,以下僅提供大致思路

請根據(jù)信息
"""
搜索快車-搜索快車投放要素-定向設(shè)置(關(guān)鍵詞定向、商品定向)-關(guān)鍵詞定向-功能入口
- 搜索快車->新增/編輯快車推廣單元->添加關(guān)鍵詞;
- 搜索快車->計劃->單元->關(guān)鍵詞設(shè)置->添加關(guān)鍵詞。

搜索快車-搜索快車投放要素-定向設(shè)置(關(guān)鍵詞定向、商品定向)-關(guān)鍵詞定向-關(guān)鍵詞投放策略-關(guān)鍵詞批量添加功能(推廣管理模塊)
添加關(guān)鍵詞時,可在同個計劃中選擇不同單元,針對多個單元批量添加同批次的關(guān)鍵詞,提升您的買詞效率。

搜索快車-產(chǎn)品操作指南-創(chuàng)建計劃-普通計劃-商品推廣-定向設(shè)置-關(guān)鍵詞
添加關(guān)鍵詞:點擊添加關(guān)鍵詞,彈出側(cè)滑框進入買詞界面;
- 購買關(guān)鍵詞:有以下幾種買詞方式
- 商品推詞:根據(jù)SKU ID,系統(tǒng)自動推薦關(guān)鍵詞,可以選擇熱搜詞、潛力詞、撿漏詞;
- 核心拓詞:根據(jù)輸入的關(guān)鍵詞,系統(tǒng)自動拓展;
- 手動輸入:手動一個個輸入關(guān)鍵詞;
- 導(dǎo)入關(guān)鍵詞:通過Excel批量導(dǎo)入;
- 用詞記錄:自動識別單元下歷史購買過的關(guān)鍵詞;
"""
回答問題
"""
搜索快車關(guān)鍵詞設(shè)置
"""

?

4.調(diào)用大模型接口,傳入拼接好的提示詞,獲取結(jié)果返回給用戶。

?

{"output": "在搜索快車中進行關(guān)鍵詞設(shè)置的步驟如下:nn1. **添加關(guān)鍵詞**:n   - 進入搜索快車 -> 新增/編輯快車推廣單元 -> 添加關(guān)鍵詞;n   - 或者進入搜索快車 -> 計劃 -> 單元 -> 關(guān)鍵詞設(shè)置 -> 添加關(guān)鍵詞。nn2. **購買關(guān)鍵詞**:n   - 點擊添加關(guān)鍵詞,彈出側(cè)滑框進入買詞界面;n   - 有以下幾種買詞方式:n     - 商品推詞:根據(jù)SKU ID,系統(tǒng)自動推薦關(guān)鍵詞,可以選擇熱搜詞、潛力詞、撿漏詞;n     - 核心拓詞:根據(jù)輸入的關(guān)鍵詞,系統(tǒng)自動拓展;n     - 手動輸入:手動一個個輸入關(guān)鍵詞;n     - 導(dǎo)入關(guān)鍵詞:通過Excel批量導(dǎo)入;n     - 用詞記錄:自動識別單元下歷史購買過的關(guān)鍵詞。nn3. **關(guān)鍵詞批量添加**:n   - 在同個計劃中選擇不同單元,針對多個單元批量添加同批次的關(guān)鍵詞,提升買詞效率。..."}

?

知識召回的問題

wKgZO2esd4mABawoAAsbdkDhM00555.png

?

第一版的RAG能力在實際應(yīng)用中,遇到兩類問題:

?

一、我們認(rèn)為更相關(guān)的知識未召回

?

對于【京準(zhǔn)通切詞匹配】這個Query,我們認(rèn)為更相關(guān)的內(nèi)容(搜索快車切詞匹配 n當(dāng)用戶發(fā)起搜索時,根據(jù)不同的匹配模式可能展現(xiàn)不同的xxx),相關(guān)性不夠無法召回。

向量召回的分?jǐn)?shù)與相關(guān)內(nèi)容密度強相關(guān),理論上密度越高,相關(guān)分值越高,下面有個示例更直觀的說明一下。

?

wKgZPGesd4qAO4QcAANL0wRpnjU476.png

以上的例子只是為了讓大家更直觀了解向量檢索,實際中,模型可能并不會認(rèn)為【京準(zhǔn)通】是獨立詞。同樣,影響結(jié)果的因素有很多(向量維度、切詞、向量矩陣轉(zhuǎn)換算法、分值算法等),如果要改變模型對某些特定內(nèi)容的行為,常見的做法是微調(diào)。(后續(xù)再學(xué)習(xí)探討)

通過以上例子可以看到,提升相關(guān)內(nèi)容密度,也是提升知識召回率的一種手段,且門檻和實現(xiàn)成本較低。

我們的方案是:將同一塊知識,按照【概述+內(nèi)容】分別存兩份向量,在召回階段,按照概述和內(nèi)容分別進行召回,然后去重。其中概述內(nèi)容較短,也就意味著密度較高,更容易獲得高的相關(guān)性。

?

還有一種場景,在對用戶問題分析中,發(fā)現(xiàn)有一部分廣告主提出一些【智能計劃】相關(guān)的問題(對于搜索快車或推薦廣告的智能出價的計劃的習(xí)慣性簡稱),由于廣告投放產(chǎn)品中有一個叫做智能投放的產(chǎn)品,在知識召回的時候大部分召回了智能投放相關(guān)的知識,導(dǎo)致無法正確回答此類問題。

?

我們方案是新增一路ES檢索,ES分詞時設(shè)置特定的同義詞、專用詞、否定詞。比如:

同義詞:智能計劃 => 智能出價計劃(解決用戶習(xí)慣的問題)、 購物觸點 => 推薦廣告 京挑客 => 京東聯(lián)盟 (解決產(chǎn)品線升級改名的問題)

收到請求后,分別通過向量和ES檢索,最大化提升召回率。

更多ES檢索技術(shù)實現(xiàn)細節(jié),請看: 《廣告智能助手Agent混合檢索技術(shù)實踐》

?

二、召回部分無關(guān)知識影響模型作答效果

?

通過以上一些手段,有效提升了知識召回率,但是引發(fā)了另一個問題,部分知識不相關(guān),會誤導(dǎo)模型,影響模型作答效果。

?

這里方案是引入ReRank模型,在知識召回后,調(diào)用算法側(cè)部署的ReRank服務(wù),對知識進行重排序,過濾無關(guān)知識。

?

通過以上多種能力的引入,RAG的能力也逐漸演變?yōu)橄聢D:

?

wKgZO2esd4uASbOLAAgL0inYRTI045.png

?

3.4 Function Call 能力的構(gòu)建

wKgZPGesd4yALEUkAAgq44dqkaU549.png

?

Function Call的能力主要是為了服務(wù)智能指令,比如:提供一個計劃數(shù)據(jù)查詢的工具,當(dāng)用戶發(fā)送【查詢今天ROI > 10 的計劃】,模型會返回Function Call標(biāo)識,包括function name 及 arguments,調(diào)用成功后,用對應(yīng)的組件渲染出來報表。

?

同樣包含兩部分,分別是:工具能力注冊、在線推理引擎。

?

工具能力注冊

該模塊主要工作是將工具的信息管理起來,主要包含三部分信息,分別是:

1.模型感知的信息:主要作用是給模型做推理,名稱、參數(shù)、描述,為了讓模型推理更準(zhǔn)確,描述的內(nèi)容我們做了拆分,由基本描述、擴展描述、示例指令幾部分組成,下面是一個工具給模型的信息示例:

{
    "type": "function", 
    "function": {
        "name": "query_xxxx_data" //名稱
        "description": 
            "根據(jù)ROI、時間....查詢廣告計劃數(shù)據(jù)" + //基本描述
            "這是一個查詢計劃數(shù)據(jù)的工具,可以根據(jù)..." + //擴展描述
            "示例指令:n- 查詢今天ROI > 10的計劃數(shù)據(jù)n -查詢上周..." //示例指令
        "parameters": { //參數(shù)
            "type":"object",
            "properties":{
                "startTime":{
                    "type":"string",
                    "description":"開始時間,格式y(tǒng)yyy-mm-dd"
                },
                "endTime":{
                    "type":"string",
                    "description":"結(jié)束時間,格式y(tǒng)yyy-mm-dd"
                },
                "roi":{
                    "type":"string",
                    "description":"ROI(投產(chǎn)比)查詢條件,如:“ge|3”代表大于等于3。gt-大于,lt-小于,eq-等于,ge-大于等于,le-小于等于"
                },
                "cost":{
                    "type":"string",
                    "description":"消耗(花費)查詢條件,如:"lt|500"代表小于500。gt-大于,lt-小于,eq-等于,ge-大于等于,le-小于等于"
                }
            }
        }
    }
}


2.后端感知的信息:正常情況下,工具的執(zhí)行其實是調(diào)用了后端的接口,那么就需要接口地址、接口入?yún)ⅰ⒔涌诔鰠?、成功條件等信息。其中接口的入?yún)⒑湍P透兄畔⒅械膮?shù)是同一份數(shù)據(jù)。

{
    "url": "http://xxx.jd.local/xxx", //接口地址
    "success":{//成功條件
        "condition":{
            "from":"code",
            "operator":1,
            "target":1
        },
        "data":"data"
    },
    "params":[//出參
        {"key":"code","type":"integer","description":"code碼"},
        {"key":"msg","type":"string","description":"錯誤信息"},
        {"key":"data","type":"string","description":"返回給前端數(shù)據(jù)"}
    ],
    "error":{"msgType":1,"msgKey":"msg","msgContent":""}
}

?

3.前端感知的信息:工具調(diào)用成功后,通常有多種處理方式:1.把結(jié)果直接返回給用戶。2.把結(jié)果給到模型,模型繼續(xù)做推理,同時可以再定義Prompt。3.將結(jié)果使用組件渲染給用戶。

我們?yōu)閺V告主提供的工具大部分都要用組件進行渲染,比如數(shù)據(jù)報表。當(dāng)工具需要和組件結(jié)合的時候,需要考慮組件的配置化和復(fù)用率,這里我們打通了既有的低代碼平臺,會將組件的信息保存下來。

{
"pageData":[
    {
        "name":"數(shù)據(jù)表格",
        "componentName":"jad_ReportTable",
        "jsUrl":"jadfe/xxx/ReportTable.6a3493f4.js", //組件CDN地址
        "options":[//組件配置
            {
                "key":"columns",
                "type":"list",
                "name":"列設(shè)置",
                "options":[{"key":"title","name":"列名稱","type":"input"},{"key":"key","name":"字段key","type":"input"},{"key":"width","name":"寬度","type":"inputNumber"},{"key":"sort","name":"排序","type":"switch"}],
                "value":[{"title":"計劃名稱","key":"campaignName","width":110},{"title":"產(chǎn)品線","key":"businessTypeStr","width":110},{"title":"時間","key":"date","sort":false},{"title":"展現(xiàn)數(shù)","key":"impressions","sort":true}],
        }],
}

?

在線推理引擎

?

提供實時在線服務(wù),主要作用是組裝工具信息調(diào)用大模型進行推理。主要幾個步驟,如下:

?

1.收到用戶Query,從數(shù)據(jù)庫讀取工具信息

2.將工具組裝成模型需要的格式,組裝Prompt,調(diào)用模型

3.如果模型返回Function Call標(biāo)識,通過標(biāo)識中的 function name 找出對應(yīng)的工具,調(diào)用該工具的接口

4.根據(jù)結(jié)果的展示行為,有以下幾種處理方式:

4.1給到模型繼續(xù)作答,同時可自定義Prompt,適用的場景如下

用戶問題:查一下賬戶還剩多少錢

接口結(jié)果:{"data": {award: 20, cash: 100}, msg: ""}

顯然,直接把json中data的結(jié)果給到用戶,是不合理的。
這個時候就適合給到模型去作答,但是模型不理解award和cash在系統(tǒng)中表達的意思,會按照自己的理解去作答,如下:
賬戶中有兩種形式的余額:獎勵余額:20  現(xiàn)金余額:100

但實際award在系統(tǒng)可能意思是紅包余額,這個時候就需要額外定義Prompt:
award代表:紅包余額,cash代表:現(xiàn)金余額,單位:元

最終確保能比較完美的回答用戶問題。

4.2直接返回結(jié)果,適用的場景如下

用戶問題:這個優(yōu)惠券:742382343 為什么不生效,SKU 123456789

接口結(jié)果:{"data": "未生效的原因是xxx"}

這種情況下,適合直接將data字段反給用戶。

4.3返回結(jié)果并需要用前端組件渲染,適用的場景如下

用戶問題:查詢今天ROI > 10的計劃數(shù)據(jù)

接口結(jié)果:{"data": [{"id": 123, "campaignName": "計劃-A", "ROI": 12.85},{"id": 456, "campaignName": "計劃-B", "ROI": 10.25}]}

這種情況,適合用一個表格去更直觀的呈現(xiàn)數(shù)據(jù),這就需要返回接口結(jié)果同時還要返回相關(guān)的組件數(shù)據(jù)。

5.前端將返回的內(nèi)容展示給用戶,如需要組件,動態(tài)加載組件的CDN地址,完成渲染。

?

工具調(diào)用的問題

廣告投放業(yè)務(wù)場景多,如果要給用戶提供完整或精細化的盯盤能力,勢必需要提供多種多樣的工具,那基于以上的工作流程,會有個問題:每次請求都把所有工具給模型,當(dāng)工具比較多時,可能會超出模型Token限制,其次,如果是收費的商業(yè)模型還會造成一定的費用的浪費。

?

對于該問題,我們參考了此前做RAG的思路,做法是將工具的基本描述和示例指令,分別存成向量,請求進來時候,使用向量先進行工具的召回,再進行拼接給到模型。

?

這樣能明顯減少給模型無效工具的輸入,節(jié)省了Token和費用,也可以有效減少模型的幻覺幾率。

?

?

3.5 能力的演變

將以上各種能力整合,最終能力演變?yōu)橄聢D。這一版底層我們采用了Langchain框架。

?

wKgZO2esd42AZYusAAfiTtzkMEQ149.png

?

3.6 京東廣告智能助手

基于以上的能力,構(gòu)建了京東廣告智能助手。包含了問題解答、數(shù)據(jù)查詢、物料創(chuàng)建、物料編輯等場景。

體驗地址:https://jzt.jd.com(需要商家賬號)

wKgZPGesd46AThMdAAimZPVR7hY822.png

?

在支撐廣告智能助手落地中,除了以上一些核心能力的構(gòu)建,也有很多細節(jié)的優(yōu)化,比如:

指令中日期的準(zhǔn)確性優(yōu)化

查數(shù)指令中常見的一些日期,如:今天、昨天、上個月、本月、近七天等,需要推理出正確的日期范圍,才能確保數(shù)據(jù)的準(zhǔn)確。

模型通常是有訓(xùn)練日期的,無法正確回答日期問題的,對于這個問題,解決的思路是,每次請求模型時,動態(tài)生成幾組日期的說明,讓模型能正確推理時間。

如:今天是2024-11-xx,近七天的日期范圍是2024-11-xx~2024-11-xx...

?

二、基于業(yè)務(wù)沉淀Agent搭建平臺

以上就是廣告智能助手業(yè)務(wù)從0到1的過程,可見一個大模型應(yīng)用真正應(yīng)用到生產(chǎn)環(huán)境中,是比較復(fù)雜且有非常大的工作量的,我們在思考,如果廣告內(nèi)有其他的業(yè)務(wù)場景,是否能實現(xiàn)一些能力的快速復(fù)用?

與此同時,隨著業(yè)務(wù)效果的優(yōu)化進入深水區(qū),我們需要通過對工作流程更精細化的編排來進行效果的優(yōu)化。

綜合以上考慮,我們決定將已有的能力增強并沉淀一個Agent搭建平臺,以下是整體架構(gòu)。

?

wKgZO2esd5CAaZO-AAQDPSXuCzQ478.png

?

基建:主要是公司的基建,提供一些基礎(chǔ)能力,如:向量庫、ES、OSS、Mysql、CDN等等

Agent設(shè)計器:主要是提供Agent可視化的設(shè)計能力,包括智能體、知識庫、工具庫、記憶庫、工作流等核心功能。

Agent引擎:主要是根據(jù)設(shè)計器產(chǎn)生的配置,動態(tài)運行工作流程,如:知識的召回、提示詞的加工、模型的推理、工具的調(diào)用、代碼的執(zhí)行等等。

端能力:主要是面向用戶的對話式組件,這里我們沉淀了一套AI組件庫,可快速組裝出兼容PC、H5的對話框。與此同時,針對內(nèi)部的京ME辦公場景,對外如微信中的場景,我們也通過API調(diào)用的方式進行了支持。

應(yīng)用場景:有這些能力,就可以輕松的利用平臺支撐起各種Agent應(yīng)用,包括我們的廣告智能助手。同時除了業(yè)務(wù)之外,還可以做內(nèi)部提效的Agent應(yīng)用。

?

1、Agent設(shè)計器

wKgZPGesd5GAS2SYAAyKtkvWEE8077.png

?

團隊空間為了方便協(xié)作和做業(yè)務(wù)隔離,團隊空間下,可以進行智能體的搭建、知識庫的管理、工具庫的管理、工作流的編排等等。

知識庫中,可以選擇不同的向量模型,方便做召回優(yōu)化的實驗。

工具中,可以設(shè)置模型感知信息、接口、參數(shù)、組件等。

wKgZPGesd5KAANGkAADVTBAsPG8504.png

?

wKgZO2esd5OAcoChAADHImGxrlo685.png

?

工作流中,可以隨意拖拽編排工作流程,比如:召回節(jié)點可以設(shè)置召回策略、召回數(shù)量、最低分值等;大模型節(jié)點可以設(shè)置System、User提示詞、歷史會話輪數(shù)等。

wKgZPGesd5OAIqBPAAGq3G9uUeM194.png

?

2、Agent引擎

Agent引擎負(fù)責(zé)和模型交互,是影響效果和性能的核心模塊。我們做了重點的設(shè)計和重構(gòu)。在設(shè)計階段,我們考慮的首要問題是:Langchain的取舍。

?

wKgZO2esd5aAa1EsABFFv-bYlhU844.png

?

相信做過大模型應(yīng)用開發(fā)的同學(xué),都聽說或者使用過Langchain。

Langchain框架提出了LCEL語法,將Prompt、LLM、Tool等概念進行了抽象并高度封裝,能快速上手并實現(xiàn)一些Demo,對新手比較友好。

然而,隨著業(yè)務(wù)的復(fù)雜度不斷增加,以及對模型的了解不斷深入,會發(fā)現(xiàn),Langchain的過度封裝,把很多簡單的事情變的更復(fù)雜了,明顯影響了業(yè)務(wù)自由度及開發(fā)效率,同時也帶來了一定的性能損耗。舉個例子:

工具調(diào)用中,模型接受的參數(shù)是一個JSON Schema,我們只要將工具參數(shù)存成一個json用的時候就會非常方便。

然而,如果使用Langchain,就需要先將json轉(zhuǎn)成一個pydantic類,再使用Tool類進行工具的注冊,在調(diào)用模型時,Langchain又會轉(zhuǎn)換成json。

本來一行代碼就可以搞定,使用Langchain后需要幾十行代碼才能實現(xiàn),并且?guī)砹艘欢ǖ男阅軗p耗。

?

最終,我們決定移除Langchain框架,直接用原生python實現(xiàn),僅保留個別用起來比較方便的工具,如:文檔切割。

?

整體上,設(shè)計了一套工作流調(diào)度器,并將所有節(jié)點實現(xiàn)了組件化。收到請求后會初始化一個工作流調(diào)度器,調(diào)度器根據(jù)時機來操作每個節(jié)點的執(zhí)行。工作流詳細實現(xiàn): Agent Workflow技術(shù)實現(xiàn)揭秘

?

3、端能力

wKgZPGesd5eABoQhAApguFWBNeg311.png

端能力主要是沉淀了一套AI組件,包括:內(nèi)容輸入、指令聯(lián)想、輸出卡片等組件??煽焖贅?gòu)建多端兼容的對話式應(yīng)用。

?

三、Agent平臺賦能研發(fā)提效

有了Agent搭建平臺,可以分鐘級搭建大模型應(yīng)用,同時,工作流的能力也大幅加速了策略迭代速度。在廣告智能助手業(yè)務(wù)中,也進行了多項策略的優(yōu)化并應(yīng)用在大促中,帶來了不錯的效果提升。同時,我們也基于Agent平臺做了一些研發(fā)提效的實踐。

?

1、客訴處理

前面提到,在京準(zhǔn)通中商家的部分問題接入人工客服后,客服側(cè)無法解答的問題會流轉(zhuǎn)給產(chǎn)運研來跟進。

?

wKgZO2esd5mAMACxAAmLJUIMN04779.png

客訴的處理時效會直接影響客戶滿意度,也會間接影響商家在投放廣告時各平臺間的預(yù)算分配,至關(guān)重要。因此,對于客訴的處理需要響應(yīng)及時、快速解決。

?

現(xiàn)狀:當(dāng)前,為了盡量提升處理時效,產(chǎn)運研和客服在一個約400人的咚咚群里,客服發(fā)出問題后,產(chǎn)運研團隊看是誰的問題,分別進行跟進。

?

痛點:所有人需要花較大精力聚焦于客訴群,只要有消息就要點進去看一眼,是不是自己的問題,要不要跟進。研發(fā)變相成了客服的客服,工作體驗較差,明顯影響工作效率。

?

理想的情況是人工客服收到客訴后,提工單給產(chǎn)運研,產(chǎn)運研進行流轉(zhuǎn)跟進。但是為什么會演變?yōu)楝F(xiàn)狀?

?

根本原因:提工單,對客服團隊會有一定的負(fù)擔(dān),首先,客服提工單,需要了解每個問題屬于哪類問題,每類問題應(yīng)該提給誰,加上客服團隊人員變更,新人來了,都要學(xué)習(xí)一套提工單的流程,還是有不小的成本的。其次,對于客服團隊來說,有時候溝通一個工單的提交過程就需要花一定的時間,會直接影響客訴處理時長。

?

目標(biāo):在不增加客服團隊負(fù)擔(dān)的情況下,提升產(chǎn)運研工作效率和工作體驗,同時提升客訴解決效率。

?

方案:

1、客服只需發(fā)送客訴內(nèi)容給客訴處理Agent,減少客服負(fù)擔(dān)。

2、Agent通過大模型分析,自動提交工單給相應(yīng)同學(xué),大幅提升工單流轉(zhuǎn)效率。

3、Agent通過對客訴分析,部分客訴實現(xiàn)自動化解決,提升解決效率,減少研發(fā)投入。

3.1 對于產(chǎn)品及運營問題能利用知識庫解答的問題,會直接發(fā)布工單評論,如解決,只需點擊完成即可。提升解決效率。

3.2 對于研發(fā)問題,會識別是否可以用自動化排查工具,可以的話執(zhí)行自動化排查并給出答案,發(fā)布工單評論,如解決,只需點擊完成即可。否則研發(fā)介入排查。

?

wKgZPGesd5qAH5_CAAKL5mUo6lo329.png

?

有了方案,我們借助Agent平臺能力搭建了客訴處理Agent,以下是主要的工作流程

?

wKgZO2esd5uAXJF5AATEw8-wLG8835.png

核心節(jié)點-客訴分析 核心節(jié)點-工單提交
wKgZPGesd5yAGjyIAAITyyJSpiM338.png wKgZO2esd52AAjJiAAIHJMDRbsA972.png

?

成果:通過搭建的客訴處理Agent,目前已經(jīng)可以實現(xiàn)根據(jù)客訴內(nèi)容自動化提交工單。自動化解決方面在逐步完善知識庫、排查工具的建設(shè),后續(xù)將帶來更明顯的收益。

?

?

2、Code Review

Code Review在業(yè)界已經(jīng)有了比較多的實踐,不過,如何把投產(chǎn)比做到符合預(yù)期,同時確保代碼的安全,是需要重點關(guān)注的。

?

考慮到資源成本,人工復(fù)審成本等因素,我們的目標(biāo)是:流程自動化、采納率優(yōu)先。

?

流程自動化

主要是借助Git的webHooks及接口實現(xiàn)全流程的自動化。

wKgZPGesd5-AWL-KAAtDFILPdxw002.png

大致流程如下:

1、CR Server提供一個通用接口,需要做CR自動化的項目注冊到webHooks中即可

2、當(dāng)發(fā)起merge的時候,會調(diào)用CR Server接口,CR Server收到請求后,調(diào)用Git接口獲取diff

3、處理diff,調(diào)用Agent接口,執(zhí)行Agent平臺搭建的工作流,進行CR

4、處理返回結(jié)果,調(diào)用Git評論接口,完成CR流程。

?

?

工作流搭建

工作流搭建的過程中,我們也進行了一些提示詞優(yōu)化的過程,通過在提示詞中增加few shot的方式,可明顯提升結(jié)果的可用率。

wKgZO2esd6GAKW7gABaDfwk6PBc423.png

?

其中,few shot的內(nèi)容是我們通過日常review積累的一些案例,這些案例包含了9種類型,共40+個,如果都輸入給模型,會帶來其他問題:1、提示詞內(nèi)容過長,模型容易產(chǎn)生幻覺。 2、內(nèi)容過長,可能會觸發(fā)輸入輸出限制。

?

針對這個問題,我們的思路是按照類型拆分,每個模型節(jié)點只負(fù)責(zé)一種錯誤類型的查找。

?

wKgZPGesd6KARnIhAAe7SRxPtPo136.png

?

通過以上的方式,可以最大限度的減少請求失敗的概率,同時由于讓模型做的事情更聚焦,能產(chǎn)出更有價值的結(jié)果。

?

?

四、未來展望

1、大模型推動行業(yè)壁壘逐步降低

大模型將推動更多的方法論實現(xiàn)產(chǎn)品化,通過產(chǎn)品化的形式,將極大提高生產(chǎn)力,降低行業(yè)門檻。

wKgZO2esd6OAWBITAAGgkrtBVrg446.png

比如,拿程序員這個行業(yè)來說,之前或者現(xiàn)在的門檻還是比較高的,未來,隨著代碼模型微調(diào)、無代碼設(shè)計等方法論的沉淀,可能會出現(xiàn)一種非常容易上手的產(chǎn)品,只需要導(dǎo)入代碼庫、設(shè)計文檔等內(nèi)容,就能開始通過對話式的方式完成功能的開發(fā)。極大降低了軟件開發(fā)的門檻,這樣,只要會使用AI的人就能輕松達到熟練級別。

同時,有了大模型的加持,可以讓部分人進入到精通或者專家的行列中。

?

wKgZPGesd6SAAKPTAAMXZicN9vc244.png

?

當(dāng)然,短時間內(nèi)大模型并不會替代程序員,但在實際工作中,善于使用大模型的同學(xué)在效率上已經(jīng)有明顯的提升表現(xiàn)。未來一定是更會利用AI的人,更具有先發(fā)優(yōu)勢。

同時,通過以上的思考,后續(xù)我們也會在Agent平臺中將更多的方法論進行沉淀。下一步,我們會嘗試如何將模型的微調(diào),形成產(chǎn)品化,讓更多非算法人員也能輕松的調(diào)教自己的模型,當(dāng)然這其中有很多的困難需要克服,總之,道阻且長,行則將至!

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    88

    文章

    35078

    瀏覽量

    279410
  • Agent
    +關(guān)注

    關(guān)注

    0

    文章

    132

    瀏覽量

    27807
  • 大模型
    +關(guān)注

    關(guān)注

    2

    文章

    3135

    瀏覽量

    4056
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    《AI Agent 應(yīng)用與項目實戰(zhàn)》第1-2章閱讀心得——理解Agent框架與Coze平臺的應(yīng)用

    學(xué)習(xí)了解,再總結(jié)概括將呈現(xiàn)出以下幾個特點: 認(rèn)知智能躍升:被動執(zhí)行主動思考,Agent將具備推理規(guī)劃、自主決策能力。它不再是簡單的工具,而是
    發(fā)表于 02-19 16:35

    《AI Agent應(yīng)用與項目實戰(zhàn)》閱讀體驗--跟著迪哥學(xué)Agent

    的知識是自由行,那么閱讀《Agent》就是跟團游。它讓我對AI落地應(yīng)用有了更系統(tǒng)和清晰的了解。 《Agent》第一章是全書的導(dǎo)引章節(jié),本章讓我對Agent的理解
    發(fā)表于 03-02 12:28

    《AI Agent 應(yīng)用與項目實戰(zhàn)》----- 學(xué)習(xí)如何開發(fā)視頻應(yīng)用

    再次感謝發(fā)燒友提供的閱讀體驗活動。本期跟隨《AI Agent 應(yīng)用與項目實戰(zhàn)》這本書學(xué)習(xí)如何構(gòu)建開發(fā)一個視頻應(yīng)用。AI Agent是一種智能應(yīng)用,能夠根據(jù)用戶需求和環(huán)境變化做出相應(yīng)響應(yīng)
    發(fā)表于 03-05 19:52

    《零基礎(chǔ)開發(fā)AI Agent——手把手教你用扣子做智能體》

    Agent開發(fā)的核心技能。即使沒有編程基礎(chǔ),也通過本書輕松上手,設(shè)計出屬于自己的智能體。無論是個人興趣還是企業(yè)應(yīng)用,這本書都能為我打開AI世界的大門,抓住AI技術(shù)的下一個風(fēng)口,實現(xiàn)從零
    發(fā)表于 03-18 12:03

    【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗】+初品Agent

    一本知識實踐的具有較高應(yīng)用價值的書。 封面圖 那這本書都向讀者介紹哪些內(nèi)容呢? 在入門篇,其涉及的內(nèi)容有: Agent的概念、發(fā)展、Agent與Prompt及copilot的區(qū)別
    發(fā)表于 04-22 11:51

    【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗】+Agent開發(fā)平臺

    Agent開發(fā)平臺是專門用于創(chuàng)建、配置、部署、訓(xùn)練和運行Agent平臺。 隨著Agent開發(fā)框架的發(fā)展,很多
    發(fā)表于 05-13 12:24

    【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗】+讀《零基礎(chǔ)開發(fā)AI Agent》掌握扣子平臺開發(fā)智能體方法

    收到發(fā)燒友網(wǎng)站寄來的《零基礎(chǔ)開發(fā)AI Agent》這本書已經(jīng)有好些天了,這段時間有幸拜讀了一下全書,掌握了一個開發(fā)智能體的方法。 該書充分零基礎(chǔ)入手,先闡述了Agent是什么,它的基
    發(fā)表于 05-14 19:51

    輕量級Agent平臺怎么測試?

    Agent系統(tǒng)是指由多個分布和并行工作的Agent通過協(xié)作完成某些任務(wù)或達到某些目標(biāo)的計算系統(tǒng)。嵌入式多智能體是把嵌入式系統(tǒng)與多Agent相結(jié)合的技術(shù),充分發(fā)揮了二者優(yōu)勢[1]。但是
    發(fā)表于 09-27 06:26

    智能制造-愿景實現(xiàn)路徑 精選資料分享

    “生產(chǎn)倉庫”的模式向“生產(chǎn)訂單”的轉(zhuǎn)變,互聯(lián)網(wǎng)云平臺公司會鼓勵“企業(yè)上云”。通信公司則大勢宣傳“以5G和物聯(lián)網(wǎng)技術(shù)為中心為智能制造
    發(fā)表于 07-19 07:56

    華秋助力OpenHarmony生態(tài)硬件開發(fā)落地

    面,分享了關(guān)于華秋助力OpenHarmony 生態(tài)硬件開發(fā)落地相關(guān)內(nèi)容。 在分享過程中,曾經(jīng)理表示,華秋正在做一件非常有意義的事情,就是中國硬件創(chuàng)新大賽,15年到現(xiàn)在,已經(jīng)是第八
    發(fā)表于 05-13 12:17

    【直播回顧】OpenHarmony知識六期第一課—OpenHarmony智能家居項目介紹

    計劃項目”舉辦的知識系列直播之一,在開發(fā)者中引發(fā)了高度關(guān)注。此系列直播已經(jīng)走過了5期,共28節(jié)課,23名技術(shù)大咖傾囊相授,開源實戰(zhàn)項目總結(jié)經(jīng)驗,利用真實場景的應(yīng)用案例分享前沿技術(shù)
    發(fā)表于 06-17 11:08

    英碼科技精彩亮相火爆的IOTE 2023,多面AIoT產(chǎn)業(yè)發(fā)展!

    。 在英碼科技展位上,現(xiàn)場的伙伴們集中了解到了基于多家國產(chǎn)主流平臺算力產(chǎn)品的特點和對應(yīng)的落地案例,同時深入了解英碼科技在項目落地過程中自
    發(fā)表于 09-25 10:03

    華為人工智能平臺智慧龍崗加速智能化升級進程

    基于華為打造的人工智能融合平臺,智慧龍崗加速城市智能化升級的進程。
    的頭像 發(fā)表于 04-08 10:43 ?5420次閱讀

    RK3568 數(shù)字廣告,推動智能化新時代

    RK3568 數(shù)字廣告,推動智能化新時代
    的頭像 發(fā)表于 08-05 14:42 ?657次閱讀
    RK3568 <b class='flag-5'>賦</b><b class='flag-5'>能</b>數(shù)字<b class='flag-5'>廣告</b>,推動<b class='flag-5'>智能化</b>新時代

    京粉智能推廣助手-LLM based Agent在聯(lián)盟廣告中的應(yīng)用與落地

    一、前言 擁有一個幫你躺著賺錢的助手,聽起來是不是有點心動?依托于京東聯(lián)盟廣告平臺,借助AIGC大語言模型出色的理解、推理、規(guī)劃能力,我們推出了京粉智能推廣
    的頭像 發(fā)表于 08-12 14:33 ?922次閱讀
    京粉<b class='flag-5'>智能</b>推廣<b class='flag-5'>助手</b>-LLM based <b class='flag-5'>Agent</b>在聯(lián)盟<b class='flag-5'>廣告</b>中的應(yīng)用與<b class='flag-5'>落地</b>

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品