超級干貨:0基礎(chǔ)也可以學(xué)會的AI agent搭建!你的第一個(gè)bot教程
自從大模型開啟智能化之后,各大廠家都開始做自己的AI Agent,畢竟這好像是一個(gè)比較不錯(cuò)的應(yīng)用方向和變現(xiàn)模式。這篇文章,我們就來和組綜合學(xué)習(xí)一下,如何從0到1打造一款自己的bot。
本節(jié)開始,我們創(chuàng)建一個(gè)實(shí)戰(zhàn)案例:圖書管理工作流。
溫馨提示:本文內(nèi)容很多,涉及貫穿了搭建扣子應(yīng)用的很多知識。如果學(xué)懂本文,你可以完全掌握了扣子搭建的原理,話不多說,上干貨。??
一、流程分析設(shè)計(jì)
圖書管理工作流的作用是:通過判斷圖書管理員的自然語言指令的意圖,來執(zhí)行對應(yīng)的操作。
例如:分析管理員指令,其目的是向數(shù)據(jù)庫增加一本書、或是刪除一本書,還是檢索當(dāng)前數(shù)據(jù)庫中所有的圖書。
我們期望的效果是:當(dāng)圖書管理員輸入類似“請幫我查詢有哪些書籍”的時(shí)候,工作流就返回當(dāng)前數(shù)據(jù)庫所有的圖書。
當(dāng)輸入類似“向數(shù)據(jù)庫錄入XXX(書名)”的時(shí)候,就向數(shù)據(jù)庫添加一本書。當(dāng)輸入刪除指令的時(shí)候,就刪除一本書。
通過分析,得出結(jié)論
- 如果要分析用戶的意圖,我們需要有一個(gè)理解用戶語義的功能節(jié)點(diǎn),這時(shí)候就需要我們的 大模型節(jié)點(diǎn) 出場了。(工作流中使用的節(jié)點(diǎn)在教程中也都有詳細(xì)示例+講解)
- 判斷完管理員意圖后,我們具體要執(zhí)行哪個(gè)操作,是查詢、添加,還是刪除,這里有一個(gè)選擇判斷的過程,那當(dāng)然得用 選擇器節(jié)點(diǎn) 去做這個(gè)工作。
- 因?yàn)槲覀冃枰脭?shù)據(jù)庫來存儲書籍列表,數(shù)據(jù)庫節(jié)點(diǎn) 肯定是必不可少的了。
經(jīng)過分析,我們需要用到三個(gè)類型的節(jié)點(diǎn): 大模型節(jié)點(diǎn) 、選擇器節(jié)點(diǎn)、選擇器節(jié)點(diǎn)。
接下來我們就來使用這些節(jié)點(diǎn)來正式開始創(chuàng)建。
二、創(chuàng)建Bot
1. 初始化Bot
通過之前課程的學(xué)習(xí),我們知道,如果要在工作流中使用數(shù)據(jù)庫節(jié)點(diǎn),一定要先在Bot中創(chuàng)建一個(gè)對應(yīng)的數(shù)據(jù)庫。
所以首先,我們要創(chuàng)建一個(gè)Bot,然后在Bot中建立一個(gè)數(shù)據(jù)庫。
2. 創(chuàng)建數(shù)據(jù)表
點(diǎn)擊 + 按鈕,創(chuàng)建一個(gè)數(shù)據(jù)表。
3. 自定義數(shù)據(jù)表
4. 添加字段
到此步驟,數(shù)據(jù)表就創(chuàng)建完成了,接下來開始創(chuàng)建工作流。
三、創(chuàng)建工作流
1. 初始化工作流
創(chuàng)建完Bot之后,我們來進(jìn)入工作流管理頁面,創(chuàng)建工作流。
點(diǎn)擊 創(chuàng)建工作流 按鈕。
2. 填寫工作流信息
3. 確定工作流所用節(jié)點(diǎn)
這里很關(guān)鍵:我們先把需要用到的節(jié)點(diǎn)先加到視圖里,然后再分別對節(jié)點(diǎn)進(jìn)行具體的設(shè)置。
從上文得知,需要用到:大模型節(jié)點(diǎn) 、選擇器節(jié)點(diǎn)、選擇器節(jié)點(diǎn)。
為了方便接下來大家的操作,做到心中有數(shù),我們先把搭建好的結(jié)構(gòu)到放這里,讓大家對結(jié)構(gòu)有一個(gè)大體的了解,這樣之后搭建起來會更容易操作。
現(xiàn)在正式開始向工作流中加入節(jié)點(diǎn)。
4. 添加大模型節(jié)點(diǎn)
大模型節(jié)點(diǎn)主要有兩個(gè)作用:
- 一個(gè)是分析用戶語義,判斷用戶是希望添加、刪除還是查詢書籍。
- 另一個(gè)作用是提取出書籍名稱。
例如當(dāng)圖書管理員給的指令是:“添加一本《三國演義》”,那這時(shí)候大模型需要提取兩個(gè)關(guān)鍵信息。一個(gè)是 添加,一個(gè)是《三國演義》的書籍名稱。
那么接下來我們先添加兩個(gè)大模型節(jié)點(diǎn),分別用來返回 圖書名稱 和 操作類型。(正常情況下,一個(gè)大模型節(jié)點(diǎn)也是可以搞定的,返回一個(gè)數(shù)據(jù)對象即可,這里大家知道就可以了。為了更直觀的演示流程,這里還是用兩個(gè)大模型節(jié)點(diǎn)來演示。)
節(jié)點(diǎn)結(jié)構(gòu)如下:
第一個(gè)是提取書名的大模型節(jié)點(diǎn),它的前置節(jié)點(diǎn)是 開始節(jié)點(diǎn),直接引用開始節(jié)點(diǎn)中query參數(shù),用來獲取用戶的自然語言指令。
因?yàn)橐崛?,所以提示詞這里我們直接寫:提取query中的書名 即可。這里注意,query對應(yīng)的就是輸入?yún)?shù)名。
詳細(xì)配置:
第二個(gè)大模型節(jié)點(diǎn)用來分析用戶意圖,所以輸入?yún)?shù)這里還是獲取用戶的query。
如果用戶的意圖和添加有關(guān):則返回1 ;
如果和刪除有關(guān),則返回2;
否則返回3。
所以提示詞可以這樣寫
詳細(xì)配置:
最后輸出一個(gè)type變量,值為1,2或3。
5. 添加選擇器節(jié)點(diǎn)
選擇器節(jié)點(diǎn)的前置節(jié)點(diǎn)是 大模型-操作類型 節(jié)點(diǎn)。選擇器節(jié)點(diǎn)通過獲取type的值來判斷具體執(zhí)行哪個(gè)操作。
這里注意要用到兩個(gè)選擇器節(jié)點(diǎn)才能做到type的3個(gè)值的判斷,因?yàn)橐粋€(gè)選擇器節(jié)點(diǎn)只能判斷是和否,所以我們要再借助一個(gè)選擇器節(jié)點(diǎn)。
整體結(jié)構(gòu)如下:
選擇器-1 配置:
選擇器-2配置:
6. 添加數(shù)據(jù)庫節(jié)點(diǎn)
如之前的教程所講,數(shù)據(jù)庫節(jié)點(diǎn)是用來操作數(shù)據(jù)庫的。
通過之前type的三個(gè)值,我們知道,對數(shù)據(jù)庫要有三個(gè)操作:查詢,添加和刪除。
所以我們要添加三個(gè)數(shù)據(jù)庫節(jié)點(diǎn),分別用來查詢,添加和刪除。
對數(shù)據(jù)庫的設(shè)置我們之前也講過,如果想學(xué)習(xí),關(guān)注即可獲取免費(fèi)教程學(xué)習(xí)。
設(shè)置數(shù)據(jù)庫添加節(jié)點(diǎn)參數(shù):
使用自動生成SQL功能生成
使用SQL后,我們還需要修改一下SQL的變量,要把‘新添加的書換成’輸入?yún)?shù)名
替換后正確的配置是這樣的:
同樣的方法修改 數(shù)據(jù)庫刪除節(jié)點(diǎn) 參數(shù)配置。
同樣的方法修改 數(shù)據(jù)庫查詢節(jié)點(diǎn) 參數(shù)配置,注意圖中所示,兩個(gè)查詢的name字段要對應(yīng)。
7. 結(jié)束節(jié)點(diǎn)設(shè)置
結(jié)束節(jié)點(diǎn) 的前置節(jié)點(diǎn)是 數(shù)據(jù)庫查詢節(jié)點(diǎn)。我們最后希望的是:不管用戶的意思圖是查詢,添加還是刪除,最后我們都把當(dāng)前數(shù)據(jù)庫中的所有圖書檢索出來。
所以結(jié)束節(jié)點(diǎn)輸出變量這里,要引用前置節(jié)點(diǎn)中outputList這個(gè)變量,這個(gè)變量一個(gè)是數(shù)組對象,簡單說就是一個(gè)圖片列表。
到這里為止,我們就把所有的節(jié)點(diǎn)都設(shè)置完成了,接來我們來調(diào)試一下,看看是否符合我們的預(yù)期要求。
8. 調(diào)試工作流
1)測試添加一本書
在工作流中點(diǎn)擊試運(yùn)行,輸入:增加一本三國演義。然后選擇我們之前創(chuàng)建好的Bot:圖書管理助手。點(diǎn)擊 運(yùn)行 按鈕。
可以看到,是按照預(yù)期走的 添加 的流程:
最終結(jié)果,可以看到《三國演義》被加到數(shù)據(jù)庫中了。
再增加一本《圍城》
查看結(jié)果:
可以看到《圍城》已經(jīng)被成功添加了,并顯示了當(dāng)前圖片列表。
2)測試刪除一本書
我們把之前的添加的《三國演義》刪除。點(diǎn)擊 運(yùn)行 按鈕。
可以看到,按照預(yù)期,《三國演義》被刪除了,并顯示了當(dāng)前圖片列表,只有一本之前添加《三國演義》,結(jié)果沒有問題。
那么,到此為止,我們的圖書管理工作流就調(diào)試完成了。接下來,我們把這個(gè)工作流引入到Bot中。??
四、發(fā)布工作流
在使用工作流之前,我要發(fā)布一下。
五、引入工作流
接下來把工作流引入到Bot中進(jìn)行使用
找到我們已經(jīng)創(chuàng)建好的圖書管理助手Bot。
點(diǎn)擊 + 引入工作流
選擇 WorkFlow_Books 工作流
編排 人設(shè)與回復(fù)邏輯
六、調(diào)試BOT
添加一本書:
提示圖書已經(jīng)成功被添加了。
那么接下來測試一下,圖書是否確實(shí)加入成功了。
可以看到,《三國演義》圖書確實(shí)成功加放到了數(shù)據(jù)庫中,說明我們的工作流正確無誤。
七、發(fā)布BOT
調(diào)試好以后,我們接下來就可以把BOT出布出去,讓大家來使用了。
自動生成開場白,點(diǎn)擊 確認(rèn) 按鈕。
選擇一下想發(fā)布的平臺,我這里選擇的是發(fā)布到扣子商店,然后點(diǎn)擊 發(fā)布 按鈕。
提示審核中,然后點(diǎn)擊 完成 按鈕,一分鐘左右就審核完成了。
好了,到這里,我們終于把Bot和工作流的全部流程學(xué)習(xí)完了,希望大家在本文中能有所收獲。??
本文由 @jyc 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)
- 目前還沒評論,等你發(fā)揮!