gloryxpnv/dsh-tool-vision ↗★ 1
dsh-vision-local
Local-first vision for text-only DeepSeek Harness agents: route image understanding to a local OpenAI-compatible vision model, return structured JSON evidence (summary / OCR / layout / semantics / visual / uncertainty). 适合在本地运行纯文本模型、但需要处理图片OCR和场景分析的用户。
インストール
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:gloryxpnv/dsh-tool-visionドキュメント
README 全文を読む ↗使用
模型会看到一个 vision 工具。任何出现图片文件路径或图片问题的时候,它都会调用:
vision(file_path: "/path/to/image.png", question?: "这张图里有什么?")
支持格式:PNG、JPEG、WebP、GIF。
结构化输出结构
在结构化模式(默认开启)下,answer 是一个规范化后的证据对象:
{
"summary": "一段概览",
"ocr": { "full_text": "逐字转写的全部可见文字", "lines": [{ "text": "单行文字" }] },
"layout": { "regions": [{ "type": "title|paragraph|list|table|chart|form|code|image|icon|link|nav|other", "reading_order": 1, "text": "..." }] },
"semantics": {
"scene": "场景类型",
"entities": [{ "name": "...", "type": "person|org|place|object|brand|number|date|other", "evidence": "..." }],
"relations": [{ "subject": "...", "predicate": "...", "object": "..." }]
},
"visual": { "dominant_colors": ["#ffffff"], "style": "...", "notes": ["..."] },
"uncertainty": ["模型无法确定的内容"]
}
若 VLM 回复无法解析为 JSON,answer 会回退为原始文本,并在 uncertainty 中注明——工具绝不捏造内容。
vision-bridge(可选)
ctx.provide('vision-bridge', { describeImages(content) }) — 让纯文本宿主路由直接接收图片部分,将其替换为 【名称】(已由本地视觉模型识别,无需查找原文件)。失败时返回 undefined,宿主保持原有行为。
- 开启
keepThumbnail: true时,图片块保留在消息历史中(UI 显示缩略图),描述文字作为相邻文本块紧随其后。注意:这要求宿主在纯文本序列化时丢弃图片块(模型只收文字)——若你的宿主在纯文本路由上拒绝图片内容,请保持keepThumbnail为false(默认),此时图片块会被替换为纯描述文字。 - 关闭
autoDescribe: false(默认true)时,准入阶段不再调用 VLM(省去每次粘贴数十秒):图片保留缩略图,仅注入一行提示【图片 已上传,可用 vision 工具读取工作区中的该文件查看内容】,由主模型在需要时自行调用vision工具识别——一次有明确意图的识别,避免"自动描述 + 回复时再识别"的重复劳动。
配置
| 字段 | 默认值 | 说明 |
|---|---|---|
baseURL | http://127.0.0.1:1234/v1 | OpenAI 兼容端点根地址(不带尾部路径) |
model | qwen3.5-9b-vlm | 端点提供的视觉语言模型 id |
maxTokens | 8192 | 输出 token 上限;推理型 VLM 会消耗一部分用于思考 |
structured | true | 请求固定结构的 JSON 证据并返回解析后的对象 |
keepThumbnail | false | 在消息历史中保留图片块(缩略图),要求宿主的纯文本序列化会丢弃图片块 |
autoDescribe | true | 准入时自动调用 VLM 描述图片;false 改为按需识别(提示 + 模型自行调 vision) |
timeoutMs | 180000 | 单次请求的墙钟超时上限 |
maxImageBytes | 52428800(50 MB) | 接受的图片最大编码大小 |