
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 讨论和开发分支的已知方向,为推测性解决方法。
- 升级 Open WebUI(可优先尝试)
下载或拉取最新的开发分支(development branch),该分支可能已包含针对此问题的修复。原 Issue 提到“your issue might already be addressed on the development branch”。 - 检查内置工具列表
在 Open WebUI 的“工作区”或“模型设置”中,确认view_knowledge_file工具是否已启用。如果该工具未出现,可能需要在原生模式下手动注入或开启对应的“知识工具”开关。 - 临时启用 Full Context 验证
临时打开 File Context 或 Full Context,确认文件内容能被读取。若能读取,则问题确认为 File Context Off 下的工具路径缺陷。 - 切换至非原生函数调用模式
将 Function Calling 模式从“Native”切换为其他模式(如“Builtin Tools Only”或“Default”),看文件读取功能是否恢复。这有助于判断问题是否特定于原生函数调用。 - 检查 API 日志
查看 Docker 或 Open WebUI 的服务器日志,确认上传文件后工具调用时是否出现权限、ID 解析或路由错误。日志中可能包含file_id is empty或tool not found等信息。
验证方法
在聊天中上传一个包含英文文本的 PDF 文件,关闭 File Context 并开启 Builtin Tools,然后给模型发送类似“请读取附件中的内容并总结”的指令。如果模型能返回文件中的实际文本(而非仅回复“您上传了一个文件”或返回空结果),则问题已解决。也可检查浏览器控制台或服务器日志,确认工具调用是否成功返回文件内容。

![[Model provider]Can't remove model](https://www.chat-gpts.plus/wp-content/uploads/2026/07/38388-fd7a407f-768x403.jpg)
![[Model provier] Duplicate entries are created when adding a model authentication provider.](https://www.chat-gpts.plus/wp-content/uploads/2026/07/38381-1eed626b-768x403.jpg)
![[Model provider]Authorization removed](https://www.chat-gpts.plus/wp-content/uploads/2026/07/38383-86b80f6d-768x403.jpg)