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 我们可以实现使用免费、私有的搜索引擎,不必考虑网络问题和费用问题。

相关链接

相关推荐
vortex52 分钟前
深度字典攻击(实操笔记·红笔思考)
前端·chrome·笔记
我是伪码农3 分钟前
Vue 1.30
前端·javascript·vue.js
叶庭云5 分钟前
AI Agent KernelCAT:深耕算子开发和模型迁移的 “计算加速专家”
人工智能·运筹优化·算子·ai agent·kernelcat·模型迁移适配·生态壁垒
码农三叔8 分钟前
(8-2)传感器系统与信息获取:外部环境传感
人工智能·嵌入式硬件·数码相机·机器人·人形机器人
小宇的天下9 分钟前
innovus/virtuoso/ICC2 三大工具的工艺文件有什么区别?
人工智能
产品经理邹继强9 分钟前
VTC营销与增长篇④:增长战略全景图——构建自驱进化的VTC增长飞轮
人工智能
2401_8322981011 分钟前
阿里云倚天ECS实例,Arm架构重构算力性价比范式
人工智能
利刃大大11 分钟前
【Vue】默认插槽 && 具名插槽 && 作用域插槽
前端·javascript·vue.js
艳阳天_.15 分钟前
web 分录科目实现辅助账
开发语言·前端·javascript
Jiede119 分钟前
LSTM详细介绍(基于股票收盘价预测场景)
人工智能·rnn·lstm