一、概述
SearXNG 是一个免费的互联网元搜索引擎,它聚合了来自各种搜索服务和数据库的结果,但摆脱了隐私追踪 ------ 用户行为既不会被引擎跟踪也不会被分析。
功能特性
- 自托管,可以私有化部署
- 没有用户跟踪/没有分析
- 可以自定义设置脚本和 cookies
- 安全加密的连接
- 轻松整合了近200个搜索引擎,用户可自定义选择不同的引擎
- 多语言支持,约 60 个,包含中文、英文等
- 提供近 100 个维护良好的公共查询实例
Github官方地址:
https://github.com/searxng/searxng-docker.git
官方安装文档:
https://docs.searxng.org/admin/installation-docker.html#installation-docker
简单来说,如果你的AI模型没有联网功能,可以通过这个插件,来实现联网功能。
二、安装SearXNG
根据官方安装文档,只需要使用docker启动即可
$ mkdir my-instance
$ cd my-instance
$ export PORT=8080
$ docker pull searxng/searxng
$ docker run --rm \
-d -p ${PORT}:8080 \
-v "${PWD}/searxng:/etc/searxng" \
-e "BASE_URL=http://localhost:$PORT/" \
-e "INSTANCE_NAME=my-instance" \
searxng/searxng
2f998.... # container's ID
为了方便管理SearXNG,这里使用docker-compose来启动。
编辑文件docker-compose.yaml
mkdir /data/searxng
cd /data/searxng
vi docker-compose.yaml
内容如下:
services:
searxng:
image: searxng/searxng
container_name: searxng
ports:
- "8081:8080"
environment:
BASE_URL: http://10.44.32.14:8081
INSTANCE_NAME: my-instance
volumes:
- ./searxng:/etc/searxng:rw
restart: always
volumes:
searxng-data:
说明:
8081:8080,避免端口冲突,改成8081
BASE_URL,访问地址http://10.44.32.14:8081。注意:这里要求dify能够访问到searxng即可。
启动应用
docker-compose up -d
生成密钥
openssl rand -hex 32
输出:
34788b49b8f9d819cfcb09da447b0d8586c63ad1acd469a1e446
修改配置文件
cp searxng/settings.yml searxng/settings.yml.bak
vi searxng/settings.yml
清空默认内容,一行不留,完整内容如下:
# see https://docs.searxng.org/admin/settings/settings.html#settings-use-default-settings
use_default_settings: true
server:
# base_url is defined in the SEARXNG_BASE_URL environment variable, see .env and docker-compose.yml
secret_key: "34788b49b8f9d819cfcb09da447b0d8586c63ad1acd469a1e446"
limiter: false
image_proxy: true
ui:
static_use_hash: true
redis:
url: false
search:
formats:
- html
- json
说明:
secret_key: 上面生成的密钥
limiter: false,禁用请求限制器,否则可能触发 too many requests 的问题
redis:
url: false,这里不需要使用redis存储
search:
formats:
-
html
-
json,扩展数据返回格式,增加json,否则设置SearXNG插件,添加访问search接口会报错403
重新启动应用
docker-compose down
docker-compose up -d
访问searxng页面
验证 json 接口

搜索功能展示

三、Dify集成
登录到dify,点击工具,搜索SearXNG

点击插件,设置授权
输入地址:

新建智能体

提示词如下:
## 技能
### 技能1:使用searxng_search工具进行联网搜索
### 技能2:使用webscraper功能对搜索到的相关内容进行爬取,并进行总结分析
## 限制
- 如果没有相关内容,再进行联网搜索
- 你的回答应严格针对分析任务。使用结构化语言,逐步思考
- 使用的语言应和用户提问的语言相同
- 搜索的关键词必须和用户提问的内容一致
点击工具添加

添加2个工具
searxng_search
webscraper
设置模型

说明:
searxng_search工具返回的搜索结果,有几十条,这并不是我们最终想要的。
所以需要webscraper功能对搜索到的相关内容进行爬取,并进行总结分析,得到一条最终结果,才是我们想要的。
就像上面看到的搜索上海天气,有几十条。那么我们只需一条最终结果即可。
点击发布更新,点击运行

今天上海天气怎么样?
效果如下:
