![issue: file['path'] field not set when attaching old files](https://www.chat-gpts.plus/wp-content/uploads/2026/06/26260-6fdb75e4.jpg)
issue: file[‘path’] field not set when attaching old files
快速结论:该问题发生在 Open WebUI v0.9.6 中,当用户在聊天中通过“attach file”(附件按钮)附加一个之前通过知识库上传过的文件时,file['path'] 字段可能缺失,导致前后端数据处理不一致。优先排查附件加载时的数据格式化路径是否统一使用了 FileModel/FilesTable 类。
问题场景
用户使用 Open WebUI(Docker 安装,v0.9.6,Ubuntu)时,在同一聊天会话中:
- 直接通过“上传文件”按钮上传文件,
file['file']['path']正常设置。 - 通过“attach knowledge”从知识库附加文件,
file['path']正常设置。 - 通过“attach file”(普通附件按钮)附加同一个已存在于知识库中的文件,
file['path']字段缺失。
用户检查 __metadata__['files'] 中的数据时发现该字段不完整。
报错原文
# 通过 attach knowledge 时 file['path'] 存在
{
'type': 'file',
'name': 'dasdasdas.txt',
'id': '1f019f11-fdcd-4074-9294-40f4a4ca67fb',
...
'path': '/app/backend/data/uploads/1f019f11-fdcd-4074-9294-40f4a4ca67fb_dasdasdas.txt',
'status': 'processed'
}
# 通过 attach file 时,数据对象中完全没有 'path' 字段
{
'id': '1f019f11-fdcd-4074-9294-40f4a4ca67fb',
'user_id': '7c6ccdc9-5015-4a22-9154-292f1bd6a50e',
'hash': '5fd924625f6ab16a19cc9807c7c506ae1813490e4ba675f843d5a10e0baacdb8',
'filename': 'dasdasdas.txt',
'data': {
'status': 'completed',
'content': 'asdasd'
},
'meta': { ... },
# 注意: 这里没有 path 字段
}
原因分析
可能的根本原因是“attach file”(普通附件)与“attach knowledge”(知识库附件)使用了不同的数据格式化路径。
- “attach knowledge” 路径可能调用了统一的 FileModel/FilesTable 数据处理,正确补充了
path字段。 - “attach file” 路径可能直接使用了原始的数据库查询结果或 API 响应,未经过 FileModel 类标准化,导致
path字段在特定场景下丢失。
Issue 的评论者(提议者)表示已通过 完全改用内部的 FileModel/FilesTable 类 来消除不同数据格式化路径的差异,这被视为修复方向。
环境排查
- 确认 Open WebUI 版本是否为 v0.9.6 或更早(问题在 v0.9.6 中被报告)。
- 确认 Docker 安装方式及后端数据卷挂载路径(如
/app/backend/data/uploads/)。 - 确认是否同时使用了知识库(Knowledge Base)功能与普通文件上传功能。
- 检查浏览器控制台日志(Console Logs)和 Docker 容器日志,看是否有相关错误。
解决步骤
- 升级:建议优先尝试升级到最新版本(问题报告在 v0.9.6,后续版本可能已修复),使用
docker pull ghcr.io/open-webui/open-webui:latest拉取最新镜像并重启容器。 - 检查代码改动:如果手头有源码或自定义开发,请确认后端在“attach file”的 API 端点中是否调用了 FileModel/FilesTable 类进行数据格式化。确保所有文件附件路径都经过统一的模型类处理。
- 可优先尝试:如果无法升级,可手动检查后端代码中处理“attach file”请求的函数,查找是否遗漏了
file['path']字段的赋值逻辑,参考 相关 Issue #26222 中关于知识库文件附加 API 行为的讨论,确保文件 ID 到路径映射的逻辑一致。 - 验证数据流:在“attach file”操作后,检查
__metadata__['files']中的对象结构是否与“attach knowledge”的对象结构一致(例如是否包含type、path等字段)。
验证方法
执行以下步骤确认修复:
- 重新上传一个文件到知识库。
- 在同一个或新的聊天中,点击“attach file”(普通附件按钮),选择该已存在的文件。
- 在浏览器开发者工具或日志中检查
__metadata__['files']对象,确认file['path']字段存在且指向正确的文件路径(如/app/backend/data/uploads/...)。 - 对比“upload files”和“attach knowledge”的行为,确保三者返回的
path字段均一致且完整。
参考来源
open-webui/open-webui #26260 issue: file[‘path’] field not set when attaching old files



