使用 Dify 以No Code方式建立記帳機器人
LLM改變了軟體開發的一切 每每碰到一套新的工具或技術,我都會想把過去熟悉的例子重新實作一次,一方面有助於了解新技術的瓶頸或極限,另一方面也可以實際體驗新工具所能帶來的改變與節省的時間。針對LLM和Dify的出現,我當然也這麼做了。 過去,我們曾經出版過一本『LINE Bot與人工智慧辨識開發實戰』的書籍,內容在闡述使用LINE官方帳號和微軟的AI技術(cognitive services)進行 對談/客服 機器人的建立。當然,那是在還沒有LLM的時代。 如今LLM的出現,改變了開發對談機器人的一切。 過去書中有一個例子,我一直想拿LLM重新做一次,就是 記帳機器人 。 而且這一次,我不想再寫任何程式碼了。 記帳機器人 記帳是獲得財富自由的首要關鍵(不知道曾看到哪本書上這樣說的,但我愈來愈覺得那本書裡面的內容有一半是安慰人的,不過我們暫且擱置爭議)。關於記帳這件事情,如果能有一個隨身帳本,可以幫你記錄每一筆消費,應該是一個好的開始。 有很多app有這樣的功能,但大多數App都是透過表單輸入的方式,讓你自己輸入每一個欄位,而我希望做的這個對談機器人,要能夠直接透過自然語言輸入,就能完成記帳。例如: 剛才在加油站把油加滿,花了1200元 午餐吃了7-11的雞腿便當,130塊 用戶直接用自然語言輸入類似上面這樣的句子,記帳機器人就能夠幫我們將這些消費紀錄寫入資料庫。that’s it。 使用 Dify 開發與測試 如今,在有LLM和Dify工具的狀況下,要實現這個需求變的很容易,我們先整理一下需求,並且整理一下初步的思路。 當用戶輸入一句話,我們就丟給LLM去判斷(注意,是判斷),如果用戶在這一句話中已經包含我們所需要的所有資訊(參考底下): 金額(Amount) 商店名稱(Store) 消費項目(Item) 時間日期(DateTime) 備註(Memo) 我們就把上述消費資料轉成 JSON,然後呼叫一個 Rest API 把這消費紀錄存入資料庫。如果用戶只說了一部份,還有缺少的資料,例如: 剛才花了150元 這句話缺了消費項目與商店名稱等資訊,那我們就讓LLM持續追問,直到蒐集完所有資訊為止。 上述邏輯很簡單,而我們用Dify進行開發,過程更簡單,整個流程設計大概像是底下這樣,幾乎不用寫什麼程式碼: 上圖中的重要