iT邦幫忙

2026 iThome 鐵人賽

DAY 19
0
ChatGPT & Codex

這隻 LINE Bot 不是我寫的:30 天讓 Codex 從零幫我做到上線系列 第 19

Day 19 - 喝完咖啡總是忘記評分?我讓 LINE Bot 主動回來提醒

  • 分享至 

  • xImage
  •  

前一版的 LINE Cafe Bot,已經可以幫我完成不少事情。

我只要傳送位置,它就會推薦附近的咖啡廳;我也能告訴它自己喜歡安靜、有插座、適合工作的店。找到想去的地方後,還可以直接安排時間、加入 Google Calendar。

去過之後,我能替這次體驗打 1~5 分,加上「安靜」、「有插座」、「適合工作」或「想再訪」等標籤。

看起來很完整,但我真的開始使用後,發現了一個很生活化的問題:

我常常忘記回來評分。

安排咖啡時間通常是在出發前,評分卻是在幾個小時後。等我喝完咖啡、收好電腦、搭車回家,早就忘記 LINE 裡還有一張「記錄這次造訪」的按鈕。

Bot 有記錄功能,卻只能坐在原地等我想起來。

所以這次,我想讓它在適當的時間主動出現。

上一篇 Cafe Journey 的程式碼:
https://github.com/zonawang/line-cafe-journey

這次的新版本:
https://github.com/zonawang/line-cafe-follow-up

新流程其實只多了一個貼心動作

以前安排完時間,Bot 的工作就結束了:

找咖啡廳 → 安排時間 → 加入行事曆 → 結束

新版則會多做一件事:

找咖啡廳 → 安排時間 → 去喝咖啡 → Bot 主動詢問體驗

操作方式沒有變複雜。

使用者仍然只要:

  1. 傳送位置。
  2. 選一間咖啡廳。
  3. 點「安排喝咖啡時間」。
  4. 選擇日期與時間。

Bot 確認行程時,會一起告訴使用者預計何時回來詢問。這一版預設在咖啡行程開始一小時後提醒。

時間到了,LINE 會收到:

你安排的「某間咖啡廳」行程結束了嗎?

[開始評分] [這次沒去]

如果有去,點「開始評分」,就會進入原本熟悉的星等和標籤流程;如果臨時取消行程,也可以直接回答「這次沒去」。

提醒不是命令使用者一定要寫心得,只是把容易忘記的入口,在最適合的時間送回來。

https://ithelp.ithome.com.tw/upload/images/20260830/20183556pi0LkS4Ihx.jpg

Bot 怎麼記得幾個小時後要回來?

可以把這個功能想成餐廳的預約小紙條。

使用者選好時間後,Bot 會寫下一張單子:

這位使用者安排了這間咖啡廳。
到了指定時間,記得回來問問體驗。

接著,Bot 把單子交給 Google Cloud Tasks 保管。

Cloud Tasks 很像雲端鬧鐘。時間還沒到時,它安靜等待;時間到了,再通知 Bot 發送 LINE 訊息。

這樣 Bot 不需要整天開著一個倒數計時器,也不怕雲端服務重新啟動後就把約定忘掉。

使用者可能安排今天下午,也可能安排兩週後。把「等待」交給專門處理排程的服務,會比要求 Bot 自己一直記在腦中可靠。

如果雲端通知了兩次呢?

網路世界有時會重試同一個工作。

例如 Bot 暫時沒有回應,雲端可能會想:「剛剛是不是沒成功?」於是再通知一次。如果完全不處理,使用者就可能連續收到兩封相同提醒。

因此每一張預約單都有自己的進度:

等待中 → 傳送中 → 已提醒

使用者回覆後,還會記成「開始評分」或「這次沒去」。

如果同一張單子又來一次,Bot 看到它已經處理過,就不會再傳第二封訊息。

背後的程式需要處理不少細節,但對使用者來說,理想結果很簡單:該出現時出現一次,之後不要打擾。

不讓別人替我回答

提醒訊息裡的按鈕,也不能只看起來能用就好。

Bot 會確認按下按鈕的人,是不是原本安排這趟行程的人;也會確認訊息是不是出現在同一個聊天室。

尤其在 LINE 群組裡,一個按鈕可能被很多人看到。如果沒有這層確認,別人就可能替我回答「這次沒去」,或替我的咖啡體驗評分。

每一次操作都重新確認使用者和聊天室,才能讓咖啡足跡真的屬於本人。

至於雲端用來叫醒 Bot 的入口,也有自己的秘密通行證。陌生請求就算知道網址,也不能隨意要求 Bot 發送提醒。

評分日期不能變成填表日期

這次還修正了一個很小、但會讓紀錄失真的問題。

假設我週六去咖啡廳,直到週日才點開提醒完成評分。如果 Bot 只記得我按下「完成」的時間,咖啡足跡就會把這次造訪顯示成週日。

新版在安排時就保存真正的咖啡日期。之後即使晚一點才評分,足跡仍然會顯示原本的造訪日。

我希望 Bot 記住的是「什麼時候去喝咖啡」,不是「什麼時候有空填資料」。

沒有另外做一套新的評分功能

Follow-up 的目的,是把使用者帶回原本流程,不是創造更多操作。

所以點下「開始評分」後,仍然是:

選擇 1~5 分
    ↓
加入體驗標籤
    ↓
完成咖啡足跡

同一個提醒重複點擊,也只會回到同一份紀錄,不會多出好幾間一模一樣的咖啡廳。

原本的足跡還是原本的足跡;這次只是替它加上一位會準時敲門的助手。

主動,不等於一直打擾

設計提醒功能時,我最在意的是不要讓 Bot 變得煩人。

它不會因為推薦過一間店,就擅自追問使用者。只有使用者自己選擇咖啡廳、主動安排時間後,才會建立提醒。

提醒也只有一個明確目的:確認這次有沒有去,以及要不要留下體驗。使用者隨時可以回答「這次沒去」,不需要解釋原因。

對我來說,好的主動服務不是訊息愈多愈好,而是在容易忘記的時候,剛好補上需要的那一步。

從工具,往真正的助手再走一步

以前的 Cafe Bot 很像一個隨叫隨到的工具。我問附近有什麼,它就回答;我要求記錄,它就保存。

加入 Follow-up 後,它開始能陪我走過一段有時間差的旅程:

現在安排 → 稍後造訪 → 結束後詢問 → 留下真實體驗

這次新增的 LINE 畫面其實只有一則提醒和兩個按鈕,真正改變的是 Bot 與使用者的關係。

它不再把推薦送出去就結束,也不必期待我自己記得回來。它會在約定的時間出現,幫我把一次咖啡體驗好好收進足跡裡。

下一篇,我會分享這個新版怎麼安全上線:舊 Bot 繼續工作,新 Bot 先在旁邊彩排,確認提醒真的送得到之後,才正式把 LINE 使用者帶過去。

本篇完整程式碼

👉 GitHub:
https://github.com/zonawang/line-cafe-follow-up

👉 更多 LINE Bot 與 AI 實作紀錄: https://github.com/zonawang/zona-ai-learning-lab


上一篇
Day 18 - Codex CLI 和 App 該怎麼選?從只看終端輸出,到真正看見成品
下一篇
Day 20 - 程式會動還不夠:我用手機完成 Cafe Bot 測試
系列文
這隻 LINE Bot 不是我寫的:30 天讓 Codex 從零幫我做到上線23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言