网页搜索
Open WebUI 中的 Web Search 让语言模型能够访问互联网中的实时信息。当它没有按预期工作时,本指南可以帮助你诊断并解决常见问题。
常见 Web Search 问题
1. Web Search 在 HTTP 代理后失效
如果你把 Open WebUI 部署在 HTTP 代理后,可能会发现搜索查询本身可以成功(例如 SearXNG 能返回结果),但后续内容抓取会失败,并出现类似错误:
[Errno -3] Temporary failure in name resolutionConnection timeout to hostThe content provided is empty
这是因为网页内容抓取器默认不会使用你的 http_proxy/https_proxy 环境变量。
✅ 解决方法:
- 前往:管理面板 > 设置 > Web Search
- 启用 信任代理环境
- 保存修改
或者设置环境变量 WEB_SEARCH_TRUST_ENV:
WEB_SEARCH_TRUST_ENV=True这是一个 ConfigVar 变量,意味着它既可以在启动时通过环境变量设置,也可以通过管理面板 UI 配置。一旦你在 UI 中设置了它,数据库中的值就会优先生效。
这个设置会让 Open WebUI 的网页内容加载器遵循环境变量中的代理设置(http_proxy、https_proxy)。如果不开启,即使你的搜索引擎本身能通过代理工作,从返回 URL 抓取内容时仍然会失败。
2. 来自 SearXNG 的 403 Forbidden 错误
如果你使用的是 SearXNG,并在日志中看到 403 Client Error: Forbidden,通常说明没有启用 JSON 格式。
✅ 解决方法:
编辑你的 SearXNG settings.yml,并在 formats 列表中加入 json:
search:
formats:
- html
- json修改后重启 SearXNG。
3. 内容为空或结果质量差
如果 Web Search 返回空内容或结果质量很差,问题通常与上下文窗口大小或内容提取有关。
✅ 解决方法:
-
增大上下文长度:网页通常包含 4,000-8,000+ token。如果你的模型限制是 2048 token,那你实际上会丢掉大部分内容。请在 管理面板 > 模型 > 设置 > 高级参数 中将其提高到 16384+(低于这个值时,网页内容效果通常都比较差)。
-
检查结果数量:通过调整
WEB_SEARCH_RESULT_COUNT控制抓取的结果数。在 Native/Agentic 工具调用模式下,如果模型在
search_web中省略了count,Open WebUI 会默认使用WEB_SEARCH_RESULT_COUNT。如果模型提供了count,也会被限制在管理员配置的同一最大值以内。 -
尝试不同 loader:把
WEB_LOADER_ENGINE改为playwright以处理 JavaScript 较重的网站,或使用firecrawl/tavily获得更好的提取效果。 -
设置真实的 User-Agent:如果来自 Wikipedia、受 Cloudflare 保护的大型站点等来源的结果为空(或在日志中出现 403),说明默认的 Python
requests/aiohttpUA 被 反爬机制拦截了。请将USER_AGENT设置为真实的浏览器 UA(例如Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0 Safari/537.36)。该设置同时影响 Web 搜索的结果抓取与fetch_url工具。
关于上下文窗口问题的更多细节,请参阅 RAG 故障排查指南。
4. 连接超时
如果 Web Search 经常超时:
✅ 解决方法:
-
降低并发请求数:设置
WEB_SEARCH_CONCURRENT_REQUESTS=1,按顺序执行(Brave 免费层需要这样做)。 -
调整 loader 并发:如果同时抓取很多页面,请降低
WEB_LOADER_CONCURRENT_REQUESTS。 -
检查网络连通性:确认 Open WebUI 能访问搜索引擎以及搜索结果对应的 URL。
环境变量参考
完整的 Web Search 环境变量列表,请参阅 环境变量配置文档。
常用变量:
| 变量 | 说明 |
|---|---|
WEB_SEARCH_TRUST_ENV | 为内容抓取启用代理支持 |
WEB_SEARCH_RESULT_COUNT | 要抓取的搜索结果数量 |
WEB_SEARCH_CONCURRENT_REQUESTS | 向搜索引擎发起的并发请求数 |
WEB_LOADER_CONCURRENT_REQUESTS | 页面抓取并发数 |
WEB_LOADER_ENGINE | 内容提取引擎 |