
AttributeError: ‘list’ object has no attribute ‘get’ crash 解决方案
快速结论:此报错通常出现在 Open WebUI 的 RAG 文件内容提取流程中,当 Tika 服务器返回的响应格式不符合 Open WebUI 内部 Loader 期望的扁平字典结构时触发。优先排查 Tika 版本兼容性或是否使用了自定义代理导致返回了列表格式。
问题场景
用户在运行 Open WebUI 进行 RAG 文档处理时,尤其是在 Windows 环境下处理复杂 PDF 文件,或者使用了不兼容的新版 Tika Server 时,会触发 AttributeError: 'list' object has no attribute 'get' 崩溃。该报错直接导致文件内容提取失败,影响 RAG 索引构建。
报错原文
AttributeError: 'list' object has no attribute 'get'
该错误通常出现在 Open WebUI 的 Loader.load() 方法中,当它使用 .get() 操作来获取字典中的键值时,却收到了一个列表对象。
原因分析
可能原因:Open WebUI 内部的文件加载器期望 Tika 服务器返回一个扁平化的字典格式(如 {"X-TIKA:content": extracted_text}),但某些自定义代理或新版 Tika 服务器返回的是列表包裹的字典格式(如 [{"X-TIKA:content": "..."}]),导致 .get() 方法在列表对象上无法调用,从而引发 AttributeError。
该 Issue 提出的解决方案是通过一个自定义的 FastAPI 代理服务器,在将响应返回给 Open WebUI 之前,确保格式符合预期的扁平字典结构。
环境排查
- 确认 Open WebUI 的版本(例如是否有更新到支持自定义 Tika 地址的版本)。
- 确认 Tika 服务器的版本(新版本 Tika Server 可能存在格式变更)。
- 确认是否使用了自定义的 Tika 代理脚本(如本 Issue 讨论的 FastAPI 代理)。
- 确认操作系统是否为 Windows(本 Issue 特别提到了 Windows 上的兼容性问题)。
- 确认是否配置了 Azure AI Foundry Mistral OCR 集成。
解决步骤
- 可优先尝试:检查 Tika 服务器返回的响应格式。如果使用的是标准 Tika Server,确认版本是否为兼容版本,或者考虑降级到已知稳定版本。
- 如果使用了自定义代理服务器(例如本 Issue 中提到的 FastAPI 代理),请确认代理返回的 JSON 格式是否为扁平字典:
{"X-TIKA:content": "提取的文本内容"},而不是列表形式。 - 可优先尝试:在代理代码中强制将响应转换为字典格式。例如,在处理
PUT请求时,读取二进制流后,确保返回的格式为:return {"X-TIKA:content": extracted_text}而不是返回列表。
- 如果使用了 Azure AI Foundry Mistral OCR,确保代理正确地将 Tika 协议转换为 Azure 接口,并在返回前格式化为正确字典。
- 如果问题仍然存在,请在 Open WebUI 配置中检查 Tika 端点 URL 是否正确指向了自定义代理。
验证方法
修改后,上传一个包含复杂排版(如表格、复选框)的 PDF 文件到 Open WebUI,观察 RAG 处理是否成功完成,不再报 AttributeError。可以在 Open WebUI 的日志中确认文件内容是否被正确提取并索引,同时检查是否出现了其他格式错误。
参考来源
相关 Issues:



