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

前言

我在一月份曾写过一篇 《AnythingLLM 接入 Web Search》的文章,当时浏览量无几,但没过几天就赶上了 DeepSeek R1 发布的热潮,各个平台都给我文章带了一波不小的流量,咱也算是赶上过风口的人了。

AnythingLLM 原生支持多个海外搜索引擎接口(Google/DuckDuckGo/Bing等),但国内使用常面临连个问题:网络访问限制企业合规风险 。本文介绍的SearXNG正是破解这一困局的利器。

SearXNG

什么是 SearXNG?

SearXNG 是一款免费、开源的元搜索引擎,能够聚合来自多达 229 个搜索服务的结果,同时保障用户隐私。SearXNG 不会跟踪用户行为或存储个人数据,避免个性化过滤和广告干扰。此外,它还支持通过 Tor 网络匿名访问,进一步增强安全性和隐私保护。

简单来说,SearXNG 就是一个可以私有部署的开源搜索引擎。

部署 SearXNG

我们直接通过 Docker 部署 SearXNG, 以简化部署的步骤,我在这里提供 docker-composedocker 命令两种部署方式,注意将端口和映射路径修改为自己的。

docker-compose

创建一个 docker-compose.yaml 文件

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

执行启动命令:

bash 复制代码
docker compose up -d

docker 命令安装

使用 docker 命令进行部署

bash 复制代码
mkdir my-searxng
cd my-searxng
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=searxng" \
             searxng/searxng

访问 SearXNG

部署完成之后,就可以在浏览器中访问 SearXNG 了: http://127.0.0.1:8080

配置 SearXNG

由于我们是需要 AnythingLLM 通过接口去调用 SearXNG, 所以需要让 SearXNG 支持返回 json 数据,一次我们还需要修改一下 SearXNG 的配置

在我们 docker 部署的脚本中,找到本地映射/etc/SearXNG的目录位置,该目录下会有一个 settings.yml 的文件

search.formats (第 80 行)下新增一行 - json 的配置。

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

bash 复制代码
docker restart <container-id>

然后访问:http://127.0.0.1:8080/search?q=deepseek&format=json,查看他是否返回 json 格式数据。

AnythingLLM 配置 SearXNG

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

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

bash 复制代码
http://192.168.1.100:8080/search  # 示例地址

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

测试 SearXNG 是否生效

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

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

结语

至此,我们已经成功安装部署了 SearXNG ,并且通过 AnythingLLM 实现了 SearXNG 的调用,通过 SearXNG 我们可以实现使用免费、私有的搜索引擎,不必考虑网络问题和费用问题。

相关链接

相关推荐
Moment几秒前
NestJS 在 2025 年:对于后端开发者仍然值得吗 😕😕😕
前端·后端·github
热心市民小岳几秒前
Konva.js 实现 腾讯文档 多维表格
前端·javascript
砺能2 分钟前
uniapp生成的app添加操作日志
前端·uni-app
小Dno17 分钟前
diff算法理解第一篇
前端
Java水解7 分钟前
【Spring】Spring事务和事务传播机制
后端·spring
文心快码BaiduComate7 分钟前
文心快码实测Markdown排版工具开发
前端·后端·程序员
杨超越luckly10 分钟前
HTML应用指南:利用GET请求获取全国沃尔沃门店位置信息
前端·arcgis·html·数据可视化·门店数据
用户9047066835715 分钟前
java hutool 跟 JSONUtil 的关系
后端
渣哥15 分钟前
原文来自于:[https://zha-ge.cn/java/128](https://zha-ge.cn/java/128)
javascript·后端·面试
渣哥16 分钟前
项目写得再多也没用!Spring Bean 的核心概念要是没懂,迟早踩坑
javascript·后端·面试