type
status
date
slug
summary
tags
category
icon
password
DIFY在国内网络环境或企业内网中,直接访问 Tavily、Google 或 DuckDuckGo 往往受限或不稳定。
为了解决这个问题,我们需要为 Dify 换一个“国内特供版”或“可自托管”的搜索引擎插件。
这里介绍一个可本地部署的最佳解决方案:SearXNG。
1 SearXNG 简介
SearXNG 是一个免费、开源的“元搜索引擎”。它自己不爬取网页,而是去请求百度、必应、搜狗等引擎,然后把结果汇总给你。其优点在于:
- 完全本地部署(Docker),数据掌握在自己手里。
- 可以配置只使用百度、必应 (Bing)、搜狗等国内可访问的引擎。
- Dify 原生支持,集成非常简单。
2 部署 SearXNG
本地可使用Docker进行一键式部署。
2.1 清理旧容器
清理可能安装过的相同容器,若之前没有安装过可以跳过此步。
2.2 创建配置文件
我们需要在服务器上创建一个
settings.yml 文件。- 创建一个文件夹
my-searxng
- 创建并编辑文件。
- 复制以下内容粘贴进去。这段配置的作用:开启 JSON 输出权限,关闭频率限制,设置密钥(必须修改)。
- 保存退出。
2.3 创建并启动容器
将编辑好的
settings.yml文件“挂载”到容器里。在 my-searxng 目录下运行命令:解释:-v $(pwd)/settings.yml:/etc/searxng/settings.yml这句话的意思是,用刚才写的配置文件,覆盖容器里默认的配置文件。
然后运行
docker ps检查容器是否在运行。3 在Dify中配置SearXNG
- 在dify中安装SearXNG插件,在工具(Tools)页面搜索SearXNG并安装。
- 配置SearXNG:
- 安装完成后再工具页面找到SearXNG
- 在右侧边栏点击 “去授权”
- 填写 Base URL 为 http://searxng:8080
- 保存
4 使用
在dify编排workflow、chatflow类型应用时,插入SearXNG搜索节点:
- 点击节点上的”+“。
- 选择工具—>插件—>SearXNG—>SearXNG搜索,即可创建一个新的搜索节点。
- 设置节点参数。
在Agent应用中添加SearXNG搜索功能:
- 在编排页面找到”工具“板块,点击”+“。
- 选择插件—>SearXNG—>SearXNG搜索。
- 在添加的Searxng工具上点击”信息和设置“来配置搜索参数。
5 SEARXNG搜索引擎配置
第二步中创建的额
settings.yml文件中未对搜索引擎进行具体设置,searXNG将使用默认的引擎设置,因此实际使用时大概率会出现搜索失败或搜索结果为空的情况。因此需要根据实际情况进行搜索引擎配置。5.1 搜索引擎测试
- 浏览器访问searxng的web端(http://server_ip:8082),在本机测试可用http://localhost:8082

- 点击首选项(preference)—>搜索引擎(ENGINE),选择你需要的搜索引擎。
- 返回web首页,测试搜索效果。
- 在首选项(preference)—>搜索引擎(ENGINE)中查看目标搜索引擎的响应时间、最大用时、可靠性等参数,找到效果较好的一个或几个搜索引擎。


5.2 引擎配置
打开
my-searxng/settings.yml ,将效果较好的搜索引擎添加到engines 下:保存后重启容器
6 SearXNG稳定性优化
- Redis 缓存:在 SearXNG 的 settings.yml 中开启 Redis 支持(如果支持),或者确保 SearXNG 实例有足够的内存,防止请求过快导致自身崩溃。
- 多实例:如果数十人以上团体使用,搜索量非常大,可以部署 2-3 个 SearXNG 容器做负载均衡(Nginx 轮询),避免单点 IP 被封。
总结
在dify应用中searxng的最大优势在于本地部署,这可以省去第三方搜索引擎API的调用费用,但需要更多的硬件支撑,用户应考虑实际应用场景需进行部署。
- 作者:wavypilot
- 链接:https://www.wpthere.top/blog/dify-searxng-llm-online-surfing
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

