游乐游手机版
首页/AI热点日报/热点详情

如何在Dify中集成百度搜索API实现实时联网检索

类型:热点整理2026-06-29
在Dify中接入百度搜索API,首先需在百度开放平台注册并获取API密钥,然后通过Dify内置的搜索工具或自定义Python节点来配置搜索功能,接着编排工作流以触发搜索请求、获取搜索结果并对结果进行整合处理,最后输出给LLM,同时需验证返回的数据结构,确保LLM能够正确识别和利用。

在Dify中实现“今天北京天气怎么样”或“最新iPhone 15 Pro价格”这类依赖实时信息的问答功能,核心步骤就是接入百度搜索API。这并非简单粘贴一个链接就能完成——需要将搜索结果以结构化数据形式喂给大语言模型(LLM),让模型基于真实的网页内容生成答案,才能打通Dify的联网检索能力,实现真正的实时信息查询。

如何在Dify中接入百度搜索API实现实时联网检索

注册百度搜索开放平台并获取API密钥

正式开始之前,需要先申请API密钥。具体路径如下:访问 https://developer.baidu.com/ → 登录百度账号 → 进入「百度搜索开放平台」→ 点击「创建应用」→ 应用类型选择「Web端」→ 填写应用名称(例如“Dify-百度检索”)和简介 → 提交审核。审核通常在1–2小时内通过,通过后立即进入「应用详情页」,找到「API Key」和「Secret Key」这两串字符——务必第一时间复制并妥善保存,Secret Key仅显示一次,丢失后需要重新申请

需要提醒:百度搜索API不直接开放免费调用额度,通常需要联系商务或开通「搜索资源平台」的企业认证账户。如果仅用于测试,可以申请「体验版」接口,限制条件为QPS≤1,每日总调用量不超过100次。申请路径:「控制台 → 搜索服务 → 搜索资源平台 → 申请体验权限」。

在Dify中配置自定义工具节点(Web Search API)

获取密钥后,进入配置环节。提供两种方式,可根据自身技术偏好选择。

方法一:直接使用Dify内置工具(推荐,上手简单)

进入Dify工作流编辑页面 → 添加节点 → 选择「Tool」→ 搜索并选中「Web Search API」→ 点击「配置」→ 在「Provider」下拉菜单中选择「Baidu」→ 将上一步获取的API Key粘贴到「API Key」字段,Secret Key填入「Secret Key」字段 → 「Search Endpoint」留空(Dify已预置百度接口地址)→ 如需调试原始JSON返回,可开启「Return raw results」,否则保持关闭 → 保存即可。

方法二:自行编写Python节点(灵活但需一定编码能力)

添加节点 → 选择「Custom Node」→ 语言选择Python → 粘贴以下代码(已适配百度搜索v1接口):

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。
第二步:在「Start」节点后面连接「Web Search API」节点,将Start节点的query传递给该搜索节点作为input参数。
第三步:关键步骤——添加一个「LLM」节点。模型推荐使用deepseek-r1:8b,或您部署的其他支持思考机制的模型。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。

来源:https://www.php.cn/faq/2660242.html?uid=1589237

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。