快速结论:该问题发生在 RAGFlow 使用 Go 语言实现的 Ollama 驱动调用多模态/视觉模型时——消息中的图片会被静默丢弃,模型只能收到纯文本。优先排查你是否使用了 RAGFlow 的 Go 路径(而非 Python 驱动)调用 Ollama 视觉模型;该问题已由 PR #17663 修复。
适用环境:RAGFlow 内部 Go 版 Ollama 实体驱动(internal/entity/models/ollama.go),涉及同步聊天与流式聊天(ChatWithMessages、ChatStreamlyWithSender);未确认具体操作系统、Python、CUDA、显卡版本信息。
最快修复方案:升级到包含 PR #17663 的 RAGFlow 版本。该修复在同步与流式两条路径中都将 Ollama 原生 images 数组注入第一条用户消息。需注意:此修复是 Issue 确认的已合并方案,但 Issue 未明确给出具体版本号,请在当前 RAGFlow 版本基础上拉取主分支或查看 Release 中包含 #17663 的最新版本。
注意事项:Issue 明确指出 #17639(仅删除死代码)不能解决此问题,请不要误用。修复针对 Go 路径;Python 端 OllamaCV 驱动本就有正确的图片附加能力,无需额外操作。升级后建议对文档/图片理解类场景重新验证图片是否真正送达模型。
问题场景
用户使用 RAGFlow 的 Go 版 Ollama 驱动,配合支持视觉/多模态的 Ollama 模型(例如用于文档或图片理解)时,触发图片被静默丢弃的问题。Issue 明确指向 internal/entity/models/ollama.go 中共享辅助函数 contentToText(L40-54),该函数只抽取消息中的文本部分,丢弃图片数据,导致同步与流式聊天接口均无法向模型传递 Ollama 原生 images 字段。
报错原文
[Go] Ollama: multimodal/vision requests drop images (no vision support)
The shared helper contentToText (L40-54) extracts only the text part of a message and discards images. Both ChatWithMessages and ChatStreamlyWithSender therefore serialize messages as plain role/content text with no images field.
原因分析
RAGFlow 包含两套 Ollama 集成路径:Python 驱动与 Go 驱动。Go 路径中,contentToText 函数将所有消息内容强制转成纯文本——意味着图片(即使已作为 base64 或 URL 传入)在序列化阶段被剥离。Python 的 OllamaCV 驱动(rag/llm/cv_model.py:812-815)会在第一条用户消息附加图片,而 Go 路径缺乏对应实现,因此走 Go 路径时多模态请求变成了“纯问文本”,但模型侧不报错,导致图片被静默丢失。
环境排查
- 确认实际走到的是 RAGFlow 的 Go 路径还是 Python 路径(
OllamaCV);Python 路径不受此 Bug 影响。 - 核对
internal/entity/models/ollama.go中contentToText被调用的位置(Issue 指出:98与:218,分别对应同步与流式接口)。 - 验证 Ollama 模型本身支持视觉/多模态输入(例如
llava类模型),并确认请求中确实包含图片数据。 - 检查 RAGFlow 版本是否已包含 PR #17663(修复内容)——不包含修复的版本才会出现此问题。
解决步骤
- 将 RAGFlow 升级到已合并 PR #17663 的版本(该 PR 同时覆盖同步和流式聊天路径,为第一条用户消息注入 Ollama 原生
images数组,支持 base64 字符串或 URL)。 - 如果无法立刻升版,可优先尝试:检查使用入口是否实际走了 Python 的
OllamaCV驱动(rag/llm/cv_model.py),该路径不受影响,能绕过 Go 路径的 Bug。 - 明确不要依赖 PR #17639 修复此问题——该 PR 仅删除了死代码,并未注入图片字段,无法解决视觉请求丢图问题。
- 在完成升级后,对发起视觉请求的代码路径做自查:确认请求中第一条用户消息确实包含多模态内容,而非纯文本(因为修复仅在存在多模态消息时才注入
images)。
验证方法
使用一个多模态/视觉模型(如图片理解场景)发起请求,并在模型侧确认收到的消息包含图片内容(可以检查 Ollama 请求日志中是否出现 images 字段且值非空)。对比升级前(图片被丢弃、模型只收到文本)与升级后的行为差异。若仍无法看到图片,则需检查请求的第一条消息是否真的携带了 base64 编码的图片数据。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


