使用 Dify 建立企業請假機器人

八卦與未來

上個月,前Google執行長Eric Schmidt在史丹福有場演講,媒體關注的是八卦消息(如果你也曾關注,網路上有很多鐵定可以找到),但我注意到的則是他提到了自己認為接下來 AI(特別是大語言模型) 可能的發展方向,包含:

  1. Large Context Window
  2. AI Agent
  3. Text-to-Action

底下這邊有這一個段落的影片:
https://www.youtube.com/watch?v=zl3k1ksFZdY

為何我會關注這部分? 因為上述的三個方向,也是身為開發人員的我,過去這一年,來與LLM打交道後的感想。昨天,我在 twMVC 的研討會分享中,展示了一個其實我過去早做過了N百次的範例,就是企業的請假機器人。(唯一不同的是,這次我幾乎沒有寫任何程式碼)

場景是,員工在家裡生病了,想要透過語音或是app進行請假,你可以看底下這個運行的範例 (git圖檔會循環播放,開始是 『我好像感冒了』):

用自然語言對談的方式,即可完成請假。

我說過,類似這樣的範例我做過很多次,用 LINE Bot 搭配 C# 做過,用MS Bot Framework 做過,前陣子也用 Semantic Kernel 框架做過,更早期,還沒有AI的時代,我也在EIP和HR系統裡做過。

但我想說的是,這就是 Text-to-Action 的呈現,也是一個典型的 AI Agent 的例子,它讓我們透過自然語言(可以是語音或文字),直接命令機器人(Chat Bot、AI 助理、Agent、Assistant …不管你叫它什麼…)幫你完成一件事情(請假、售票、查詢資料、做財務報表、統計圖表、寫程式…etc.)。

這是一直以來人類對電腦最底層的需求與期待。

隨著 LLM 能夠處理和記憶的 Context 愈來愈被放大,AI Agent 所能夠處理的任務就更加的不受限制。

自然語言才是最符合人類直覺的操作

順帶一提,我昨天在研討會中講了一個故事。

有天,你覺得自己需要聘請一位助理,因此上網張貼徵人啟事,沒多久,你找到了一位號稱上知天文、下知地理的高材生,來幫助你更有效率的完成工作。

他什麼都好,唯一的一個小缺點是,你不能直接對這個助理下達指令,你必須用一種只有這個助理看得懂的語法,才能要求這個助理幫你完成特定的工作。這些語法還挺特別,複雜一點的得要請另一個專人來撰寫…

這是什麼? 這不就是我們現在和電腦互動的方式?
電腦很強大,但我們不能直接使喚它,我們得透過鍵盤、滑鼠、得透過其他人寫好的程式(操作介面),才能夠使用它強大的運算能力。

為什麼? 為何我們不能以最直覺的溝通方式–自然語言,來命令電腦幫我們做事? 原因很簡單,因為電腦聽不懂。

但…(別忘了)這是過去。

如果某天,電腦開始可以聽懂我們說的話了呢? 那我還需要那些操作介面嗎? 還需要滑鼠、鍵盤嗎? 可能不用,因為我直接就可以用人類最直接的溝通方式 – 『口語表達』,來命令電腦幫我做事情。

這就是 text to action,這就是 AI Agent,這就是(應該不遠的)未來。

如何設計

先前說到,剛提到的那個請假機器人,其實就是某種 text to action、某種 AI Agent 的實踐。而如今,我透過 Dify,搭配大語言模型(LLM),可以在十幾、二十分鐘之內,就把這個 AI Agent 設計完成。

剛才展示過的這個請假機器人,設計上其實也只有底下這幾個關卡:
圖片

先取得今天日期,然後透過 LLM Action 來處理對談,其中的 system prompt 大致如下:
圖片

你會發現提示詞當中,我們要求 LLM 專注在協助用戶請假,並且持續對談直到蒐集完所有請假所需的資訊,如果蒐集齊全,則輸出 JSON 格式的假單,因此這個 AI Agent 的流程設計如下:
圖片
如果蒐集完請假資訊,判斷了 LLM 的輸出是 JSON後,我們就可以呼叫 WebAPI,實際完成請假動作(Action):
圖片

如此這般,不需要寫程式,只需要透過流程設計,一個 text to action 的請假 AI Agent 就完成了。接下來,你只需要將這個 workflow 串接到 LINE Bot 或 Teams,整個 AI Agent 就大功告成(而這一部分我們上次已經介紹過了)。

結語

如今,軟體開發不僅僅開發流程、開發方法,已經有所改變,未來連開發的 “內容” 可能都將因著AI而有所改變。

身為資訊人,技術的更迭和變化早已經是不得不習慣的常態,然而,不變的是,每回到社群分享,都有回家的感覺,還是喜歡開發人員那種充滿技術熱情的氛圍。

再次謝謝主辦單位的安排以及當天冒著大雨到場參加的每一位夥伴。👍


參考 課程:
ChatGPT(Azure OpenAI) 對談機器人開發實戰

留言

這個網誌中的熱門文章

使用LM Studio輕鬆在本地端以API呼叫大語言模型(LLM)

VS Code的字體大小

使用C#開發LineBot(3) - 使用LineBotSDK發送Line訊息

使用Qdrant向量資料庫實作語意相似度比對