08
2025
04
03:08:45

AnythingLLM + SearXNG 实现私有搜索引擎代理

AnythingLLM + SearXNG 实现私有搜索引擎代理

前言

我在一月份曾写过一篇 《AnythingLLM 接入 Web Search》 的文章,起初浏览量寥寥无几,但没过几天就赶上了 DeepSeek R1 发布的热潮,各个平台都给我的文章带来了一波不小的流量。咱也算是“站在风口上”的人了,虽然只是短暂地飞了一会儿。

AnythingLLM 原生支持多个海外搜索引擎接口(如 Google、DuckDuckGoBing 等),但在国内使用时,常常面临两大难题:网络访问限制企业合规风险。尤其是网络访问限制,直接导致这些搜索引擎无法正常使用。而本文介绍的 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

AnythingLLM + SearXNG 实现私有搜索引擎代理

配置 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

配置截图如下:

AnythingLLM + SearXNG 实现私有搜索引擎代理

你还可以通过搜索 name: bing 关键字,启用 Bing 搜索引擎和 bilibili 搜索引擎。

AnythingLLM + SearXNG 实现私有搜索引擎代理

测试网页

配置完成后,打开 SearXNG 并尝试搜索内容。在搜索结果页面的右侧,你可以看到各个搜索引擎的响应时间。如果发现某些搜索引擎超时,可能是因为这些搜索引擎位于国外,在没有科学上网的情况下无法访问。你可以在 【首选项】- 【搜索引擎】中关闭这些无法访问的引擎。如果某些搜索引擎响应较慢(如 360search 和 sogou),也可以选择关闭它们。

AnythingLLM + SearXNG 实现私有搜索引擎代理

启用 JSON 数据

为了让 AnythingLLM 能够通过接口调用 SearXNG,我们需要让 SearXNG 支持返回 json 格式的数据。为此,我们需要修改 settings.yml 文件。

在 search.formats 部分(大约在第 80 行),添加 - json 配置项。

AnythingLLM + SearXNG 实现私有搜索引擎代理

保存并退出后,重启 SearXNG 服务:

docker restart <container-id>

重启后,访问以下链接以测试是否返回 json 格式数据:

http://127.0.0.1:8080/search?q=deepseek&format=json

如果配置正确,你应该能够看到返回的 json 数据。

AnythingLLM + SearXNG 实现私有搜索引擎代理

AnythingLLM 配置 SearXNG

SearXNG 我们已经部署并且配置好了,现在只需要给 AnythingLLM 进行配置即可

我们在 Web Search 里选择 SearXNG, 然后输入 BaseURL http://ip:port/search

http://192.168.1.100:8080/search  # 示例地址

AnythingLLM + SearXNG 实现私有搜索引擎代理

注意:
IP地址:不要使用127.0.0.1,必须填写容器宿主机的真实局域网IP
网络策略:确保AnythingLLM容器与SearXNG容器网络互通
防火墙设置:开放SearXNG所在服务器的入站端口

测试 SearXNG 是否生效

在窗口中输入 @agent 请你帮我搜索 QwQ 大模型的评价 让 AI 通过浏览器搜索 QwQ 大模型的评价,可以在上面的步骤部分看到具体的调用过程。

可以看到,AnythingLLM 成功通过 SearXNG 获取到了 QwQ 大模型的相关资讯,并进行总结后回复。

AnythingLLM + SearXNG 实现私有搜索引擎代理

结语

至此,我们已经成功完成了 SearXNG 的安装与部署,并通过 AnythingLLM 实现了对 SearXNG 的调用。借助 SearXNG,我们可以使用一个完全免费、私有化的搜索引擎,既无需担心网络访问限制,也无需考虑高昂的费用问题。这不仅为个人用户提供了更灵活的搜索选择,也为企业用户降低了合规风险,真正实现了高效、安全、隐私保护的搜索体验。

相关链接




推荐本站淘宝优惠价购买喜欢的宝贝:

AnythingLLM + SearXNG 实现私有搜索引擎代理

本文链接:https://hqyman.cn/post/10195.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: