跳至主要內容

里程碑

打造「開心的焗烤飯」: 智慧飲食熱量小幫手

豆花 @_ph2.5_發布於

💡 系統核心功能與亮點

  • 告別手動輸入,飲食焦慮終結者

平常總在擔心「今天是不是吃太多了?」、「是不是該去操場跑幾圈?」。現在只要隨手傳訊息:「剛剛吃了丸龜的豚骨烏龍麵中碗,價錢是 149」或「剛剛在外面散步 30 分鐘」,AI 就會自動語意理解,精準估算卡路里吸收與運動消耗。

  • 建立短期記憶(Simple Memory)

捨棄傳統單次問答的死板架構,採用 AI Agent + Memory 設計。它能記住你上文講過的對話與飲食累積,當你下午嘴饞問「我現在想吃顆泡芙可以嗎?」時,它會結合前一餐的熱量給予貼心的飲食建議,不用每次都從頭報備!

  • 極簡流暢的自動化架構

透過 n8n 建立直線流程:Webhook ➔ AI Agent (OpenAI + Memory) ➔ HTTP Request (LINE API),反應迅速且穩定,讓健康紀錄完全融入日常聊天習慣中。
---

🚧 開發過程中的卡點與除錯

探索串接的這幾個小時裡,我懷疑人生好幾次(?):

1. 消失的 replyToken 與 Webhook 問題
  • 痛點:

照著教學做,卻在 n8n 裡翻箱倒櫃找了一個小時都找不到關鍵的 replyToken,甚至氣到把流程全部刪光。後來才發現,單純按 LINE Developers 的「Verify」按鈕只會送出空的驗證事件,根本不會產生回覆權杖。
解法:
搞懂 Webhook 監聽機制。必須在 n8n 點擊 Listen for test event 進入等待狀態,接著手動拿真實手機對 LINE 官方帳號傳送真實訊息****。資料進來後,一路往深層展開:body ➔ events ➔ [0] ➔ replyToken,終於成功撈出隱藏在陣列最底層的通訊金鑰!

2. JSON 格式破裂與換行符號問題(not valid JSON)
  • 痛點:

在 HTTP Request 節點設定傳送 Body 時,右下角頻頻跳出紅色的 The value in the "JSON Body" field is not valid JSON。原因除了最初變數拖曳貼錯欄位外,更致命的是:AI 生成的回答往往帶有換行符號(\n)與引號,一旦直接用一般的字串拼接,整段 JSON 結構就會瞬間斷裂瓦解。

  • 解法:

看影片加上ai輔助,學習直接引入 JavaScript 的語法:

javascript
{{ JSON.stringify($json.output[0].content[0].text) }}

#### 3. 搞懂 LINE 節點的「橘色三角形」真相

* **痛點**:
明明流程跑通、手機也確實收到回覆了,但 HTTP Request 節點右下角始終掛著一個刺眼的橘色三角形驚嘆號,讓人懷疑是不是哪裡又做錯。


* **解法**:
深入理解 LINE Messaging API 的通訊特性。LINE 在接收到回覆請求成功發送後,會回傳 HTTP 狀態碼 `200 OK`,但其 Response Body 是個**空物件 `{}**`。n8n 遇到 Empty Response 會善意掛出 Warning 提醒「無回傳資料」,但這完全屬於正常現象,無須過度焦慮!
---
### 💡 技術總結與心得

從一開始連 `replyToken` 都找不到、看著不斷報錯的畫面懷疑人生,原本還覺得自己是不是根本就不適合做這個,乾脆放棄算了,但是又覺得為什麼那麼輕易就放棄感覺不太好,硬著頭皮繼續做下去,冷靜下來研究哪裡出問題,最後了屬於自己的LINE管家很有成就感,幸好成功了。

這次實作讓我體會到: 只要給 AI 配上一顆能記憶上下文的腦袋(Memory),它就不再是冷冰冰的問答機器,而是能隨時陪伴、替你分擔飲食焦慮的貼心管家。

0 個愛心0 則留言

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