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 接口

搜索功能展示

三、Dify集成

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

点击插件,设置授权

输入地址:

http://10.44.32.14:8081

新建智能体

提示词如下:

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

点击工具添加

添加2个工具

searxng_search

webscraper

设置模型

说明:

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

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

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

点击发布更新,点击运行

今天上海天气怎么样?

效果如下:

相关推荐
德思特9 小时前
从 Dify 配置页理解 RAG 的重要参数
java·人工智能·llm·dify·rag
Angel3 天前
Dify系列课程 - 4.Dify实战(本地部署-源码下载与部署)
ai·dify·dify实战·dify实战指南·dify docker 部署·ai实战 应用
海市公约4 天前
从 CRUD 到 AI 工程:基于 FastAPI + Dify 的 AI 面试模拟系统实践
prompt·fastapi·项目实战·dify·ai工作流·后端架构
rundreamsFly5 天前
Dify 1.14.0 发布:从“单机玩具”到“工业级协作”的硬核进化
人工智能·dify
展示猪肝7 天前
Vue2 + FastAPI + Dify 实现 AI 医疗预检分诊助手:从问诊追问到医生审核闭环
人工智能·vue·fastapi·dify
辞忧九千七7 天前
前后端分离架构实战与项目落地:AI智能学习笔记管理系统
python·html·axios·css3·fastapi·dify
rising start7 天前
InsightEdu - 轻量智能学习平台
javascript·axios·css3·html5·fastapi·orm·dify
todoitbo7 天前
我把dify构建的CloudMart 知识库客服一键部署到了 EdgeOne Pages
人工智能·ai·智能客服·edgeone·dify
Lethehong7 天前
Dify + EdgeOne:AI应用从Demo到上线的最后一公里
服务器·网络·人工智能·edgeone·dify
我叫张小白。7 天前
劳动力招聘管理系统:全栈实战(Vue3+FastAPI+WebSocket+Dify)
websocket·vue·毕业设计·状态模式·fastapi·dify·智能体