
issue: Web Search with Gemini via OpenAI-Compatible Endpoint results in silent empty response
快速结论:当 Open WebUI 使用 Google 官方提供的 OpenAI 兼容端点(OpenAI-shaped endpoint)连接 Gemini 模型并开启 Web Search 时,模型返回空响应("content": "")。优先排查是否使用了 Google 原生 Gemini API 连接方式,而非 OpenAI 兼容端点。
问题场景
用户使用 Open WebUI v0.10.2 (Docker 部署,操作系统 Debian 13),通过配置 OpenAI API 连接指向 Google 官方的 OpenAI 兼容端点 https://generativelanguage.googleapis.com/v1beta/openai/,搭配有效的 Gemini API Key 并使用 Gemini 模型(例如 models/gemini-3.5-flash)。同时启用 Web Search 功能(配置了 SearXNG 或 Brave 搜索工具),期望模型在收到需要上下文搜索的 prompt(例如 “tell me latest UK news from today”)时,能够执行搜索并将结果注入模型 payload 后进行总结回复。实际表现为:后端返回 200 OK,但 UI 显示完全空白的回复气泡,数据库记录的 content 为空字符串 "",容器日志无任何 python 回溯或错误信息。
报错原文
Backend returns 200 OK, but raw message object in SQLite contains: ""content": ""
无可见的 Python traceback 或其他错误日志。
原因分析
根据 Issue 讨论,该问题的核心原因很可能在于 Google 的 OpenAI 兼容端点(OpenAI-shaped endpoint)与 OpenAI Chat Completions 标准存在不完全兼容。具体来说:
- Google 的 OpenAI 兼容端点并非完全符合 OpenAI Chat Completions 规范,它只是一个“外形相似”(OpenAI-shaped)的 API。
- 较新的 Gemini 模型(尤其是带有推理/思考功能的模型)要求客户端在每次新的 chat completion 中保存并发送特定的“思考签名”(thought signatures)等额外字段,这些字段不在 OpenAI Chat Completions 标准 schema 中,因此 Open WebUI 作为客户端无法支持,导致模型返回空响应。
- 此问题在 v0.10.1 中偶发,v0.10.2 后变为持续/完全失效。它并非只影响 SearXNG,使用 Brave 搜索时也同样出现,因此问题定位是 Gemini 模型与 Web Search 功能的整体兼容性故障。
注意:此推测基于 Issue 中维护者的建议:Google 的 OpenAI 兼容端点不可靠,推荐使用 Open WebUI 的 Google 原生 API 连接方式(但讨论指出 Open WebUI 目前并无原生 Google API 后端支持标志)。因此,目前推荐的解决方案是使用 OpenRouter 或 LiteLLM 等 API 网关。
环境排查
- Open WebUI 版本:确认为 0.10.2(Docker 部署,操作系统:Debian 13)。该问题可能也存在于其他版本。
- Gemini API 连接方式:确认是使用 Google 官方 OpenAI 兼容端点(
https://generativelanguage.googleapis.com/v1beta/openai/)而非 Google 原生 API(若 Open WebUI 原生支持)。 - Web Search 工具:确认使用了 SearXNG 或 Brave,且配置正确(已在容器内通过 curl 测试 SearXNG JSON 返回正常)。
- 浏览器/后端日志:确认无 Python 回溯或错误日志;UI 显示空白气泡,数据库 content 字段为空字符串。
解决步骤
- 更换 Gemini 连接方式(可能原因,可优先尝试):改用 OpenRouter 或 LiteLLM 作为 API 网关,通过它们连接 Gemini 模型。这些网关能够处理 Gemini 的额外字段需求并转化为标准的 OpenAI Chat Completions 格式。
- 或使用自定义管道(custom pipe):根据 Issue 讨论,可以编写自定义管道来适配 Gemini 的特定要求。
- 如果坚持使用 Google 官方 OpenAI 兼容端点,请知悉可能存在兼容性问题,并且该问题目前无官方修复计划(因为是底层 schema 差异所致)。
验证方法
完成步骤 1 或 2 后,重新在 Open WebUI 中开启 Web Search,选择一个 Gemini 模型(如 models/gemini-3.5-flash)并提交一个需要实时信息的 prompt(如 “tell me latest UK news from today”)。如果后端不再返回空 content 且 UI 正常显示回复内容,则问题解决。同时检查后端日志、浏览器网络请求(POST /api/chat/completions 响应)以及数据库记录确认 content 不为空。



