前言
我在一月份曾写过一篇 《AnythingLLM 接入 Web Search》 的文章,起初浏览量寥寥无几,但没过几天就赶上了 DeepSeek R1 发布的热潮,各个平台都给我的文章带来了一波不小的流量。咱也算是“站在风口上”的人了,虽然只是短暂地飞了一会儿。
AnythingLLM 原生支持多个海外搜索引擎接口(如 Google、DuckDuckGo、Bing 等),但在国内使用时,常常面临两大难题:网络访问限制和企业合规风险。尤其是网络访问限制,直接导致这些搜索引擎无法正常使用。而本文介绍的 SearXNG,正是破解这一困局的利器。它不仅能够使用国内搜索引擎,还能通过自托管的方式降低合规风险,为国内用户提供了一个稳定、灵活的搜索解决方案。
SearXNG
什么是 SearXNG?
SearXNG 是一款免费、开源的元搜索引擎,能够聚合来自多达 200 多个搜索服务的结果,同时为用户提供强大的隐私保护。与商业搜索引擎不同,SearXNG 不会跟踪用户行为或存储个人数据,避免了个性化过滤和广告干扰。此外,它还支持通过 Tor 网络进行匿名访问,进一步增强了安全性和隐私性。
简单来说,SearXNG 是一个可以私有化部署的开源搜索引擎,既满足了用户对隐私的需求,又提供了灵活的自定义选项。无论是个人使用还是企业部署,它都是一个值得信赖的搜索解决方案。
部署 SearXNG
我们直接通过 Docker 部署 SearXNG, 以简化部署的步骤,我在这里提供 docker-compose
和 docker
命令两种部署方式,注意将端口和映射路径修改为自己的。
docker-compose
创建一个 docker-compose.yaml
文件
services: server: image: searxng/searxng:latest container_name: searxng environment: - BASE_URL=http://localhost:8080 - INSTANCE_NAME=searxng restart: always volumes: - ${PWD}/searxng:/etc/searxng ports: - 8080:8080
执行启动命令:
docker compose up -d
docker 命令安装
使用 docker 命令进行部署
mkdir my-searxngcd my-searxngexport PORT=8080docker pull searxng/searxng
docker run --rm \ -d -p ${PORT}:8080 \ -v "${PWD}/searxng:/etc/searxng" \ -e "BASE_URL=http://localhost:$PORT/" \ -e "INSTANCE_NAME=searxng" \ searxng/searxng
访问 SearXNG
部署完成之后,就可以在浏览器中访问 SearXNG 了: http://127.0.0.1:8080
配置 SearXNG
SearXNG 的配置文件位于 Docker 部署脚本中映射的本地目录 /etc/SearXNG
下,其中包含一个名为 settings.yml
的文件。通过修改该文件,我们可以自定义 SearXNG 的行为,包括添加或调整搜索引擎。
配置搜索引擎
SearXNG 支持超过 200 个搜索引擎,但默认启用的并不多。特别是国内的搜索引擎,通常需要手动配置。如果你依赖国内的搜索引擎,可以按照以下步骤进行配置。
在 settings.yml
文件中,找到 engines:
部分(大约在第 340 行),并在其下方添加以下内容:
# 360 搜索 - name: 360search engine: 360search shortcut: 360so # 百度 - name: baidu engine: baidu shortcut: baidu # 搜狗 - name: sogou engine: sogou shortcut: sogou timeout: 5.0 # 搜狗有点慢,需要额外加点超时时长 # acfun - name: acfun engine: acfun shortcut: acf # 爱奇艺 - name: iqiyi engine: iqiyi shortcut: iq # 搜狗视频 - name: sogou_video engine: sogou_video shortcut: sogouv # 搜狗|微信 - name: sogou wechat engine: sogou_wechat short: sogouw
配置截图如下:
你还可以通过搜索 name: bing
关键字,启用 Bing 搜索引擎和 bilibili 搜索引擎。
测试网页
配置完成后,打开 SearXNG 并尝试搜索内容。在搜索结果页面的右侧,你可以看到各个搜索引擎的响应时间。如果发现某些搜索引擎超时,可能是因为这些搜索引擎位于国外,在没有科学上网的情况下无法访问。你可以在 【首选项】- 【搜索引擎】中关闭这些无法访问的引擎。如果某些搜索引擎响应较慢(如 360search 和 sogou),也可以选择关闭它们。
启用 JSON 数据
为了让 AnythingLLM 能够通过接口调用 SearXNG,我们需要让 SearXNG 支持返回 json
格式的数据。为此,我们需要修改 settings.yml
文件。
在 search.formats
部分(大约在第 80 行),添加 - json
配置项。
保存并退出后,重启 SearXNG 服务:
docker restart <container-id>
重启后,访问以下链接以测试是否返回 json
格式数据:
http://127.0.0.1:8080/search?q=deepseek&format=json
如果配置正确,你应该能够看到返回的 json
数据。
AnythingLLM 配置 SearXNG
SearXNG 我们已经部署并且配置好了,现在只需要给 AnythingLLM 进行配置即可
我们在 Web Search 里选择 SearXNG, 然后输入 BaseURL http://ip:port/search
http://192.168.1.100:8080/search # 示例地址
注意:
IP地址:不要使用127.0.0.1
,必须填写容器宿主机的真实局域网IP
网络策略:确保AnythingLLM容器与SearXNG容器网络互通
防火墙设置:开放SearXNG所在服务器的入站端口
测试 SearXNG 是否生效
在窗口中输入 @agent 请你帮我搜索 QwQ 大模型的评价
让 AI 通过浏览器搜索 QwQ 大模型的评价,可以在上面的步骤部分看到具体的调用过程。
可以看到,AnythingLLM 成功通过 SearXNG 获取到了 QwQ 大模型的相关资讯,并进行总结后回复。
结语
至此,我们已经成功完成了 SearXNG 的安装与部署,并通过 AnythingLLM 实现了对 SearXNG 的调用。借助 SearXNG,我们可以使用一个完全免费、私有化的搜索引擎,既无需担心网络访问限制,也无需考虑高昂的费用问题。这不仅为个人用户提供了更灵活的搜索选择,也为企业用户降低了合规风险,真正实现了高效、安全、隐私保护的搜索体验。
相关链接
AnythingLLM 接入 Web Search :https://mp.weixin.qq.com/s/POEwAb4s-SdXZl6Ar-0O4Q
SearXNG :https://docs.searxng.org/
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/10195.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~