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功能对搜索到的相关内容进行爬取,并进行总结分析,得到一条最终结果,才是我们想要的。
就像上面看到的搜索上海天气,有几十条。那么我们只需一条最终结果即可。
点击发布更新,点击运行

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

SearXNG私有化部署与Dify集成的更多相关文章
- GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署
预期目标 源代码管理 借助GitLab实现源代码托管,私有化部署版本,创建项目,创建用户组,分配权限,项目的签入/牵出等. 自动化部署 源代码产生变更时(如签入),自动化编译并发布到指定服务器中部署, ...
- Docker技术浅谈:私有化部署的优势以及在顶象内部的应用实践
顶象全景式业务安全风控体系基于新一代风控体系构建,并采用Docker技术进行私有云和公有云部署.本文主要和大家分享下Docker容器技术和顶象风控系统私有化部署的优势以及Docker容器技术在顶象内部 ...
- 还原火山引擎 A/B 测试产品——DataTester 私有化部署实践经验
作为一款面向ToB市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路. 在面向ToB客户私有化的实际落地中,火 ...
- 【补充】Gitlab 部署 CI 持续集成
上一篇:<劈荆斩棘:Gitlab 部署 CI 持续集成> 上一篇所配置的.gitlab-ci.yml: stages: - build - test before_script: - ec ...
- 容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付
容器技术提供了一种标准化的交付方式,将应用的代码以及代码环境依赖都打包在一起,成为一个与环境无关的交付物,可以被用在软件生命周期的任何阶段,彻底改变了传统的软件交付方式. 甚至可以说,是在容器技术之后 ...
- 容器镜像服务 联手 IDE 插件,实现一键部署、持续集成与交付
容器技术提供了一种标准化的交付方式,将应用的代码以及代码环境依赖都打包在一起,成为一个与环境无关的交付物,可以被用在软件生命周期的任何阶段,彻底改变了传统的软件交付方式. 甚至可以说,是在容器技术之后 ...
- Spire.Cloud 私有化部署教程(二)- Ubuntu 18.04 系统
本教程主要介绍如何在Ubuntu 18.04系统上实现Spire.Cloud私有化部署.CentOS 7系统部署请参考 这篇教程. 详细步骤如下: 一.环境配置 1.关闭防火墙 1)首先查看防火墙状态 ...
- Spire.Cloud 私有化部署教程(一) - CentOS 7 系统
Spire.Cloud支持的Linux服务器系统包括CentOS和Ubuntu(推荐使用CentOS 7和Ubuntu 18版本),本教程主要介绍如何在CentOS 7系统上实现Spire.Cloud ...
- .net core 和 WPF 开发升讯威在线客服系统【私有化部署免费版】发布
希望 .net 和 WPF 技术时至今日,还能有一些存在感. 这个项目源于2015年前后,当时开发的初版,我使用了 ASP.NET MVC 做为后端,数据库使用原生 ADO.NET 进行操作.WPF ...
- 10分钟学会VS NuGet包私有化部署
前言 我们之前实现了打包发布NuGet,但是发布后的引用是公有的,谁都可以访问,显然这种方式是不可取的. 命令版本:10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(ne ...
随机推荐
- MySQL 开启配置binlog以及通过binlog恢复数据
-------------------------------------------------------------------------------------- # 查看binlog的列表 ...
- ForkJoin全解1:简单使用与大致实现原理
1. 使用示例import java.lang.reflect.Method; import java.util.concurrent.ForkJoinPool;import java.util.co ...
- spring事务配置的5种方式
事务配置其实把思路理清,还是很容易的. spring的配置文件中关于事务配置总是由三个部分组成:分别是DataSource.TransactionManager和代理机制这三部分,无论哪种配置方式,一 ...
- C#定点执行任务测试案例
定时方法实现类 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text ...
- C:条件编译
问题 #ifdef HELIB_DEBUG long pa, pb; std::vector<long> slots; decryptBinaryNums(slots, a, *dbgKe ...
- Windows 快速启动器
在日常工作和学习中,我们经常需要快速访问某些功能或资源,例如打开常用网站.启动应用程序或执行特定命令.Linux 用户可以通过 alias 快速实现这些操作,但在 Windows 上缺乏类似的原生支持 ...
- dart集合list方法详解
List数组有两种声明方式: 01==>List 常用的属性==> length 计算数组的长度 reversed 数组翻转 isEmpty 是否为空 isNotEmpty 是否不为空 L ...
- uni-app配置顶部标题样式
在pages.json中,通过配置这个文件,可以去设置当前页面的标题样式, 赋值的时候,将注册删除哈!!! 这样配置兼容 小程序和H5端 在配置的时候,没有给背景色,我还以为在uniapp中不兼容小程 ...
- Binomial Sum 学习笔记
- 支付宝 v3 自签名如何实现
今天在看文档的时候,发现支付宝新出了一个 v3 版本的接口调用方式,感觉有点意思,花了点时间研究了下这个版本要怎么实现自签名,大家有兴趣可以看看. 什么是支付宝 API v3 版本? 官网上给的解释是 ...