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_name、example_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: