里程碑
傳所在位置,讓 AI 看天氣幫你選吃啥
Victor @victor發布於 已編輯
一、為什麼想做這個作品?
每天最難的問題不是寫作業,而是「午餐要吃什麼」。下雨天又不想走太遠,常常要在地圖、天氣和評論之間來回切換。所以我想做一個 LINE 小精靈:只要傳一個位置,就能依照現在的天氣,推薦附近適合吃的店。
二、作品介紹與功能
我把「今天吃什麼小精靈」設定成一個有點愛吐槽的美食朋友,主要功能有:
- 記住偏好:先用文字告訴它「預算 200,想吃清爽的」,小精靈會記住。
- 傳位置就推薦:傳送 LINE 位置後,它會查詢當下天氣和附近店家,挑出 3 家,並附上距離與 Google 地圖連結。
- 看天氣做決定:下雨優先推近的店,很熱推清爽的,很冷推熱食。
- 誠實而且不會亂掰:只會推薦查到的店家,不會編造店名。因為資料沒有價位和評分,價位會標註推估。
三、我的製作過程
使用工具: n8n、LINE Messaging API、OpenAI Chat Model、Simple Memory、Open-Meteo(看一下當時天氣)、Geoapify(尋找附近店家)。
流程如下:
- Webhook 接收 LINE 訊息。
- If 判斷是「位置」還是「文字」。
- 位置:HTTP Request 查天氣、HTTP Request 查附近餐廳,再用 Code 節點整理成 AI 看得懂的文字(含距離排序)。
- 文字:直接交給 AI Agent,讓它記住預算與口味。
- AI Agent 搭配 Simple Memory(以 LINE userId 區分每個人),產生回覆。
- HTTP Request 呼叫 LINE Reply API 傳回手機。
System prompt 的重點:
- 只能推薦資料裡出現的店家,不可捏造
- 依天氣調整推薦邏輯
- 規定回覆格式,網址獨立一行
(n8n 流程圖與對話截圖見文末圖片)
遇到的問題:
- 原本用 OpenStreetMap 的 Overpass 查餐廳,但公用伺服器一直超時,換了好幾個鏡像都不穩,最後改用 Geoapify。
- LINE 會把網址後面緊接的全形括號也當成連結,導致點不開,所以在 prompt 規定網址要獨立一行。
- Webhook 的 Test URL 與 Production URL 不同,測試時要按 Execute workflow,發布後才要換成正式網址。
- LINE 的 replyToken 有時效,測試太慢就會失效。
四、我的收穫
這是我第一次把 Webhook、AI Agent 和外部 API 串在一起。最大的收穫是:AI 的回答好不好,一半取決於餵給它什麼資料。先用 Code 整理好天氣和店家,再叫它只能從這些資料挑,AI 就不會再亂掰。也學到外部服務不一定穩,要準備替代方案。
未來(可能)想加入:評分與價位資料、Flex Message 卡片、「我想吃跟昨天不一樣的」這類個人化推薦。
0 個愛心0 則留言
登入並驗證手機後就能留言。登入