必须通过自定义工具接入第三方天气api:先在openweathermap注册获取密钥,再在dify中创建工具,配置json schema、api url及jinja2响应模板,最后绑定至应用工作流并发布。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Dify中让AI助手实时返回用户所在地的天气信息,必须通过自定义工具(Custom Tool)接入第三方天气API,不能依赖内置插件或静态知识库。
注册并获取天气API密钥
前往 OpenWeatherMap 官网(openweathermap.org/api)注册免费账号,进入 API Keys 页面,点击 “Generate new key” 创建密钥。该密钥将用于后续所有请求认证,【请勿在前端代码或公开工作流中硬编码此密钥】。
免费版默认支持每分钟1000次调用、每日100万次,足够测试和轻量部署使用。
在Dify中创建自定义工具
登录 Dify 控制台 → 进入「应用」→ 选择目标应用 → 左侧菜单点击「工具」→ 点击「+ 添加工具」→ 选择「自定义工具」。
填写工具基本信息:名称填“实时天气查询”,描述写“根据城市名返回当前温度、天气状况、湿度与风速”,然后切换到「Schema」标签页。
在 Schema 编辑框中粘贴以下 JSON(注意替换 YOUR_API_KEY 为上一步获取的真实密钥,但先别保存):
{"type":"object","properties":{"location":{"type":"string","description":"城市英文名称,如 beijing, shanghai, new york"},"units":{"type":"string","enum":["metric","imperial"],"default":"metric"}},"required":["location"]}
接着在「API URL」栏填写:https://api.openweathermap.org/data/2.5/weather?q={location}&appid=YOUR_API_KEY&units={units}。URL 中的 {location} 和 {units} 会自动从用户输入中提取,无需手动拼接。
配置请求与响应映射
切换到「Response Mapping」标签页,Dify 需要知道如何把 API 返回的 JSON 转成 AI 可读的自然语言文本。
第一步:在「Response Body」区域勾选「Use template」,输入以下 Jinja2 模板:
当前 {location} 的天气:{data.main.temp}°C,{data.weather[0].description},湿度 {data.main.humidity}%,风速 {data.wind.speed} m/s。
第二步:确认「Status Code」设为 200,「Error Handling」中勾选「Treat non-200 as error」,这样当城市名拼错或网络超时,AI 会明确告知“查不到该城市天气”,而不是返回空或乱码。
第三步:点击「测试工具」,在弹窗中输入 location=shanghai → 点击运行。若返回类似“当前 shanghai 的天气:24.3°C,scattered clouds…”即表示映射成功;若提示 404 或 invalid api key,请回头检查密钥是否填错、URL 是否漏了 &appid= 部分。
将工具绑定到应用工作流
方法一:在「编排」页面,拖入「工具调用」节点,搜索“实时天气查询”,勾选启用。确保该节点连接在 LLM 节点之前,且 LLM 提示词中已包含类似“如用户询问天气,请调用实时天气查询工具”的指令。
方法二:若使用「聊天增强」模式,在「提示词优化」→「工具调用」中直接开启该工具,并设置触发关键词为“天气、气温、下雨、今天穿什么”等常见口语表达。
完成绑定后,发布应用。此时用户输入“北京现在多少度”,AI 将自动调用 OpenWeatherMap 接口,解析返回数据,并用中文组织成一句完整回复。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











