[Bug]: Image Recognition Regression in Chat Assistant after Authorization Fix

用户在 RAGFlow(Commit ID: d8752db, Image: v0.17.2 full)的聊天助手(Chat Assistant)窗口中上传图片(JPG/PNG)时触发,表现为图片识别失效、重复授权报错及模型 API 断连。用户先后应用了 Commit cc8029a(修复图片识别)

[Bug]: Image Recognition Regression in Chat Assistant after Authorization Fix

[Bug]: Image Recognition Regression in Chat Assistant after Authorization Fix

快速结论:在 RAGFlow v0.17.2 full 版本中,修复聊天助手图片识别(Commit cc8029a)与修复授权错误(PRs #6516 / #6756)存在冲突,导致修复一个问题就会破坏另一个问题。优先排查三个核心文件(rag/llm/__init__.pyrag/llm/cv_model.pyrag/nlp/search.py)中 PNG 图片处理逻辑是否完整。

问题场景

用户在 RAGFlow(Commit ID: d8752db, Image: v0.17.2 full)的聊天助手(Chat Assistant)窗口中上传图片(JPG/PNG)时触发,表现为图片识别失效、重复授权报错及模型 API 断连。用户先后应用了 Commit cc8029a(修复图片识别)和 PRs #6516 / #6756(修复授权错误),但两者互相冲突,无法同时正常工作。

报错原文

109 No authorization. (持续出现在聊天助手窗口,上传文件后立即触发)

以及图片识别失败(JPG 格式在 Commit cc8029a 后可识别,PNG 格式始终不识别)。

原因分析

可能原因:近期代码库的授权修复与图片识别模块之间存在系统级冲突。具体表现为:

  • Commit cc8029a 修改了 rag/llm/__init__.pyrag/llm/cv_model.pyrag/nlp/search.py 三个文件,成功恢复了 JPG 图片识别,但 PNG 格式处理逻辑可能不完整,且将所有上传图片无差别地推入知识库(KB)。
  • PRs #6516 / #6756 修改了 web/src/hooks/document-hooks.ts,修复了 “109 No authorization.” 错误,但该修改可能删除了知识库中的上传文件,导致图片识别所需的文件路径或状态丢失,使图片识别功能再次退化。
  • 模型 API 的随机断连问题可能与环境配置(如 .envdocker-compose.yml)或认证状态有关,并非由单一代码变更引起。

环境排查

  • 确认 RAGFlow 镜像版本:v0.17.2 full,Commit ID:d8752db
  • 检查 rag/llm/__init__.pyrag/llm/cv_model.pyrag/nlp/search.py 是否已按 Commit cc8029a 更新
  • 检查 web/src/hooks/document-hooks.ts 是否已按 PRs #6516 / #6756 修改
  • 确认 .envdocker-compose.yml 中的模型 API 配置(如 OpenAI、自定义模型)是否正确,未因权限修复而被覆盖
  • 测试时分别使用 JPG 和 PNG 格式图片,记录是否成功识别

解决步骤

  1. 备份当前修改:将已修改的 rag/llm/__init__.pyrag/llm/cv_model.pyrag/nlp/search.pyweb/src/hooks/document-hooks.ts 备份到独立目录。
  2. 回退至干净版本:从原始 Commit d8752db 开始,确保两个修复均未应用。
  3. 分别测试单个修复:
    • 先仅应用 Commit cc8029a 的修改,测试 JPG 和 PNG 图片识别是否分别正常,并检查是否触发授权错误。
    • 再仅应用 PRs #6516 / #6756 的修改,测试授权错误是否消失,同时检查图片识别是否正常。
  4. 有序合并修复:尝试先应用 Commit cc8029a(图片识别),再在此基础上应用 PRs #6516 / #6756(授权修复) —— 看 Issue 描述,此顺序会导致图片识别失效。可优先尝试反向顺序:先应用 PRs #6516 / #6756,再应用 Commit cc8029a,观察是否同时生效。
  5. 检查 PNG 处理逻辑:rag/llm/cv_model.py 中确认是否包含对 PNG 格式的显式处理(如 MIME 类型判断、图像解码逻辑)。如果只有 JPG 相关代码,需补充 png 对应的处理分支。
  6. 控制图片入库逻辑:rag/nlp/search.py 或相关配置文件中查找图片是否默认自动入库的条件,根据需求调整代码,避免所有上传图片均被推入知识库。
  7. 修复模型 API 断连:如果模型 API 无法连接,检查 Settings → Model 页面中模型 API 密钥是否被意外清除,或环境变量中的认证信息是否与前端配置一致。必要时在 .env 中重新设置并重启容器。

验证方法

在聊天助手窗口中分别上传 JPG 和 PNG 格式图片,观察:

  • 图片是否被正确识别并显示(而非仅显示为文件或报错)。
  • 上传后是否不再出现 “109 No authorization.” 提示。
  • 图片是否按预期进入知识库(如果不需要自动入库,检查是否未推送)。
  • Settings → Model 页面中的模型 API 是否能正常连接和添加。

如果三项均正常,说明冲突已解决。

参考来源

infiniflow/ragflow #6822

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 8166

发表回复

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