issue: Content injection in chat with files attached to the chat directly with File Context off and Native tools on

用户在使用 Open WebUI 0.10.2 版本(通过 Git Clone 安装),部署于 Linux on Railway。在聊天界面直接上传 PDF 文件,并在设置中满足以下条件: - File Context:关闭 - Builtin Tools:开启 - 模型使用原生函数调用(Nativ

issue: Content injection in chat with files attached to the chat directly with File Context off and Native tools on

issue: Content injection in chat with files attached to the chat directly with File Context off and Native tools on

快速结论:当在 Open WebUI 中关闭 “File Context” 但开启 “Builtin Tools”(即原生函数调用模式)时,聊天中直接附加的 PDF 文件虽然能上传成功并显示元数据(文件名等),但模型无法通过内置工具可靠地读取文件实际内容。优先排查 “File Context” 开关状态与 “Builtin Tools” 的搭配,以及是否缺少 view_knowledge_file 等内置工具。

问题场景

用户在使用 Open WebUI 0.10.2 版本(通过 Git Clone 安装),部署于 Linux on Railway。在聊天界面直接上传 PDF 文件,并在设置中满足以下条件:
– File Context:关闭
– Builtin Tools:开启
– 模型使用原生函数调用(Native Function Calling)
– 未启用 Full Context
此时模型可感知文件存在(知晓文件名或元数据),但无法通过工具路径获取文件内容。用户指出此行为在前一两个版本中正常工作。

报错原文

the file exists;
the file metadata / filename may be visible;
the model knows that a document was attached;
but the model cannot reliably retrieve or read the file content unless File Context / Full Context is enabled.

用户还提到内置工具 view_knowledge_file 似乎已消失,没有其他工具能替代其功能。

原因分析

可能原因是 Open WebUI 在 “File Context Off” + “Builtin Tools On”(Native 模式)下,聊天附加文件的读取逻辑出现退化或回归,导致内置工具无法正确注入或访问 view_knowledge_file 等用于读取附加文件内容的工具。具体表现为:

  • 文件虽已上传(通过 /api/v1/files/?process=true),但模型在原生函数调用时拿不到文件 ID 或内容句柄。
  • 此问题与已知的多个 Issue 相关,特别是 #26708(在 File Context 关闭时暴露聊天附加知识给内置工具)、#26170(知识库文件在 Native 模式下为空)、#20851(view_knowledge_file 在 Native 模式下未注入)。
  • 用户确认此行为在之前版本正常,因此更可能是某次更新的副作用。

环境排查

  • Open WebUI 版本:0.10.2(用户报告时使用此版本,请确认是否已升级至修复版本)
  • 安装方式:Git Clone
  • 操作系统:Linux (Railway)
  • 模型后端:Ollama(版本未提供)
  • 关键设置
    • File Context:关闭
    • Builtin Tools:开启
    • Function Calling 模式:Native
    • Full Context:未启用
  • 相关 Issue 引用:#26708, #26170, #20851, #26301

解决步骤

注意:该 Issue 于 2026-07-03 关闭,但解决方案未在讨论中明确给出,以下步骤基于 Issue 讨论和开发分支的已知方向,为推测性解决方法。

  1. 升级 Open WebUI(可优先尝试)
    下载或拉取最新的开发分支(development branch),该分支可能已包含针对此问题的修复。原 Issue 提到“your issue might already be addressed on the development branch”。
  2. 检查内置工具列表
    在 Open WebUI 的“工作区”或“模型设置”中,确认 view_knowledge_file 工具是否已启用。如果该工具未出现,可能需要在原生模式下手动注入或开启对应的“知识工具”开关。
  3. 临时启用 Full Context 验证
    临时打开 File Context 或 Full Context,确认文件内容能被读取。若能读取,则问题确认为 File Context Off 下的工具路径缺陷。
  4. 切换至非原生函数调用模式
    将 Function Calling 模式从“Native”切换为其他模式(如“Builtin Tools Only”或“Default”),看文件读取功能是否恢复。这有助于判断问题是否特定于原生函数调用。
  5. 检查 API 日志
    查看 Docker 或 Open WebUI 的服务器日志,确认上传文件后工具调用时是否出现权限、ID 解析或路由错误。日志中可能包含 file_id is emptytool not found 等信息。

验证方法

在聊天中上传一个包含英文文本的 PDF 文件,关闭 File Context 并开启 Builtin Tools,然后给模型发送类似“请读取附件中的内容并总结”的指令。如果模型能返回文件中的实际文本(而非仅回复“您上传了一个文件”或返回空结果),则问题已解决。也可检查浏览器控制台或服务器日志,确认工具调用是否成功返回文件内容。

参考来源

open-webui/open-webui #26741

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 11312

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注