SearXNG私有化部署与Dify集成

一、概述

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页面

http://10.44.32.14:8081/

 

验证 json 接口

SearXNG私有化部署与Dify集成

搜索功能展示

SearXNG私有化部署与Dify集成

三、Dify集成

登录到dify,点击工具,搜索SearXNG

SearXNG私有化部署与Dify集成

点击插件,设置授权

输入地址:

http://10.44.32.14:8081

SearXNG私有化部署与Dify集成

 

新建智能体

SearXNG私有化部署与Dify集成

提示词如下:

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

点击工具添加

SearXNG私有化部署与Dify集成

添加2个工具

searxng_search

webscraper

 

设置模型

SearXNG私有化部署与Dify集成

说明:

searxng_search工具返回的搜索结果,有几十条,这并不是我们最终想要的。

所以需要webscraper功能对搜索到的相关内容进行爬取,并进行总结分析,得到一条最终结果,才是我们想要的。

就像上面看到的搜索上海天气,有几十条。那么我们只需一条最终结果即可。

 

点击发布更新,点击运行

SearXNG私有化部署与Dify集成

今天上海天气怎么样?

效果如下:

SearXNG私有化部署与Dify集成

 

发表评论

您必须 [ 登录 ] 才能发表留言!

相关文章