网页搜索
Libre WebUI 可以搜索网页并将结果交给模型,无需 Libre WebUI 提供商账户或商业搜索 API 集成。搜索通过管理员选择的 SearXNG 实例运行。 SearXNG 再把查询发给其聚合的公共搜索引擎;这些引擎可以观察来自 SearXNG 部署的 请求,并应用各自的日志、保留和网络政策。
与所有双用途能力一样,该功能交付时关闭。管理员启用前,任何位置都不会出现 搜索界面。
工作原理
共有四个环节,每个环节只有在前一个存在时才可见:
- **后端可访问的 SearXNG 实例。**内置私有部署栈包含一个;任何启用 JSON API 的实例均可使用。
- 管理员设置 — 设置 > 连接 > 搜索(仅管理员)。填写 SearXNG URL, 打开启用网页搜索,并用测试连接发起真实查询来验证。
- 允许使用的人员 — 设置 → 用户管理中的网页搜索卡。关闭(默认)时,即使功能 已启用也仅限管理员;打开后所有活跃用户可用。后端会检查每个请求。
- 每次使用的控件:
- 聊天检索:编辑器中的地球按钮。启用后,模型规划聚焦关键词查询,可带 时效和类别提示。规划失败时 Libre 使用原始消息。结果作为上下文进入提示词, 回复显示编号的来源标签。不支持工具调用的模型也能使用。
- **聊天工具:**允许且支持工具的模型可在本轮工具开启时调用
web_search。 - **Work:**启用网络的任务在代理循环中获得
web_search。离线任务永远看不到 该工具,即使搜索请求实际从后端而非沙箱出站。
搜索失败不会使本轮失败;模型会在没有该上下文的情况下回答并继续运行。
使用内置栈设置
deploy/private/docker-compose.yml 已含 searxng 服务:仅内部可见、已加固,并通过
SEARXNG_URL=http://searxng:8080 预连接应用。
-
向
.env添加密钥:SEARXNG_SECRET=any-long-random-value -
docker compose up -d。 -
以管理员身份进入设置 > 连接 > 搜索;URL 已由环境预填,启用后选择 测试连接。
使用自己的 SearXNG
任何可访问实例均可,但必须在 settings.yml 中启用 JSON 格式(多数公共实例
会禁用):
search:
formats:
- html
- json
然后将基础 URL(如 http://127.0.0.1:8888 或 https://search.example.com)
粘贴到设置 > 连接 > 搜索。
环境变量
| 变量 | 默认值 | 用途 |
|---|---|---|
SEARXNG_URL | 未设置 | 预填搜索设置 URL;启用仍需管理员操作 |
启用状态和 URL 保存在数据库中,因此重启后仍有效,无需重新部署即可立即生效。
隐私与范围
- 搜索在服务器端运行,浏览器绝不直接联系 SearXNG。Libre WebUI 无需搜索提供商 账户,但自定义 SearXNG 可以为引擎配置自己的凭据。
- 搜索词会离开 Libre WebUI 发往 SearXNG,再到所选上游引擎。自托管网关可控制 这一跳,但不会自动让公共网页搜索变成本地或匿名。
- 结果文本进入模型上下文前受限(每项 500 个字符)。管理员可选择 1–100 项,
默认 6。仅保留
http(s)结果 URL。 - 内置实例只在栈内部网络可访问,因此关闭了速率限制;不要将其发布。
故障排除
编辑器没有地球按钮 / Work 中没有 web_search。搜索未启用(设置 > 连接 >
搜索)或账户未获权限;普通用户需要在设置 → 用户管理中打开网页搜索。
**测试连接返回 HTTP 403。**实例不允许 JSON 格式。把 json 加到
settings.yml 的 search.formats 并重启。
**测试连接无法访问服务。**URL 必须能从_后端_访问,而不是从浏览器访问。内置栈
使用 http://searxng:8080;容器内的 localhost 指向容器自身。
**回复忽略结果。**模型仍决定如何使用。问题具体时,小模型更容易遵循注入上下文; 回复下的来源始终显示实际检索内容。