AttributeError: ‘list’ object has no attribute ‘get’` crash).

用户在运行 Open WebUI 进行 RAG 文档处理时,尤其是在 Windows 环境下处理复杂 PDF 文件,或者使用了不兼容的新版 Tika Server 时,会触发 AttributeError: 'list' object has no attribute 'get' 崩溃。该报错直接导

AttributeError: 'list' object has no attribute 'get'` crash).

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 集成。

解决步骤

  1. 可优先尝试:检查 Tika 服务器返回的响应格式。如果使用的是标准 Tika Server,确认版本是否为兼容版本,或者考虑降级到已知稳定版本。
  2. 如果使用了自定义代理服务器(例如本 Issue 中提到的 FastAPI 代理),请确认代理返回的 JSON 格式是否为扁平字典:{"X-TIKA:content": "提取的文本内容"},而不是列表形式。
  3. 可优先尝试:在代理代码中强制将响应转换为字典格式。例如,在处理 PUT 请求时,读取二进制流后,确保返回的格式为:
    return {"X-TIKA:content": extracted_text}

    而不是返回列表。

  4. 如果使用了 Azure AI Foundry Mistral OCR,确保代理正确地将 Tika 协议转换为 Azure 接口,并在返回前格式化为正确字典。
  5. 如果问题仍然存在,请在 Open WebUI 配置中检查 Tika 端点 URL 是否正确指向了自定义代理。

验证方法

修改后,上传一个包含复杂排版(如表格、复选框)的 PDF 文件到 Open WebUI,观察 RAG 处理是否成功完成,不再报 AttributeError。可以在 Open WebUI 的日志中确认文件内容是否被正确提取并索引,同时检查是否出现了其他格式错误。

参考来源

open-webui/open-webui #27160

相关 Issues:

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 14072

发表回复

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