跳至主要內容

里程碑

LINE AI 小精靈 - 系辦空間借用小幫手

Junn @cc37847722aaa發布於

一、製作背景與簡介
這次的專案任務,是使用 n8n 串接 LINE,做出一個可以實際互動的 AI 小工具。
平常我們在借用系上的「系辦空間」時,流程其實非常繁瑣:每次都要先去翻找 Google 表單的問卷連結,填表前還得另外打開密密麻麻的 Google 試算表,一行一行往下滑,人工確認自己想要的時段有沒有跟別人撞期、對方同不同意共用空間。如果臨時想取消,還沒辦法自己改。
剛好藉著這次的專案,我就決定動手做一個「系辦空間借用小幫手」,把原本要開好幾個網頁的麻煩事,全部濃縮進大家每天都在滑的 LINE 裡面!
主要功能是讓使用者可以直接在 LINE 上用自然語言查詢空檔、預約空間、取消預約,甚至讓 AI 自動記住自己的姓名與年級,實現「一句話秒約」的體驗~ 二、實作過程與挑戰
最一開始,我先跟著教學使用 n8n 串接 LINE Webhook、AI Agent 以及 Google Sheets 節點,快速把整個預約邏輯的原型(Prototype)搭建出來,並與 AI 來回討論如何設計系統指令(System Prompt)。
首先,為了讓 AI 能夠精準判斷「查詢、預約、取消」三種動作,我利用提示詞規範與 Code 節點的概念來檢查及處理 AI 的輸出,強制讓它回傳結構化的 JSON 格式,同時幫大家檢查時段是否衝突、人數與課堂節次是否合規。此外,我也加入了「個人資料綁定」的設計,只要報過一次姓名跟系級(例如:大三),系統就會自動記起來,以後只要說「幫我借明天 9.~10.」就能自動帶入個資! 不過在實作與測試的過程中,真的遇到了不少卡關的地方。
一開始在 n8n 測試跑通後,進到後期深度整合時,我發現如果單純用普通方式把資料塞進試算表,長相會跟大家從 Google 表單填出來的格式不一樣(像是時間戳記的「上午/下午」格式、表格的隔行底色與框線)。加上為了讓機器人能夠 24 小時穩定免費待命、支援直接刪除整行來「取消預約」,我在開發後期決定做一次架構升級——將前面在 n8n 驗證好的 AI Agent 邏輯與工作流,完整移植並封裝到 Google Apps Script (GAS) 雲端環境中執行!
轉移的過程也經歷了好幾次崩潰的 Debug:像是為了防止兩個人同時搶借同一時段而加上排隊鎖(LockService),結果不小心把 AI 思考時間也鎖進去,導致跳出日文的「鎖定逾時」錯誤;還有在尖峰時段遇到 Google API 503 伺服器大塞車,以及 Gemini 3.8 Flash 免費版一天只有 20 次額度(429 Quota Exceeded)瞬間被測試用光的窘境 QQ。
最後透過不斷跟 AI 來回討論,我設計了「模型自動降級階梯(Fallback)」機制——當高階的 Gemini 3.8 額度用完時,系統會自動無縫切換到每日有 500 次額度的 Gemini 3.1 Flash-Lite 繼續服務,並加上「查詢額度」功能與精準的儲存格格式繼承,才終於讓整個系統維持在最完美穩定的狀態! 三、完成後的成果與心得
目前「1028 空間借用小幫手」已經可以在 LINE 上實際運作了!不管是用自然語言查明天有沒有人借、一句話快速預約並自動帶入姓名年級,還是直接請它刪除預約,都能在幾秒鐘內搞定。而且寫進 Google 試算表的資料,跟手動填 Google 表單的紀錄 100% 一模一樣,完全看不出破綻! 這次專案讓我從一開始用 n8n 視覺化串接工作流、理解 Webhook 與 API 的運作邏輯,到後期為了克服實務上的限制,進一步把架構延伸轉移到 Google Apps Script 深度客製化。雖然中間一度改一個小地方就冒出新的 Bug,得一直重看執行紀錄跟調整程式碼,但看到自己從零打造的小工具真的能解決日常借教室的痛點,不用再每次翻表單翻到眼花,真的非常有成就感~

0 個愛心0 則留言

登入並驗證手機後就能留言。登入