里程碑
身為凹豆咖,想要請 AI 幫忙分析目的地的天氣情況和需要準備的裝備
Gastricfluid @gastricfluid發布於
LINE 打球天氣小助手
使用 n8n 串接 LINE、AI 與天氣 API,將日常提問轉換成打球與衣物準備建議。
非常的陽春哈哈哈,只是受夠準備好所有東西但下雨的情況,單純自己看天氣預報也只能用猜的,所以請 AI 幫忙分析,希望未來可以再根據使用情況做優化!
工具用途
使用者可以直接在 LINE 詢問:
「明天下午四點,台大野場適合打球嗎?」
系統會辨識日期、時間與地點,查詢對應的天氣預報,提供:
- 是否適合戶外打球。
- 是否需要攜帶運動服、替換上衣或雨具。
- 判斷依據與天氣資料的適用範圍。
AI 負責理解問題、呼叫工具及整理建議;天氣數據由 Open-Meteo API 提供。
流程概覽
- Webhook:接收使用者的 LINE 訊息。
- Message a Model:擷取日期、時間與地點。
- AI Agent:依查詢條件呼叫座標與天氣工具。
- get_coordinates:將地名轉成經緯度。
- get_weather:取得指定日期的逐時天氣預報。
- AI Agent:選取對應時段的資料,產生打球建議。
- 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,將地點名稱轉成緯度與經度。
目前採用英文地名優先的搜尋方式。例如:
- 將「台大野場」辨識為國立臺灣大學。
- 嘗試搜尋
National Taiwan University。 - 若找不到校園座標,改搜尋所在城市
Taipei。 - 核對回傳位置,取得可用的經緯度。
系統預設可以採用學校或附近區域的代表位置,不必每次請使用者確認。
若使用城市座標,回覆須註明「以臺北市區域預報作參考」,避免讓使用者誤以為是球場的精確天氣。遇到無法辨識的學校或不同城市的同名地點時,才需要追問。
三、 取得指定時段的天氣資料
取得座標後,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 則留言
登入並驗證手機後就能留言。登入