SearXNG与LLM强强联合:打造用户隐私保护的智能搜索解答流程,隐私无忧,搜索无忧
SearXNG 是一个免费的互联网元搜索引擎,整合了各种搜索服务的结果。用户不会被跟踪,也不会被分析。
功能特性
- 自托管,可以私有化部署
- 没有用户跟踪/没有分析
- 可以自定义设置脚本和 cookies
- 安全加密的连接
- 轻松整合了近200个搜索引擎,用户可自定义选择不同的引擎
- 多语言支持,约 60 个,包含中文、英文等
- 提供近 100 个维护良好的公共查询实例
安全保护
无论实例类型如何(私有、公共),SearXNG 都以多种方式保护用户的隐私。从搜索请求中删除私人数据有以下三种形式:- 从发送至搜索服务的请求中删除私人数据
- 不通过搜索服务转发来自第三方服务的任何内容(例如广告)
- 从进入结果页面的请求中删除私有数据
删除私人数据意味着不向外部搜索引擎发送 cookie 并为每个请求生成随机浏览器配置文件。因此,公共实例还是私有实例处理请求并不重要,因为在这两种情况下它都是匿名的。IP 地址将是实例的 IP。但 SearXNG 可以配置为使用代理或 Tor, 也支持结果代理。
与大多数搜索服务不同,SearXNG 不提供广告或跟踪内容。因此,私人数据不会被转发给可能利用其获利的第三方。除了保护用户免受搜索服务的影响之外,引用页面和搜索查询都对访问的结果页面隐藏。
1. docker镜像安装
2. 安装SearXNG
2.1 快速安装
#克隆项目
git clone https://github.com/searxng/searxng.git
cd searxng
#安装依赖
make install
#启动.
make run
可以通过浏览器访问 http://127.0.0.1:8888 来使用 SearXNG
2.2 docker cli
#新建文件夹 searxng 和 子目录
mkdir -p /www/algorithm/searxng
#进入 searxng 目录
cd /www/algorithm/searxng
#运行容器
docker run -d \
--name searxng \
--cap-drop ALL \
--cap-add CHOWN \
--cap-add SETGID \
--cap-add SETUID \
--log-driver json-file \
--log-opt max-size=1m \
--log-opt max-file=1 \
-p 9380:8080 \
-v $(pwd)/data:/etc/searxng:rw \
searxng/searxng:latest
更多设置参考官网:
- 修改 settings.yml
当安装 SearXNG 时,默认的输出格式是 HTML 格式。您需要激活 JSON 格式。请将以下行添加到 settings.yml 文件中。如前面的示例所示,settings.yml 文件位于 ${PWD}/searxng/settings.yml
#remove format to deny access, use lower case.
#formats: [html, csv, json, rss]
formats:
- html
- json # <-- 添加这一行
2.3 docker compose 安装
可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件,用转化工具可以很方便生成配置文件
version: '3.7'
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
ports:
- 9380:8080
volumes:
- ./data:/etc/searxng:rw
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
logging:
driver: 'json-file'
options:
max-size: '1m'
max-file: '1'
然后执行下面的命令
#新建文件夹 searxng 和 子目录
mkdir searxng
#进入 searxng 目录
cd searxng
#将docker-compose.yml 放入当前目录
#一键启动
docker compose up -d
- 运行
在浏览器中输入 http://IP:9380 就能看到搜索界面
先进 首选项
进行设置,任何更改都需要 保存 才能生效
- 关闭docker
docker ps
#在宿主机的终端中,运行以下命令来停止容器:
docker stop [容器名/容器id]
#如果 docker stop 命令不起作用,可以使用 docker kill 命令来强制退出容器
docker kill [容器名/容器id]
- 修改一下端口号
version: '3.7'
services:
searxng:
ports:
- 9380:9380
volumes:
- ${PWD}/searxng:/etc/searxng
environment:
- BASE_URL=http://0.0.0.0:9380/
- INSTANCE_NAME=searxng
image: searxng/searxng
3.结合LLM使用
- 正常使用
效果一般,还需要再加点其他搜索引擎源,好处是没有广告了
3.1 FreeAskInternet
第一步、用户提出问题
第二步、用 SearXNG(本地运行)在多个搜索引擎上进行搜索
第三步、将搜索结果传入 LLM 生成答案
相关项目参考:
- FreeAskInternet:https://github.com/nashsu/FreeAskInternet?tab=readme-ov-file
- 私有化AI搜索引擎FreeAskInternet:https://blog.csdn.net/wbsu2004/article/details/139570903
3.2 结合dify
目前用的是tavily 同理searxng也是同理
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。