2. 在 Dify 中配置高德天氣工具

進入 Dify「工具」模塊 → 新建 HTTP 工具

key:固定為你的高德 API Key(認證字段)

3. 選擇大模型:DeepSeek-chat

在 Dify「模型」模塊,接入 DeepSeek-chat(或其他支持 Function Calling 的大模型),驗證調用正常。

三、流程編排:Dify 工作流搭建(可視化操作)

通過 Dify 工作流編輯器,搭建 “輸入→處理→輸出” 核心流程(對應截圖結構):

1. 節點結構

2. Agent 節點關鍵配置

四、指令設計:教模型 “怎么調用工具”

在 Agent 節點的 「指令」框 中,編寫 Prompt 規則,指導模型完成三個核心動作:

1. 觸發規則(判斷 “該查天氣了”)

提示詞

當用戶提問滿足以下條件時,**強制調用「高德天氣預報」工具**:  
- 包含「天氣」「氣溫」「預報」「晴雨」「溫度」等關鍵詞;
- 提到具體城市(如「北京」「上海」,從「開始」節點的 query 中提取); - 未明確拒絕工具(如“不用工具,直接回答”)。

2. 參數構造(明確 “查哪里、查哪天”)

提示詞

### 參數規則(嚴格匹配高德API)  
| 參數名 | 取值邏輯(從 query 提取) | 示例 | |--------|------------------------------------------------|-----------------------------------| | city | 提取城市名(如「上海明天天氣」→ city="上海") | 必須為真實城市名稱(省/市級) | | date | - 「今天」→ 系統當前日期(如 2025-06-29)<br>- 「明天」→ 當前日期+1天(如 2025-06-30)<br>- 具體日期(如「2025-07-01」)→ 直接使用 | 格式必須為 YYYY-MM-DD

3. 結果解析(把 JSON 轉成人話)

### 回復規則(基于高德返回結構)  
假設工具返回:
```json
{
"forecast": [
{"date": "2025-06-29", "weather": "小雨", "temp": "26~30℃"},
{"date": "2025-06-30", "weather": "陰", "temp": "25~28℃"}
]
}

需生成自然語言回復:

上海未來 2 天天氣預報:
?2025-06-29:小雨,26~30℃
?2025-06-30:陰,25~28℃

4. 異常處理(應對 “調用失敗”)

若工具返回錯誤:  
- **城市無效**:回復「未找到『{city}』的天氣數據,請檢查城市名稱」;
- **日期格式錯**:自動修正為 YYYY-MM-DD 后重試(最多1次); - **API超時**:回復「天氣查詢繁忙,請稍后再試」,結合 Agent 最大迭代次數(如3次)觸發重試。

5. 完整提示詞

# 高德天氣 Function Calling 指令設計(精準版)

### 一、觸發規則:何時調用高德天氣工具?

當用戶提問滿足以下 **全部條件** 時,**強制觸發 Function Calling**,調用「GAODE 天氣預報」工具:

1. 提問包含 **天氣相關關鍵詞**:如「天氣」「氣溫」「預報」「晴雨」「溫度」「風力」「降水」等;

2. 提問涉及 **具體城市**(需從「開始」節點的 query 變量中提取城市名,如「北京」「上海」); 3. 未明確拒絕工具調用(如用戶未說「不用工具,直接回答」)。 ### 二、參數構造:如何調用高德接口? 嚴格遵循高德天氣工具的參數要求,按以下規則生成調用參數: | 參數名 | 類型 | 是否必填 | 取值邏輯(從 query 變量解析) | |--------------|--------|----------|------------------------------------------------------------------------------------------------| | city | 字符串 | ? 必傳 | 從用戶提問中提取城市名稱:<br>- 例 1:「北京明天天氣」→ city="北京" <br>- 例 2:「上海后天的氣溫」→ city="上海" <br>- 若未提取到城市(如「今天天氣」),觸發異常(見「四、異常處理」)。 | | date | 字符串 | ? 選填 | 日期格式必須為 YYYY-MM-DD:<br>- 「今天」→ 系統當前日期(如 2025-06-29,需動態獲取);<br>- 「明天」→ 當前日期+1天(如 2025-06-30);<br>- 具體日期(如「2025-07-01」)→ 直接使用;<br>- 未提日期 → 默認為 **當前日期**(查詢今日預報)。 | | type | 字符串 | ? 選填 | 默認為 forecast(預報);若用戶問「實時天氣」,可傳 realtime(需工具支持,需提前確認高德接口能力)。 | ### 三、結果解析:如何生成用戶能懂的回復? 工具返回 **結構化數據** 后,按以下規則整合為自然語言: #### 1. 數據映射(假設高德返回格式示例): ```json { "city": "北京", "date": "2025-06-29", "weather": "晴轉多云", "temp_min": 22, "temp_max": 30, "wind": "南風 3-4 級", "humidity": 55% }

五、測試驗證:讓機器人 “動起來”

1. 測試用例(覆蓋場景)

用戶提問預期行為
上海今天天氣調用高德工具,返回今日預報(如:上海 2025-06-29 天氣:小雨,26~30℃
北京明天會下雨嗎提取城市「北京」、日期「2025-06-30」,解析降雨信息
某某村天氣因城市無效,回復「未找到『某某村』的天氣數據…」
廣州2025/07/01天氣自動修正日期為 2025-07-01 后重試,返回結果

2. 調試技巧(用 Dify「Test Run」)

六、擴展與優化

功能擴展:

體驗優化:

七、總結:從 “查天氣” 到 “通用能力”

通過 Dify Agent + 大模型 + 外部工具,三步搭建智能天氣機器人:

  1. 工具接入:將高德 API 變為 Dify 可用工具;
  2. 流程編排:可視化串聯輸入、處理、輸出;
  3. 指令設計:教模型 “何時、如何、怎樣” 調用工具。

這種模式 可擴展性極強 —— 替換工具(如股票、快遞 API)和指令,即可快速構建新應用。掌握 Function Calling 核心邏輯,讓大模型真正連接真實世界!

文章轉載自: 【2025 年最新版】Dify 全鏈路實戰 16:三步搭建智能天氣查詢機器人(Agent+DeepSeek + 高德天氣)

上一篇:

如何通過WhatsApp API實現業務自動化 | 增強客戶互動與銷售

下一篇:

火山引擎如何接入API:從入門到實踐的技術指南
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費