跳至主要內容

里程碑

傳所在位置,讓 AI 看天氣幫你選吃啥

Victor @victor發布於 已編輯

一、為什麼想做這個作品?

每天最難的問題不是寫作業,而是「午餐要吃什麼」。下雨天又不想走太遠,常常要在地圖、天氣和評論之間來回切換。所以我想做一個 LINE 小精靈:只要傳一個位置,就能依照現在的天氣,推薦附近適合吃的店。

二、作品介紹與功能

我把「今天吃什麼小精靈」設定成一個有點愛吐槽的美食朋友,主要功能有:

  1. 記住偏好:先用文字告訴它「預算 200,想吃清爽的」,小精靈會記住。
  2. 傳位置就推薦:傳送 LINE 位置後,它會查詢當下天氣和附近店家,挑出 3 家,並附上距離與 Google 地圖連結。
  3. 看天氣做決定:下雨優先推近的店,很熱推清爽的,很冷推熱食。
  4. 誠實而且不會亂掰:只會推薦查到的店家,不會編造店名。因為資料沒有價位和評分,價位會標註推估。

三、我的製作過程

使用工具: n8n、LINE Messaging API、OpenAI Chat Model、Simple Memory、Open-Meteo(看一下當時天氣)、Geoapify(尋找附近店家)。

流程如下:

  1. Webhook 接收 LINE 訊息。
  2. If 判斷是「位置」還是「文字」。
  3. 位置:HTTP Request 查天氣、HTTP Request 查附近餐廳,再用 Code 節點整理成 AI 看得懂的文字(含距離排序)。
  4. 文字:直接交給 AI Agent,讓它記住預算與口味。
  5. AI Agent 搭配 Simple Memory(以 LINE userId 區分每個人),產生回覆。
  6. 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 則留言

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