里程碑
尚未調教完成的選擇困難小精靈,拯救選擇障礙的我自己
ㄌㄏ @sirius_acma發布於 已編輯
身為一個完美主義 + ADD + 選擇障礙的人類,每天都在面對各種選擇。
連這一項作業題目的選擇我也是挑挑揀揀在截止日當天才決定的 ~(>_<。)\
從小大到都一直不知道如何作取捨,這樣長大的我一直很希望自己可以學會怎麼好好的做決定,並認可自己的決定。
於是這隻可愛的小精靈就誕生啦
一、為什麼會選擇做一隻選擇困難小精靈呢?
其實在他誕生之前,我做了另一個關於「warframe」這款遊戲的專案,奈何我學不乖,之前就知道他無論是官方還是玩家產物都是史山代碼,想當然這次又双叒撞大霧了。
於是我開始重新思考我要選什麼主題來做新的專案,大概思考了不下20個想法。在跟 AI 溝通的過程中,他說了一句話:『不要選「AI 可以幫我做什麼」,要選「世界發生變化時,我希望系統自動幫我完成什麼」』,這讓我想到每次我覺得世界快要崩塌的時候,通常就是做不出決定死線又快到的時候。
二、他有什麼功能呢?
首先,他不是單純的聊天機器人(雖然你要跟他聊天也是可以 awa),而是一個「會幫你記住選項,並強迫你面對現實的傢伙」。
主要核心是由四條線路組成的:
- 全新決策 :記錄新的煩惱到 Notion。
- 持續討論:陪你討價還價,甚至幫你排時間。
- 回報結果:任務結案,幫你在 Notion 打勾。
- 修改設定 / 閒聊:可以隨時切換暱稱和公開狀態,不會干擾原本的任務。
先來看看他的全貌吧!
三、第一個閘門:身份驗證
這個閘門主要是用來分辨使用者的身份狀態,運作的邏輯如下:
1. 當使用者透過 LINE 傳送訊息時,系統會先查詢 n8n Data Table 中的使用者資料,並透過 Switch 節點判斷目前使用者所處的狀態,分為以下三種情況:
A. 新的用戶:
當系統查詢不到使用者的註冊資料時,會把他當成新使用者,登記的部分我是使用 n8n 內建的 DB 去處理(雖然有串 Notion,但是剛開始打算把公開資料跟個人資料分開放,於是整個專案最終有三個 DB (⊙_⊙;)),系統會先保留該使用者的 LINE User ID,接著透過 LINE 詢問使用者希望使用的暱稱,等使用者完成註冊。
B. 等待暱稱:
當使用者已進入註冊流程,但還沒提供暱稱時,訊息會被導向這個分支。系統會接收使用者輸入的暱稱,並將暱稱與先前保留的 LINE User ID 建立對應關係,儲存至 n8n Data Table,完成使用者註冊。
透過這項設計,系統能夠在後續對話中辨識使用者,避免每次收到訊息時都要求重新註冊。
C. 已註冊用戶:
完成註冊後,使用者後續的訊息便會進入主要對話流程。在正式判斷訊息意圖之前,系統會先取得 Notion 中相關的既有紀錄,並透過 Aggregate 節點彙整資料,再交由 AI 分析訊息的意圖。
這個階段的目的是讓系統能有上下文記憶,也能把當前對話內容跟已經建立的項目搭在一起,進而決定接下來應執行的處理流程。
2. 完成前置資料彙整後,系統會透過 AI 判斷使用者目前的訊息想要幹嘛,再將判斷結果交給第二個 Switch 節點,依照訊息的類型放行。
本專案將訊息處理分為四種情況:
- 全新決策: 使用者提出尚未建立紀錄的新問題,需要 AI 協助分析並提供建議。
- 持續討論: 使用者針對先前提出的問題繼續討論、比較選項或調整想法,需要參考既有對話紀錄。
- 回報結果: 使用者準備結束某項決策的討論,系統需要整理最終結果並更新原有紀錄。
- 其他訊息: 包含一般聊天及設定相關操作,會依照訊息類型進入對應分支。
透過這項設計,系統可以區分「開始一個新問題」與「延續先前的決策」,避免每次收到新訊息時都重新建立決策紀錄,也讓同一項決策能夠在多次對話中持續更新。
四、 第二個閘門:決策狀態辨識
- 新決策:建立問題與提供建議
當 AI 判斷使用者提出新的問題時,系統會將相關訊息交由 AI 生成回覆,再透過 LINE 傳送給使用者,並將這次決策的相關內容紀錄至 Notion 資料庫。
這條流程的重點在於建立新的決策紀錄,使後續的討論與結果更新能夠有對應的資料可供查詢。
- 持續討論:延續既有決策
當使用者仍在考慮選項,尚未做出最終決定時,系統會先從 Notion 取得既有的決策紀錄,再透過 Aggregate 節點彙整相關資料,提供後續處理流程使用。
接著,系統會將相關內容交由 LINE 回覆流程傳送給使用者,並更新 Notion 中原有頁面的內文,保留此次討論的進展。
由於這項功能需要直接修改 Notion 頁面的內文,本專案使用 HTTP Request 節點串接 Notion API,以 JSON 格式執行更新,而非完全依賴 n8n 原生的 Notion 節點。
透過持續更新同一筆紀錄,系統可以保留決策討論的脈絡,而不只是將每次訊息當成互不相關的問題。
下圖是 Notion 的對話紀錄樣式
- 決策結案:整理最終結果
當使用者決定結束某項決策的討論時,系統會先取得該決策的既有紀錄,再將相關內容交由 AI 產生回覆。
接著,系統會更新 Notion 頁面的內文與決策狀態,整理本次決策的最終結果,並透過 LINE 回覆使用者。
此外,結案流程也預留了後續回饋機制:系統在回覆使用者時會觸發 n8n 表單,預計用來收集使用者執行決定後的感受與實際結果,作為未來個人化建議及公開決策紀錄的資料來源。
目前表單回饋與後續個人化分析尚未完成,因此現階段主要實作的是決策討論、紀錄更新與狀態管理。
五、AI 模型與資料處理方式
下圖是我的 AI 節點,幾乎每一組都長這樣,右下角那顆 Structured Output Parser 是可以讓他更聰明的賽博腦子
本專案的 AI 節點統一採用 n8n 的 Basic LLM Chain,並使用透過 Groq 提供的 openai/gpt-oss-20b 模型。
AI 在整體流程中主要負責兩項工作:
- 訊息意圖判斷: 根據使用者訊息及相關對話紀錄,判斷目前屬於新決策、持續討論、決策結案或其他訊息。
- 自然語言回覆生成: 根據目前的決策情境與相關資料,產生適合回傳給使用者的內容。
另一方面,使用者身分查詢、流程分流、Notion 資料讀取及更新等工作,則由 n8n 的一般節點與條件判斷負責。
這種分工讓 AI 專注於語意理解與文字生成,而資料查詢與流程控制則交由明確的自動化邏輯處理,降低整個系統對 AI 自行判斷執行流程的依賴。
六、其他訊息與後續擴充功能
除了決策相關的訊息外,系統也預留了其他訊息的處理分支。
- 一般聊天
當訊息不屬於新的決策、持續討論或決策結案時,系統會將其導向一般聊天分支,處理非決策類型的對話,讓使用者不必每次都以正式的決策問題格式與機器人互動。
- 設定與個人化功能
本專案也規劃了設定功能,預計讓使用者管理相關參數,並作為後續公開紀錄與個人化建議的基礎。
未來可進一步讓系統根據使用者過往的決策紀錄與回饋,找出與當前問題相關的經驗,協助 AI 提供更符合個人需求的建議。同時,也可讓使用者決定哪些紀錄可以公開,並將經授權的內容同步至 Notion。
目前設定功能仍停留在參數規劃階段,相關的實際執行節點尚未完成,因此尚不具備完整的設定操作與個人化分析能力。
七、整體設計總結
「選擇困難小精靈」的核心並不是單純使用 AI 回答問題,而是透過使用者辨識、訊息意圖判斷、決策狀態管理與外部資料庫整合,建立一個能夠持續追蹤決策過程的對話系統。
透過 n8n 的條件分流與自動化流程,系統可以區分不同階段的決策需求;透過 AI 理解自然語言與生成回覆,使用者可以用自然對話的方式進行決策討論;透過 Notion 紀錄與更新機制,系統則能保留決策的發展過程,為未來的結果回饋、個人化建議及公開紀錄功能奠定基礎。
最後這邊給你們看一下我剛剛的小掙扎,我是真的有去使用他喔!
八、除不盡的蟲蟲
在這個過程中,我也是遇到了非常多的問題,即使我不算是個 n8n 新手。
- AI 不聽話:真的是不孤單,AI 原地轉圈圈應該是所有人都有撞過的南牆,調整的過程真的需要超級多的耐心以及轉不停的腦子,同時還要面對 token 不足的問題,解決方法並不難,但真的算是最折磨的部分
- Notion & LINE 原生節點不給力:眾所皆知,LINE 是沒有官方節點的,所以完全只能手搓;Notion 關於 DB 內文更新的部分也不完整,所以我也花了點時間研究,才讓它可以看起來漂漂亮亮(其實如果用基礎一點的 MD 語法是可以只用原生節點,但我看不下去)
- 決策紀錄對不上:剛剛前面說 AI 不聽話是最折磨的,那這個紀錄對不上就是最難處理的,因為構造做得很醜,所以資料的流動也是很匪夷所思,時常會遇到第一筆跑出來是正確的,但後面紀錄一多就蟲蟲危機。最終的解決方法其實也是毅力加上腦子,但因為我使用的輔助 AI 沒有辦法很清楚的確定我的每一步是怎麼接得,所以很多時候真的是一個一個慢慢核對慢慢抓蟲
- 測試地獄:測試就是一個體力活,加上 LINE 對於回應的要求很高,回應時間不能拖太久、不吃 MD 語法、格式跟別的會話軟體比起來相較麻煩一點,總之,都是 LINE 的錯(?)
九、關於我怎麼做得完......
老實說,我也不知道ㄏㄏ,轉頭看了一眼我的紀錄軟體,局然有整整九個小時,也算是盡力了(盡力個頭,誰叫你拖拖拉拉)。
好啦認真說,因為我過去已經有玩過 n8n,並且透過 n8n 專案申請入學到了我現在的學校(沒有人說全是 n8n 的原因,但我覺得很大一部分是),並且我對於感興趣的 idea 總是可以研究到廢寢忘食,再加上開頭提到的完美主義,我想要做我就一定做得到!
雖然說另外的 ADD 以及 選擇困難真的給了我很大很大的阻礙,但是換個方向思考,要不是有他們倆,也不會有這個如此膨脹的專案出世(這真的是好事嗎 OWO),最後也向期待著體驗的夥伴們說聲抱歉,我真的不允許我的小精靈以目前這個衣衫不整的狀態出去裸奔......
1 個愛心0 則留言
登入並驗證手機後就能留言。登入