DSH 模型不支持图片、发图报错怎么办?DeepSeek Harness 多模态模型配置与图片请求失败修复
DSH 报「the current model do not support image」,是因为手写模型默认按纯文本对待——附加图片在发送前就被拒,并点名具体模型。修复方式:在 settings.yaml 给该模型加 input: [text, image]。另外,老版本(rc.8 之前)图片过大或历史图片累计载荷过高还会导致请求直接失败,官方已在 v0.1.0-rc.8 修复,更新即解决。
报错含义:为什么模型「不支持图片」
没有机制能询问端点接受哪些模态,所以手动录入的模型默认纯文本——图片在发送前就被拒。 官方文档的原话很直白:手写的模型在声明之前按纯文本对待,给这种模型附加图片,会在发送前被拒绝,并点名模型(来源)。
三个要点:
- 这个拒绝发生在发送之前——不是端点拒绝的,是 dsh 自己拦下的。
- 报错会点名具体模型,告诉你到底是哪个模型不带图片能力。
- 手动录入的模型 = 你在设置里手写 ID 的模型;从目录添加的模型,由目录记录声明模态(来源)。
配置视觉模型:开启图片输入的完整步骤
给模型声明图片模态,一句话:在 settings.yaml 里加 input: [text, image]。 按下面 4 步配置:
- 打开配置文件:
$DSH_HOME/settings.yaml(没有就新建;这是 dsh 的全局设置文件)。 - 给单个模型声明图片:在对应 Provider 的
models里,给目标模型加input:yamlllm-pi-ai: providers: my-gateway: apiKeyEnv: GATEWAY_API_KEY api: openai-completions baseURL: https://gateway.example/v1 models: - id: vision-preview input: [text, image] # 声明这个模型支持图片 - 一条路由全部模型都要图片,写路由级回退:把
defaultInput写在路由上,只写一次:yamldefaultInput: [text, image] # 路由级回退,默认是 [text]defaultInput是回退不是覆盖:目录记录的模型有自己的模态,回退只作用于目录没描述的模型(来源)。 - 目录模型的覆盖用 modelOverrides:目录 Provider 没有
models列表可写,要按模型 ID 覆盖:配置改完下一次请求就生效,不用重启(来源)。yamlllm-pi-ai: providers: anthropic: modelOverrides: claude-sonnet-4-5: input: [text] # 按模型 ID 覆盖模态
版本修复故事:老版本图片请求失败,更新即解决
如果你已经配置了 input: [text, image] 还是发图失败,先看版本——老版本的已知 bug 就是发图失败。 v0.1.0-rc.8 的官方修复记录明确写了:修复了「图片尺寸过大或历史图片累计载荷过高导致模型请求失败」,以及「部分自定义 OpenAI 兼容网关因请求格式差异无法调用」(来源)。
这正好解释两种常见现象:
- 发小图没问题、发大图失败:老版本的载荷处理有上限,图片太大就把请求带崩了——rc.8 修复,更新即可。
- 多轮会话发过图片后,后续请求失败:历史图片累计载荷过高(同一会话反复带图),同样是 rc.8 修复的范围。
更新步骤:
- 查看当前版本与最新版本:
npm view @deepseek-ai/dsh version。 - 更新到最新版(一次性运行
npx @deepseek-ai/dsh web会拉最新;全局安装用npm update -g @deepseek-ai/dsh)。 - 更新后重启 Web UI、开新会话再发图验证。
注意事项
- 手写模型默认纯文本,「不支持图片」= 没声明
input,不是模型坏了。 - 声明模态用
input,但别声明端点实际不支持的模态——请求会被提供方拒绝(来源)。 defaultInput是回退不是覆盖,目录记录的模型按自己的记录走。- 老版本发图失败先更新(rc.8 修复),别反复改配置。
- 被拒的图片会留在会话日志里,改完配置要开新会话。
- DeepSeek 官方 chat-completions 路由纯文本,图片能力要接支持视觉的端点;模型管理类插件可在 DSH Plugin Hub 的模型分类下找。

常见问题
手动录入(手写)的模型默认按纯文本对待——没有任何机制能询问端点接受哪些模态,所以附加图片在发送前就被拒绝,并点名具体模型(官方文档原文)。需要给该模型声明 input: [text, image]。
打开 $DSH_HOME/settings.yaml,给对应 Provider 的模型加 input: [text, image];一条路由下所有手写模型都吃图片,可在路由上写一次 defaultInput: [text, image] 作为回退(默认是 [text])。目录模型没有 models 列表,要写在 modelOverrides 下按模型 ID 覆盖。
看情况。老版本(v0.1.0-rc.8 之前)图片尺寸过大、或历史图片累计载荷过高,会导致模型请求直接失败——这是官方修复记录里写明的问题,更新到新版本即可;如果确认是新版本,再检查 input 声明与端点是否真的支持图片。
你声明了端点实际不提供的图片能力:从授予它的位置移除 image——模型级的 input 或路由级的 defaultInput,然后开新会话(附加的图片会留在会话日志里,老会话会反复重试同一请求)。另外 rc.8 也修复了部分自定义 OpenAI 兼容网关因请求格式差异无法调用的问题,先更新再排查。
DeepSeek 官方 chat-completions 路由是纯文本的,声明 input 不会让它真的支持图片——请求会被提供方拒绝(官方文档原文)。要用图片能力,请接真正支持视觉模态的模型端点。
来源
- DeepSeek Harness 官方文档 - 配置模型(图片输入章节)· deepseek-ai
- DeepSeek Harness Release Notes(v0.1.0-rc.8:修复图片请求失败)· deepseek-ai