SearXNG 本地部署与配置

CherryStudio 支持通过 SearXNG 进行网络搜索,SearXNG 是一个可本地部署也可在服务器上部署的开源项目,所以与其他需要 API 提供商的配置方式略有不同。

SearXNG 项目链接SearXNG

SearXNG 的优势

  • 开源免费,无需 API

  • 隐私性相对较高

  • 可高度定制化

本地部署

一、Docker 直接部署

由于 SearXNG 不需要复杂的环境配置,可以不用 docker compose,只需要简单提供一个空闲端口即可部署,所以最快捷的方式可以使用 Docker 直接拉取镜像进行部署。

1. 下载安装并配置 docker

安装后选择一个镜像存储路径:

2. 搜索并拉取 SearXNG 镜像

搜索栏输入 searxng

拉取镜像:

3. 运行镜像

拉取成功后来到 images 页面:

选择拉取的镜像点击运行:

打开设置项进行配置:

8085 端口为例:

运行成功后点击链接即可打开 SearXNG 的前端界面:

出现这个页面说明部署成功:

服务器部署

鉴于 Windows 下安装 Docker 是一件较为麻烦的事情,用户可以将 SearXNG 部署在服务器上,也可借此共享给其他人使用。但是很遗憾,SearXNG 自身暂不支持鉴权,导致他人可以通过技术手段扫描到并滥用你部署的实例。

为此,Cherry Studio 目前已支持配置 HTTP 基本认证(RFC7617),如果用户欲将自己部署的 SearXNG 暴露在公网环境下,请务必通过 Nginx 等反向代理软件配置 HTTP 基本认证。下面提供简要教程,需要你有基本的 Linux 运维知识。

部署 SearXNG

类似地,仍然使用 Docker 部署。假设你已经按照官方教程在服务器上安装好了最新版 Docker CE,以下提供一条龙命令,适用于 Debian 系统下全新安装:

如果你需要修改本地监听端口、复用本地已有的 nginx,可以编辑 docker-compose.yaml 文件,参考如下:

执行 docker compose up -d 启动。执行 docker compose logs -f searxng 可以看到日志。

部署 Nginx 反向代理和 HTTP 基本认证

如果你使用了一些服务器面板程序,例如宝塔面板或 1Panel,请参阅其文档添加网站并配置 nginx 反向代理,随后找到修改 nginx 配置文件的地方, 参考下面的示例进行修改:

假设 Nginx 配置文件保存于 /etc/nginx/conf.d 下,我们将将密码文件保存在同目录下。

执行命令(自行将 example_nameexample_password 替换为你将要设定的用户名和密码):

重启 Nginx(重载配置也可以)。

这时可以打开一下网页,已经会提示你输入用户名和密码,请输入前面设定的用户名和密码查看能否成功进入 SearXNG 搜索页面,藉此检查配置是否正确。

Cherry Studio 相关配置

SearXNG 本地或在服务器部署成功后,接下来是 CherryStudio 的相关配置。

来到网络搜索设置页面,选择 Searxng :

直接输入本地部署的链接发现验证失败,此时不用担心:

因为直接部署后默认并没有配置 json 返回类型,所以无法获取数据,需要修改配置文件。

回到 Docker,来到 Files 标签页找到镜像中找到带标签的文件夹:

展开后继续往下翻,会发现另一个带标签的文件夹:

继续展开,找到 settings.yml 配置文件:

点击打开文件编辑器:

找到 78 行,可以看到类型只有一个 html

添加 json 类型后保存,重新运行镜像

重新回到 Cherry Studio 进行验证,验证成功:

地址既可以填写本地: http://localhost : 端口号 也可以填写 docker 地址:http://host.docker.internal : 端口号

如果用户遵循前面的示例在服务器上部署并正确配置了反向代理,已经开启了 json 返回类型。输入地址后进行验证,由于已给反向代理配置了 HTTP 基本认证,此时验证则应返回 401 错误码:

在客户端配置 HTTP 基本认证,输入刚才设置的用户名与密码:

进行验证,应当验证成功。

其他配置

此时 SearXNG 已具备默认联网搜索能力,如需定制搜索引擎需要自行进行配置

需要注意的是此处首选项并不能影响大模型调用时的配置

如需配置需要大模型调用的搜索引擎,需在配置文件中设置:

配置语言参考:

若内容太长直接修改不方便,可将其复制到本地 IDE 中,修改后粘贴到配置文件中即可。

验证失败常见原因

返回格式未添加 json 格式

在配置文件中将返回格式加上 json:

未正确配置搜索引擎

Cherry Studio 会默认选取 categories 同时包含 web general 的引擎进行搜索,默认情况下会选中 google 等引擎,由于大陆无法直接访问 google 等网站导致失败。增加以下配置使得 searxng 强制使用 baidu 引擎,即可解决问题:

访问速率过快

searxng 的 limiter 配置阻碍了 API 访问,请尝试将其在设置中设为 false:

最后更新于

这有帮助吗?