让纯文本模型借助视觉模型读懂图片内容
29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wang90/dsh-image-reader该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 41 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 纯文本模型读图
- 借助视觉模型理解图片
DSH 插件,让纯文本的 DeepSeek Harness 模型借助独立的视觉模型看懂图片。
README
由 DeepSeek 最新模型翻译生成dsh-image-reader
test
一个不依赖第三方 npm 包的 DSH(DeepSeek Harness)插件,让只支持文本的模型也能“看懂”图片。
它通过 DSH 的 ctx.llm 服务调用视觉模型,不会把图片塞给当前文本模型,也不会要求切换主模型:
- 允许当前文本模型接收图片附件:advertiseImage 会让 DSH 的图片准入与 Web UI 认为当前模型支持图片,避免出现“当前模型不支持图片,请切换模型”。
- 自动识别用户附加的图片:在 agent/pre-step 阶段发现用户消息里的 ImageBlock,用视觉模型生成文字描述,并作为插件上下文追加到同一步。主文本模型实际不会收到图片,适配器会把它投影成占位文本,因此不会报 UNSUPPORTED_CONTENT。
- 自动识别工具返回的图片:tools/post-execute 会处理 read_image 等工具结果里的图片,把视觉描述追加到工具结果中。
- 提供 describe_image 工具:模型可以读取本地 PNG/JPEG/WebP/GIF 文件,调用视觉模型后返回文字描述/OCR 结果。它与内置 read_image 不冲突;内置工具需要当前模型支持图片输入,本工具专门补足文本模型场景。
展开完整文档(README 剩余 1 节)
dsh-image-reader
test
一个不依赖第三方 npm 包的 DSH(DeepSeek Harness)插件,让只支持文本的模型也能“看懂”图片。
它通过 DSH 的 ctx.llm 服务调用视觉模型,不会把图片塞给当前文本模型,也不会要求切换主模型:
- 允许当前文本模型接收图片附件:advertiseImage 会让 DSH 的图片准入与 Web UI 认为当前模型支持图片,避免出现“当前模型不支持图片,请切换模型”。
- 自动识别用户附加的图片:在 agent/pre-step 阶段发现用户消息里的 ImageBlock,用视觉模型生成文字描述,并作为插件上下文追加到同一步。主文本模型实际不会收到图片,适配器会把它投影成占位文本,因此不会报 UNSUPPORTED_CONTENT。
- 自动识别工具返回的图片:tools/post-execute 会处理 read_image 等工具结果里的图片,把视觉描述追加到工具结果中。
- 提供 describe_image 工具:模型可以读取本地 PNG/JPEG/WebP/GIF 文件,调用视觉模型后返回文字描述/OCR 结果。它与内置 read_image 不冲突;内置工具需要当前模型支持图片输入,本工具专门补足文本模型场景。
默认使用 DeepSeek 官方适配器内的视觉模型:
provider: deepseek-official
model: deepseek-v4-flash-vision-exp
因此通常直接复用 DSH 已经配置好的 DEEPSEEK_API_KEY,无需另配 OpenAI Key。
安装
方式一:作为 DSH bundle 安装(推荐)
包内已经提供 package.json 的 dsh.bundle.patch 和 cordis.patch.yml,可以直接被 dsh plugin 安装:
从 npm 安装
dsh plugin --profile web add dsh-image-reader
或从 GitHub 安装
dsh plugin --profile web add github:wang90/dsh-image-reader
或安装本地 checkout
dsh plugin --profile web add ./dsh-image-reader
安装后重启 DSH Web。
方式二:手动 profile patch
把下面一行加入 $DSH_HOME/profiles/web/cordis.patch.yml(路径按实际 clone 位置调整):
- insert:
- id: image-reader
name: '/absolute/path/to/dsh-image-reader/image-reader.mjs'
config:
advertiseImage: true
describeToolImages: true
patchReload: live 的 profile 会在保存 patch 后热加载插件;普通启动则重启 DSH Web 后生效。
使用
1. 用户直接附加图片
直接在 Web UI 里附加图片并发送。主模型收到请求前,插件会:
1. 找到消息中的图片附件;
2. 调用 deepseek-v4-flash-vision-exp 识别;
3. 把识别结果作为一条 plugin 来源的上下文插入用户消息之后;
4. 主模型继续按原来的文本模型运行。
原始图片仍保存在会话历史中;以后切换到支持视觉的模型时仍然可以直接查看原图。
2. 模型读取本地图片
模型可以调用:
{
"file_path": "/path/to/image.png",
"prompt": "只看左上角的报错信息,逐字转录" }
返回:
{
"text": "视觉模型给出的描述/OCR 结果", "model": "deepseek-official/deepseek-v4-flash-vision-exp", "path": "...", "mediaType": "image/png", "bytes": 12345, "width": 800, "height": 600 }
相对路径按当前会话工作区解析,并使用 ctx.fs,因此仍受文件系统 sandbox 约束。
配置
在 patch 的插件行里可加 config:
- insert:
- id: image-reader
name: '/absolute/path/to/dsh-image-reader/image-reader.mjs'
config:
provider: deepseek-official
model: deepseek-v4-flash-vision-exp
auto: true
tool: true
cache: true
skipVisionModel: true
advertiseImage: true
describeToolImages: true
maxImagesPerStep: 8
maxOutputTokens: 2048
timeoutMs: 120000
maxDescriptionChars: 12000
maxToolImageBytes: 20971520
reasoningEffort: 'off'
prompt: |
请仔细识别并描述这张图片……
全部字段都有默认值;只在需要时覆盖即可。
| 字段 | 默认值 | 说明 |
| provider | deepseek-official | 调用视觉模型的 DSH provider |
| model | deepseek-v4-flash-vision-exp | 必须是声明了 image 输入模态的模型 |
| auto | true | 是否自动识别用户附加图片 |
| tool | true | 是否注册 describe_image 工具 |
| cache | true | 同一附件同一提示词是否复用识别结果 |
| skipVisionModel | true | 如果当前主模型真实能力本身支持图片,则跳过自动识别,避免重复处理 |
| advertiseImage | true | 让 DSH 认为当前文本模型也接受图片,从而允许 Web UI/API 提交图片;实际图片会由本插件转成文字描述 |
| describeToolImages | true | 自动识别工具结果里的图片,例如内置 read_image 返回的图片会追加文字描述 |
| maxImagesPerStep | 8 | 单步最多自动识别几张图片 |
| maxOutputTokens | 2048 | 视觉模型输出 token 上限 |
| timeoutMs | 120000 | 单次视觉调用超时 |
| maxDescriptionChars | 12000 | 注入上下文的单图描述长度上限 |
| maxToolImageBytes | 20971520 | describe_image 读取的原始文件大小上限,同时受附件服务限制 |
| reasoningEffort | off | 辅助视觉调用的推理档位,off 可降低成本与延迟 |
| prompt | 内置中文识别提示词 | 视觉模型提示词 |
也支持环境变量:DSH_IMAGE_READER_PROVIDER、DSH_IMAGE_READER_MODEL、DSH_IMAGE_READER_AUTO 等,名称可由字段名推导。
失败行为
- 视觉调用失败时,自动路径不会中断当前 turn,而是把失败信息作为插件上下文注入,让主模型可以如实告诉用户。
- describe_image 工具失败时,按普通工具错误返回。
- 如果 provider / model 配错,错误信息会包含视觉调用的失败原因,便于在 DSH 模型设置中修正。
安全与数据
- 自动路径直接复用附件服务中已经持久化的图片,不会把 base64 写进会话日志。
- describe_image 读取文件后会调用 ctx.attachments.saveImage 做持久化,然后调用视觉模型。附件服务本身只接受 PNG/JPEG/WebP/GIF,并执行尺寸/字节校验。
- 文件读取通过 ctx.fs,遵守当前会话的文件系统策略。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
wang90/dsh-image-reader
让纯文本模型借助视觉模型读懂图片内容
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,364已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,709已汉化DSH
71.8
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,319已汉化DSH
71.5
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,533已汉化DSH
71.1
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 93,105已汉化DSH
71.1
这是你的仓库?认领条目