CaseyTso/dsh-analyze-image-tool ↗★ 0
analyze-image-tool
A vision bridge for text-only DeepSeek Harness models: registers an `analyze_image` tool that answers questions about images via ANY OpenAI-compatible vision/multimodal endpoint (SiliconFlow, DashScope, Zhipu, OpenRouter, Ollama, ...).
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:CaseyTso/dsh-analyze-image-tool说明文档
阅读完整 README ↗analyze-image-tool
English | 中文
给纯文本的 DeepSeek Harness 模型加上「眼睛」:注册一个 analyze_image 工具,把图片和问题转发给任意 OpenAI 兼容的视觉/多模态端点,把答案以文本返回。装上之后,即使主模型本身不支持图片输入,所有 dsh 入口(web、TUI、远程通道)也能识图。
用户: 看下 ~/Desktop/error.png 是什么报错
模型 → analyze_image(path="~/Desktop/error.png", prompt="这个报错的完整文本是什么?")
← "TypeError: Cannot read properties of undefined (reading 'map') at …"
模型: 这是一个 … 建议 …
特性
- 通用端点:一套配置(
baseURL+apiKey+model)覆盖任意 OpenAI 兼容端点 —— SiliconFlow、DashScope compatible-mode、智谱、OpenRouter、火山、Ollama 本地、OpenAI……代码里零供应商逻辑。 - 沙箱安全读取:本地图片优先走宿主提供的沙箱 fs 通道(
ctx.fs.readBytes),遵守会话路径策略;没有该通道的宿主自动回退到 Node 原生读取。也支持 http(s) URL 和 data: URL。 - Schema 安全:工具参数经
defineTool编译为 object 根(type: "object")的标准 JSON Schema,规避了社区踩过的「工具 schema 根不是 object 导致整个会话 400 崩溃」的坑(dsh 社区 #297)。 - 健壮性:API key 在报错信息中自动脱敏;思考型模型的
推理块自动剥离;独占响应当作「仅推理无答案」处理并给出可操作提示。 - 结构化返回:
{ text, model, usage },附带端点的模型 id 与 token 用量。 - 多插件共存:工具名
analyze_image与社区的view_image/see_image/vision_glance等不冲突,可与 dsh-image-bridge 之类的粘贴桥接补丁搭配使用。 - WebUI 设置面板:web 会话头部右上角有一个小眼睛按钮,点开即可编辑全部设置(baseURL / apiKey / model / 调用参数 / 提示词模板)、保存/切换多套配置方案,并内置「测试连通性」。
安装
要求:DeepSeek Harness(dsh)0.1.x,Node.js ≥ 18.17。
# 从 main 分支安装(包含粘贴图片运行时桥接;正式发布后也可换成对应 tag)
dsh plugin --profile web add github:CaseyTso/dsh-analyze-image-tool#main
dsh --profile web
注意:仓库里的
v0.1.0tag 是早期版本,只支持本地路径/URL 识图,不含本次的粘贴图片桥接。
包内 package.json 声明了 dsh.bundle.patch,安装后会自动作为 profile 层生效,无需手工编辑 。