跳至主要內容

里程碑

身為凹豆咖,想要請 AI 幫忙分析目的地的天氣情況和需要準備的裝備

Gastricfluid @gastricfluid發布於

LINE 打球天氣小助手

使用 n8n 串接 LINE、AI 與天氣 API,將日常提問轉換成打球與衣物準備建議。
非常的陽春哈哈哈,只是受夠準備好所有東西但下雨的情況,單純自己看天氣預報也只能用猜的,所以請 AI 幫忙分析,希望未來可以再根據使用情況做優化!

工具用途

使用者可以直接在 LINE 詢問:

「明天下午四點,台大野場適合打球嗎?」

系統會辨識日期、時間與地點,查詢對應的天氣預報,提供:

  • 是否適合戶外打球。
  • 是否需要攜帶運動服、替換上衣或雨具。
  • 判斷依據與天氣資料的適用範圍。

AI 負責理解問題、呼叫工具及整理建議;天氣數據由 Open-Meteo API 提供。

流程概覽

  1. Webhook:接收使用者的 LINE 訊息。
  2. Message a Model:擷取日期、時間與地點。
  3. AI Agent:依查詢條件呼叫座標與天氣工具。
  4. get_coordinates:將地名轉成經緯度。
  5. get_weather:取得指定日期的逐時天氣預報。
  6. AI Agent:選取對應時段的資料,產生打球建議。
  7. HTTP Request:透過 LINE Messaging API 回覆使用者。

一、 接收訊息並擷取查詢條件

使用者傳送 LINE 訊息後,LINE 透過 Webhook 將事件送到 n8n。

系統保留訊息內容與回覆用的 replyToken,再交給 Message a Model 節點擷取三項資訊:

欄位範例
日期2026-10-26
時間16:00
地點台大野場

「今天、明天」等相對日期,需要依台灣時間換算,並統一使用 YYYY-MM-DD 格式。

如果模型回傳的是包在 text 欄位中的 JSON 字串,可以在 n8n Expression 中使用 JSON.parse() 取得各欄位,不一定需要新增 Code 節點。

二、 讓 AI Agent 查詢地點座標

AI Agent 接收查詢條件後,先呼叫 get_coordinates,將地點名稱轉成緯度與經度。

目前採用英文地名優先的搜尋方式。例如:

  1. 將「台大野場」辨識為國立臺灣大學。
  2. 嘗試搜尋 National Taiwan University。
  3. 若找不到校園座標,改搜尋所在城市 Taipei。
  4. 核對回傳位置,取得可用的經緯度。

系統預設可以採用學校或附近區域的代表位置,不必每次請使用者確認。

若使用城市座標,回覆須註明「以臺北市區域預報作參考」,避免讓使用者誤以為是球場的精確天氣。遇到無法辨識的學校或不同城市的同名地點時,才需要追問。

三、 取得指定時段的天氣資料

取得座標後,Agent 呼叫 get_weather,透過 Open-Meteo 預報 API 查詢天氣。

查詢參數

參數用途
latitude查詢位置的緯度
longitude查詢位置的經度
start_date查詢開始日期
end_date查詢結束日期
hourly需要取得的逐時天氣項目
timezone設為 Asia/Taipei,使用台灣時間

天氣項目

可依需求設定查詢:

  • 氣溫。
  • 體感溫度。
  • 降雨機率。
  • 降水量。
  • 風速。

API 回傳整天的逐時資料後,Agent 再選取使用者指定時間的數值進行分析。

只有實際取得的資料才能用於建議。 例如,工具若只查詢氣溫,就不能自行補上降雨機率或風速。

四、 整理建議並回覆 LINE

Agent 將天氣資料整理成簡短、易讀的文字,包含:

回覆項目內容
地點與時間查詢地點、日期、時段及預報範圍
天氣重點實際取得的溫度、降雨與風況資訊
打球建議是否適合戶外打球及判斷原因
衣物與裝備運動服、替換上衣及雨具的攜帶建議
資料來源Open-Meteo

最後,n8n 的 HTTP Request 節點將 Agent 產生的文字,搭配本次訊息的 replyToken,透過 LINE Messaging API 傳回使用者。

建置注意事項

  • 參數名稱必須正確,例如 longitude 和 end_date。
  • end_date 不能寫成含空格的 end date。
  • 日期需使用 YYYY-MM-DD 格式。
  • API 回傳錯誤時,應檢查實際送出的參數,不只是修改 Agent 的提示詞。
  • 查詢失敗或資料不足時,應明確說明,不自行編造座標或天氣數值。

工具限制

這個工具提供的是依天氣預報做出的打球建議,無法確認:

  • 球場是否開放。
  • 現場是否積水或地面濕滑。
  • 活動期間是否一定不會下雨。

使用學校附近行政區或城市座標時,結果屬於區域天氣參考,並非球場的即時觀測。

2 個愛心0 則留言

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