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

前言

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

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

SearXNG

什么是 SearXNG?

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

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

部署 SearXNG

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

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

相关链接

相关推荐
飞塔老梅子4 分钟前
16. M5 Max 128GB内存能支持的最大模型 (2) ❀ 老梅子学AI
人工智能·flash·本地大模型·lm studio·qwen3.8
web打印社区7 分钟前
JS 静默打印怎么做:纯前端为什么不行,以及最小可跑通写法
开发语言·前端·javascript·websocket·网络协议·http·pdf
jimmyleeee9 分钟前
大模型安全之三十八:AI 中的 DoS 攻击:当“拒绝服务”变成“拒绝钱包”
人工智能·安全
miofly10 分钟前
openJiuwen X-Router:自演进模型路由技术,让 Agent 成本降 50%
人工智能
Cosolar11 分钟前
云端部署阿里 Qwen-Image-2.1 保姆级教程
人工智能·后端·github
web打印社区13 分钟前
HTML5 静默打印:前端页面怎么调用打印机且尽量不弹窗
前端·javascript·vue.js·pdf·html·html5
Python大数据分析13 分钟前
开源免费、AI 驱动的 Web 打印设计器 OpenPrint:从拖拽设计到 ERP 对接全流程实战
前端·人工智能·开源
唐维康18 分钟前
昆明理工大学817通信工程考研名额一年比一年少
人工智能·考研·昆明理工大学·昆明理工大学通信考研
Sammyyyyy19 分钟前
结构化决策模型 Jev 实战笔记,3 个原语、4 个限制、5 个落地场景
人工智能·笔记·开发工具·编程语言
麦豆GEO19 分钟前
ToB企业的GEO战略:AI搜索时代,品牌如何构建知识资产与专业影响力
大数据·人工智能