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

相关链接

相关推荐
zwjapple1 小时前
docker-compose一键部署全栈项目。springboot后端,react前端
前端·spring boot·docker
子燕若水2 小时前
Unreal Engine 5中的AI知识
人工智能
极限实验室3 小时前
Coco AI 实战(一):Coco Server Linux 平台部署
人工智能
tan180°3 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
杨过过儿3 小时前
【学习笔记】4.1 什么是 LLM
人工智能
像风一样自由20203 小时前
HTML与JavaScript:构建动态交互式Web页面的基石
前端·javascript·html
巴伦是只猫3 小时前
【机器学习笔记Ⅰ】13 正则化代价函数
人工智能·笔记·机器学习
大千AI助手3 小时前
DTW模版匹配:弹性对齐的时间序列相似度度量算法
人工智能·算法·机器学习·数据挖掘·模版匹配·dtw模版匹配
AI生存日记4 小时前
百度文心大模型 4.5 系列全面开源 英特尔同步支持端侧部署
人工智能·百度·开源·open ai大模型