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