[P1/高] DeepSeek Adapter 静默丢弃 images 字段,多模态输入完全不可用 #27

Open
opened 2026-07-21 21:55:54 +08:00 by thzxx · 0 comments
Owner

问题类型

缺陷 / 高 / LLM 适配器

文件位置

electron/harness/adapters/shared/openai-format.ts (buildOpenAICompatibleMessages)

问题描述

buildOpenAICompatibleMessages 处理 user 消息时未处理 images 字段:

if (msg.role === 'user') {
  return { role: 'user', content: msg.content };
}

DeepSeek Adapter 直接调用此函数,导致 msg.images 被静默丢弃。
用户上传的图片在 DeepSeek 模型下完全不生效,但 UI 显示已上传,造成误导。

(注:MiMo 之前有类似问题已修复,DeepSeek 仍存在)

影响

  • DeepSeek 用户多模态能力失效
  • 用户感知不到,浪费交互

建议修复

参考 Agnes Adapter 与 MiMo Adapter 实现:

if (msg.role === 'user') {
  if (msg.images && msg.images.length > 0) {
    return {
      role: 'user',
      content: [
        { type: 'text', text: msg.content },
        ...msg.images.map(img => ({
          type: 'image_url',
          image_url: { url: img },
        })),
      ],
    };
  }
  return { role: 'user', content: msg.content };
}

注意:DeepSeek API 当前可能不支持多模态,应:

  1. 检查模型能力(如 deepseek-vl 支持)
  2. 不支持时显式报错而非静默丢弃
## 问题类型 缺陷 / 高 / LLM 适配器 ## 文件位置 `electron/harness/adapters/shared/openai-format.ts` (buildOpenAICompatibleMessages) ## 问题描述 buildOpenAICompatibleMessages 处理 user 消息时未处理 `images` 字段: ```ts if (msg.role === 'user') { return { role: 'user', content: msg.content }; } ``` DeepSeek Adapter 直接调用此函数,导致 `msg.images` 被静默丢弃。 用户上传的图片在 DeepSeek 模型下完全不生效,但 UI 显示已上传,造成误导。 (注:MiMo 之前有类似问题已修复,DeepSeek 仍存在) ## 影响 - DeepSeek 用户多模态能力失效 - 用户感知不到,浪费交互 ## 建议修复 参考 Agnes Adapter 与 MiMo Adapter 实现: ```ts if (msg.role === 'user') { if (msg.images && msg.images.length > 0) { return { role: 'user', content: [ { type: 'text', text: msg.content }, ...msg.images.map(img => ({ type: 'image_url', image_url: { url: img }, })), ], }; } return { role: 'user', content: msg.content }; } ``` 注意:DeepSeek API 当前可能不支持多模态,应: 1. 检查模型能力(如 deepseek-vl 支持) 2. 不支持时显式报错而非静默丢弃
thzxx added the LLM?????? labels 2026-07-21 21:55:54 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MetonaTeam/metona-ai-desktop#27