Dify 獲取天氣數據并以echarts圖表顯示
- 1. 創建一個 Chatflow
- 2. 創建一個 HTTP 請求節點
- 3. 創建一個代碼執行節點
- 4. 創建一個直接回復節點
- 5. 發布并預覽
1. 創建一個 Chatflow
2. 創建一個 HTTP 請求節點
請求地址:https://weather.cma.cn/api/climate?stationid=58367
3. 創建一個代碼執行節點
代碼如下,
import jsondef main(data):weather_data = json.loads(data)# 提取月份和對應的數據months = []max_temps = []min_temps = []rainfall = []for item in weather_data['data']['data']:months.append(f"{item['month']}月")max_temps.append(item['maxTemp'])min_temps.append(item['minTemp'])rainfall.append(item['rainfall'])# 生成echarts配置echarts_config = {"color": ['#eb6877', '#0f91c4', '#46cbd4'],"title": {"subtext": f"{weather_data['data']['beginYear']}年-{weather_data['data']['endYear']}年月平均氣溫和降水","left": 20},"tooltip": {"trigger": "axis","axisPointer": {"type": "cross"}},"legend": {"data": ["最高氣溫", "最低氣溫", "降水"],"right": 20},"xAxis": {"data": months,"axisLine": {"onZero": False}},"yAxis": [{"type": "value","name": "溫度","position": "left","axisLabel": {"formatter": "{value} ℃"}},{"type": "value","name": "降水量","min": 0,"position": "right","axisLabel": {"formatter": "{value} mm"}}],"series": [{"name": "最高氣溫","type": "line","data": max_temps,"yAxisIndex": 0,"itemStyle": {"color": "#eae213"}},{"name": "最低氣溫","type": "line","smooth": True,"data": min_temps,"yAxisIndex": 0,"itemStyle": {"color": "#4bb2fa"}},{"name": "降水","type": "bar","smooth": True,"data": rainfall,"yAxisIndex": 1,"itemStyle": {"color": "#31e84f"}}]}# 生成輸出文件output = "```echarts\n" + json.dumps(echarts_config, indent=2, ensure_ascii=False) + "\n```"return {"output":output}
4. 創建一個直接回復節點
5. 發布并預覽
完結!