n8n時間
首先開啟右上角的+號,拿出一個Schedule Trigger
再來由於中央氣象署給的api是get,這代表我們得要固定時間去檢查一下,但是因為他有流量限制,由於我不會計算,所以時間就選擇一分鐘觸發一次,
再來http request,填入你的api位置,下面send Body ,自己改縣市
接下來是右上角+號,搜尋code
輸入這些
const thresholdMinutes = 0.5; # 時間在幾分鐘之內
const now = new Date().getTime(); // 轉成毫秒
const filteredQuakes = $input.all()
.map(item => item.json.earthquakes || [])//每個ITEM中取出EARTHQUAKE
.flat()
.filter(quake => {
const quakeTime = new Date(quake.origin_time).getTime();
return (now - quakeTime) / 60000 <= thresholdMinutes;//轉成毫秒後比對時間
})
.map(quake => ({ json: quake }));//包裝回去
return filteredQuakes.length > 0 ? filteredQuakes : [];//如果沒有資料就不傳出,避免浪費gemini流量
gemini,一樣自己拉,模型選擇2.5flash,為了避免沒資料導致的無法進行prompt,這邊已經整理好要寫什麼了
你是一個地震安全助理。收到以下地震資料後,請查詢最新公開資料,並根據各區域震度給出安全建議:
時間: {{$json["origin_time"]}}
位置: {{$json["location"]}}
規模: {{$json["magnitude"]}}
深度: {{$json["depth"]}} 公里
座標: {{$json["latitude"]}}, {{$json["longitude"]}}
使用者地區
{{ $json.target_areas[0].area }}: 震度
{{ $json.target_areas[0].intensity }}
要求:
1. 根據每個區域的震度提供簡短、清楚、可操作的安全建議。
2. 使用官方或可靠來源的資訊作為依據。
3. 不要重複原始地震資料,只輸出建議。
4. 如果某個區域震度很低,可以給出「注意安全即可」類型的建議。
dc的部分只要在message那邊填入{{ $json.content.parts[0].text }}就好了