必须接入百度搜索api,注册平台获取api key和secret key,配置dify的web search api工具节点或自定义python节点,编排工作流实现实时信息检索与llm整合回答。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Dify中让AI回答“今天北京天气怎么样”“最新iPhone 15 Pro价格”这类依赖实时网络信息的问题,必须接入百度搜索API——它不是简单贴个链接,而是要把搜索结果结构化喂给LLM,让模型基于真实网页内容生成答案。
注册百度搜索开放平台并获取API密钥
访问 https://developer.baidu.com/ → 登录百度账号 → 进入「百度搜索开放平台」→ 点击「创建应用」→ 应用类型选「Web端」→ 填写应用名称(如“Dify-百度检索”)和简介 → 提交审核。审核通常1–2小时通过,通过后立即进入「应用详情页」→ 找到「API Key」和「Secret Key」两串字符,【务必复制保存,Secret Key只显示一次】。
注意:百度搜索API不直接对外提供免费调用额度,需联系商务或开通「搜索资源平台」企业认证账户;若仅测试,可用其提供的「体验版」接口(限制QPS≤1,每日总调用量≤100次),路径为「控制台 → 搜索服务 → 搜索资源平台 → 申请体验权限」。
在Dify中配置自定义工具节点(Web Search API)
方法一:使用Dify内置的「Web Search API」工具节点(推荐,适配度高)
进入Dify工作流编辑页 → 添加节点 → 选择「Tool」→ 搜索并选中「Web Search API」→ 点击「配置」→ 在「Provider」下拉菜单中选择「Baidu」→ 将上一步获取的API Key粘贴到「API Key」字段,Secret Key填入「Secret Key」字段 → 「Search Endpoint」留空(Dify已预置百度接口地址)→ 启用「Return raw results」若需调试原始JSON,否则关闭 → 保存。
方法二:手动创建Custom Node(灵活但需编码)
添加节点 → 选择「Custom Node」→ 语言选Python → 粘贴以下代码(已适配百度搜索v1接口):
```python
import requests
import json
import hmac
import hashlib
import base64
import time
def run(query: str):
api_key = os.getenv("BAIDU_API_KEY")
secret_key = os.getenv("BAIDU_SECRET_KEY")
timestamp = str(int(time.time()))
sign_str = f"{api_key}{timestamp}"
signature = base64.b64encode(hmac.new(secret_key.encode(), sign_str.encode(), hashlib.sha256).digest()).decode()
headers = {
"x-bce-date": timestamp,
"authorization": f"bce-auth-v1/{api_key}/{timestamp}/3600/{signature}"
}
params = {"q": query, "rn": 5}
resp = requests.get("https://api.baidu.com/search/v1", headers=headers, params=params)
if resp.status_code == 200:
data = resp.json()
results = []
for item in data.get("result", [])[:3]:
results.append({
"title": item.get("title", ""),
"link": item.get("url", ""),
"snippet": item.get("snippet", "")
})
return {"text": json.dumps(results, ensure_ascii=False)}
else:
return {"error": f"HTTP {resp.status_code}: {resp.text}"}
```
→ 在「Environment Variables」中新增两行:
BAIDU_API_KEY = 你的API Key
BAIDU_SECRET_KEY = 你的Secret Key
→ 保存节点。
编排工作流:触发→搜索→整合→输出
第一步:拖入「Start」节点,设置输入变量名为query,类型为Text。
第二步:连接「Web Search API」节点,将Start节点的query作为该节点的input参数。
第三步:添加「LLM」节点,模型选deepseek-r1:8b或你部署的其他支持thinking的模型 → SYSTEM提示词设为:
“你是一个严谨的信息整合助手。用户提问:{query}。以下是来自百度搜索的前三条结果:
{web_search_api.text}
请严格依据上述结果作答,禁止编造、推测或引用未出现的内容。若结果中无明确答案,回复‘未在百度搜索结果中找到相关信息’。”
第四步:连接「End」节点,输出变量设为LLM节点的text字段。
【关键校验点:运行前务必点击右上角「Test」按钮,输入“上海迪士尼今日营业时间”,观察Web Search API节点是否返回含title/link/snippet的JSON数组】
验证与调试:检查返回结构是否被LLM正确识别
运行一次测试请求 → 点击「Trace」查看各节点输出 → 重点看Web Search API节点的output字段是否为标准JSON格式(非HTML或乱码) → 若显示“{'error': 'HTTP 401...'”,说明API Key或Secret Key填写错误或过期 → 若返回为空数组[],检查query是否被百度过滤(如含敏感词、过短) → 若LLM输出中引用了不存在的链接,说明SYSTEM提示词未生效,需重新检查LLM节点的上下文绑定是否勾选了web_search_api.text。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











