dify内置多种搜索插件,包括谷歌、bing、博查等等,但这些都是收费的(或者有一定的免费额度)。想要免费使用搜索可以尝试searxng,本地运行脚本,安全可靠。
SearXNG 是一个分布式的元搜索引擎,用户可以通过它在多个搜索引擎中同时查询,而不会暴露自己的隐私。它是对原始 Searx 项目的分支,作为开源项目,可以本地部署。
SearXNG可以直接抓取本地搜索引擎的网页实现搜索,也可以使用Google或者bing等官方API。本地免费的基本上够用了,但稳定性差一些,要想稳定使用也可以使用官方API,或者直接在dify中使用Google或bing搜索插件。
Dify中安装使用插件
找到 searXNG 插件,导入工作流。第一次导入需要授权。
来到本地克隆的dify文件夹下,执行如下命令:
docker run --rm -d -p 8081:8080 -v "${PWD}/api/core/tools/provider/builtin/searxng/docker:/etc/searxng" searxng/searxng
第一次执行该命令会将searXNG仓库拉取到本地,等待配置,成功后会在docker中看到新启动的searXNG线程。
此时回到dify界面中填入如下内网网址:
http://host.docker.internal:8081
然后就可以使用搜索了。
一个小问题
默认情况下 searXNG 插件的输出会放在json标签下,text标签为空,这也就导致下一级插件是无法直接获得搜索结果的。
可以考虑加一个“模版转换”节点,直接把searXNG输出变成string的text类型就可以用了: