让纯文本模型按需调用工具看懂图片内容
27.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Leeminjing/dsh-eyes该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 79 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 5 处,展示前 5 条)
- 读取密钥环境变量lib/index.js:53
const apiKey = config.apiKey ?? process.env.VISION_API_KEY ?? ''; - 读取本地文件lib/index.js:92
const raw = await readFile(indexPath, 'utf8'); - 写入本地文件lib/index.js:123
await mkdir(dirname(indexPath), { recursive: true }); - 写入本地文件lib/index.js:124
await writeFile(indexPath, JSON.stringify(obj), 'utf8'); - 发起网络请求lib/index.js:196
const res = await fetch(visionEndpoint, {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 按需调用工具看图
- 上传图片作答
- 接入兼容视觉服务商
给纯文本 DeepSeek 模型按需加上视觉能力:上传图片,DeepSeek 调用 view_image 工具作答,背后接任意 OpenAI 兼容的视觉服务商(默认 Qwen/DashScope)。
README
由 DeepSeek 最新模型翻译生成dsh-eyes
中文 · English
为 DeepSeek Harness 中的纯文本大模型(如 DeepSeek)装上「随时可用的眼睛」:图片粘贴/附件后留在后台,模型自己在需要时调用 view_image 工具去看图(底层走任意 OpenAI 兼容视觉接口,默认百炼 Qwen),就像模型原生具备多模态一样。
快速体验:上传图片,自然丝滑
不需要开关、不需要手动调用工具——直接 Ctrl+V 粘贴一张截图,像发普通消息一样提问即可。DeepSeek 会在思考里自然地决定「我要看这张图」,自己调用 view_image,然后直接给出结构化回答,一气呵成:
dsh-eyes 演示:粘贴截图 → 思考 → 调用 view_image → 结构化回答
上图实拍:粘贴一张 MSN 截图,问「介绍这个页面的布局」。注意中间的 Think → Tool call · view_image → Think 过程——识别不是被强行塞进第一步,而是模型在需要时自己决定看图;视觉提取与最终回答无缝衔接,就像 DeepSeek 原生具备多模态一样丝滑。
解决的问题
DeepSeek 是纯文本模型,Harness 默认不允许给「当前模型不支持图片」的会话发送带图消息。
展开完整文档(README 剩余 1 节)
dsh-eyes 中文 · English 为 DeepSeek Harness 中的纯文本大模型(如 DeepSeek)装上「随时可用的眼睛」:图片粘贴/附件后留在后台,模型自己在需要时调用 view_image 工具去看图(底层走任意 OpenAI 兼容视觉接口,默认百炼 Qwen),就像模型原生具备多模态一样。 快速体验:上传图片,自然丝滑 不需要开关、不需要手动调用工具——直接 Ctrl+V 粘贴一张截图,像发普通消息一样提问即可。DeepSeek 会在思考里自然地决定「我要看这张图」,自己调用 view_image,然后直接给出结构化回答,一气呵成: dsh-eyes 演示:粘贴截图 → 思考 → 调用 view_image → 结构化回答 上图实拍:粘贴一张 MSN 截图,问「介绍这个页面的布局」。注意中间的 Think → Tool call · view_image → Think 过程——识别不是被强行塞进第一步,而是模型在需要时自己决定看图;视觉提取与最终回答无缝衔接,就像 DeepSeek 原生具备多模态一样丝滑。 解决的问题 DeepSeek 是纯文本模型,Harness 默认不允许给「当前模型不支持图片」的会话发送带图消息。本插件: - 让带图消息能通过发送准入并被持久化保存; - 在把消息交给主模型之前把图片剥离成一句引用说明; - 注册 view_image 工具,主模型随时调用它看图,视觉模型提取描述/OCR 文字后交给主模型继续回答。 安装 1) 安装插件(github 方式,也可以换成 npm 包名) dsh plugin --profile web add github:Leeminjing/dsh-eyes 2) 配置 API Key(Windows;换成你所用视觉提供商的 key) setx VISION_API_KEY "sk-你的key" 3) 配置视觉模型(必填,换成你账号里可用的视觉模型) setx VISION_MODEL "qwen-vl-plus" 4) 配置接口端点(默认百炼;换其他 OpenAI 兼容提供商时必改) setx VISION_ENDPOINT "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions" 5) 重启 dsh,让环境变量生效 setx 只对新启动的进程生效,所以配置后要重启 dsh。 模型名与端点因提供商而异:百炼用 qwen-vl-plus/qwen-vl-max,OpenAI 用 gpt-4o,OpenRouter 用 qwen/qwen2.5-vl-72b-instruct 等。详见下表。 使用 1. 在会话里粘贴一张图片(Ctrl+V)或拖拽/点附件; 2. 发一句问题,例如「这张图里写了什么?」; 3. 主模型收到的是「图片引用说明」,它需要看图时会自动调 view_image(attachment_id=…); 4. view_image 用视觉模型提取图片内容,主模型基于这些文字回答。 你可以在后续任意一轮继续追问同一张图(「再看一下图里第二行的数字」),图片一直留在后台,可反复查看。 工作原理 粘贴图片 + 提问 │ ▼ 发送准入 ──(1) 把目标模型标记为“支持图片”── 图片持久化(生成 attachment_id) │ ▼ 请求派发前 ──(2) 剥离图片:image 块 → 【图片N attachment_id=…】引用说明,登记到本会话分片 │ ▼ 主模型收到纯文本(引用说明 + 你的问题) │ 主模型决定看图时 ▼ 调用 view_image(attachment_id) ──(3) 读字节 → base64 → 调视觉接口 │ ▼ 视觉模型返回描述/OCR 文字 │ ▼ 主模型基于文字作答 三个环节: 1. 准入放行:包装 llm.resolveModelInfo,让目标主模型声明 inputModalities: ['text','image'],使带图消息能通过 Host 的发送准入检查并被保存。 2. 图片剥离:包装 llm.streamWithRegistration,在请求派发给模型前把每个 image 块(含嵌套在 tool-result 里的)换成带序号的引用说明(【图片N attachment_id=…】),并按 sessionId 分片登记 attachment_id → ImageAttachmentRef。构造新的 options 对象传下去(原对象可能被冻结)。 3. view_image 工具:按单个 attachment_id、或 attachment_ids 数组一次看多张(或本地 image_path)读出图片字节,转成 data: URL,POST 到配置的视觉接口(按 VISION_API_STYLE 自动选用 Chat Completions 或 Responses 协议),返回文本(多图时带【图片N】分段)。 配置 | 配置项 | 环境变量 | 默认值 | | API Key | VISION_API_KEY | (必填) | | 视觉模型 | VISION_MODEL | (必填,无默认) | | 接口端点 | VISION_ENDPOINT | https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions | | API 风格 | VISION_API_STYLE | auto(按端点路径自动判断) | | 目标主模型 | —(代码内 targetProvider) | deepseek-official | | 本地图片大小上限(image_path) | —(代码内 maxImageBytes) | 15 MB | 粘贴/附件图片的大小受 Harness 附件存储限制(默认 5 MB),与上表「本地文件」上限无关。 同时支持 Chat Completions 与 Responses API:VISION_API_STYLE 取值 auto(默认)/ chat / responses。 - auto:按端点路径自动识别——.../chat/completions → Chat Completions,.../responses → Responses API;裸 base URL 默认 Chat Completions 并自动补全路径。 - chat / responses:强制指定,插件会把端点路径自动归一化到对应协议。 请求体与响应解析都随风格切换(messages/image_url ↔ input/input_image),对使用方式完全透明,切换无需任何改动。 常见 OpenAI 兼容视觉提供商: | 提供商 | 端点 | 模型示例 | | 阿里云百炼 | https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions | qwen-vl-plus / qwen-vl-max | | OpenAI | https://api.openai.com/v1/chat/completions | gpt-4o / gpt-4o-mini | | Moonshot | https://api.moonshot.cn/v1/chat/completions | moonshot-v1-8k-vision-preview | | OpenRouter | https://openrouter.ai/api/v1/chat/completions | qwen/qwen2.5-vl-72b-instruct | 也可在 cordis.patch.yml 里给该行传 config(会覆盖默认值 / 环境变量): - insert: - id: dsh-eyes name: dsh-eyes config: apiKey: sk-xxx # 同 VISION_API_KEY model: qwen-vl-plus # 同 VISION_MODEL endpoint, targetProvider, maxImageBytes 同理 已知限制与说明 - 两个内部包装点:因为 Harness 目前没有公开的扩展点用于「发送准入的图片能力判断」和「派发前剥离图片」,本插件直接包装了 llm.resolveModelInfo 与 llm.streamWithRegistration 两个方法。副作用是:纯文本主模型会在模型选择器里显示为支持图片(这是有意为之,才能放行带图消息)。 - 主模型自动适配:任何纯文本主模型(不限 provider)都会被自动保护;本身原生支持图片的多模态主模型不受干预,图片直接原生通过。 - 视觉接口要求 OpenAI 兼容(Chat Completions 或 Responses API);Anthropic / Gemini 的原生接口不直接支持,需走它们的 OpenAI 兼容网关。 - 会话隔离与持久化:图片引用索引按 sessionId 分片(一个会话只能查看自己的附件),并持久化到 .dsh/attachments/v1/dsh-eyes-index.json(启动时读回、新图落盘)。因此即使上下文被压缩、或进程重启,模型仍能通过 attachment_id 查看历史图片。 - API Key 请用环境变量 / 凭证服务管理,不要硬编码进仓库。 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Leeminjing/dsh-eyes
让纯文本模型按需调用工具看懂图片内容
相关插件 · 视觉能力
智能体工作台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
这是你的仓库?认领条目