? ? ? ? 繼上一篇文章,成功完成Dify本地部署后,主要做了一些workflow和Agent的應用實現,整體感覺dify在工作流可視化編排方面非常好,即使部分功能無法實現,也可以通過代碼執行模塊或者自定義工具來實現(后續再具體分享),agent方面也有提示詞引入、變量定義、知識庫引入和工具引入等,同時支持多輪對話,總體感覺workflow和agent結合著用非常方便,供大家參考。本次要是在游泳健身方面實現了用戶提出的有關游泳健身方面問題意圖識別、分類,包括有關游泳健身和健身app使用方面的咨詢,最終形成規范化問題反饋輸出,這里設計到如何構建知識庫,如何設計workflow、如何將工作流發布為工具,如何在agent中引入前面發布的工具,最終通過agent實現與用戶友好的問答交互。后續結合工作開發更多的基于workflow和agent的應用。
一、知識庫構建
這部分內容主要是準備兩個markdown文件,用戶構建兩個知識庫,分別為游泳健身知識庫和健身app知識庫,這里不細說了,直接用dify的知識庫構建功能即可,知識選擇embedding模型時盡量選擇成熟的維度大一點的模型即可,比如bge-m3或nomic-embed-text等。
二、根據用戶問題進行意圖識別和反饋
1.構建workflow流程:利用dify創建workflow應用,主要實現從用戶輸入問題到最終回復問題的反饋,將該任務進行步驟分解,主要包括用戶問題輸入接收、用戶意圖識別、用戶問題分類、分類知識檢索、結合知識庫檢索結果的問題回復、回復結果合并,回復結果規范化輸出等。詳見下圖。
2.將上述workflow流程發布為工具:利用dify的發布功能,將問題發布為工具,工具名稱和工具調用名稱最好用英文及下劃線(這里的名稱為swim_assistantTool),工具描述可以是中文。發布完成后,在agent的工具模塊就可以查看到最新發布的工具了。
3.構建用戶問題對話Agent:利用dify構建Agent應用,詳見下圖,記得將第2步的工具引入,如果覺得回答不合適,也可以將前面構建的兩個知識庫也引入。
三、應用測試效果
1.直接使用workflow,優點是直接查看問題的返回結果,缺點是只能做一次回復,多次回復需要新的對話。詳見下圖。
2.使用agent進行多輪對話,詳見下圖。