ysr666/dsh-vision-router
ysr666/dsh-vision-router为纯文本 Agent 提供视觉能力:内置免 Key 视觉链 + 像素级视觉工具(看图问答、定位、裁剪、像素对比、取色、OCR、矢量化、抠图、截图);粘贴图片即可用。
面向模型的 image_describe(识图)工具(DashScope OpenAI 兼容接口,qwen3.7-flash)+ 粘贴桥:纯文本模型会话里粘贴的图片在发送时自动转为文件路径并在聊天记录中回显,不再触发图片准入拦截。自带 DASHSCOPE_API_KEY;端点/模型/预算可配置,重定向防护 HTTP 客户端,所有 Agent 预设均可用。
English | 中文
一个 DeepSeek Harness 插件:面向模型的 image_describe(识图) 工具。它读取本地图片文件,让 DashScope OpenAI 兼容接口(qwen3.7-flash)描述图片内容或回答针对性问题。
所有 Agent 预设(模式)都能用:bundle 补丁把工具插到宿主层,每个会话的工具目录里都能看到它。
dsh plugin --profile web add dsh-tool-vision
重启 dsh web(或在插件市场里一键安装)。工具以 image_describe 出现在模型的工具目录中。
在 Web 界面上,当会话模型为纯文本模型(依据提供方元数据确认)时,把图片粘贴或拖进输入框再发送:浏览器端会把每张草稿图片上传到插件的宿主路由、释放草稿,并把 [image: <path>] 文本追加到提示词后再发送——请求不携带图片块,不会触发宿主的图片准入拦截,模型随后可用 image_describe 读取该文件。视觉模型或无法确认的模型保持原生行为(图片内联原样发送)。
上传的图片副本存放在 DSH 数据目录($DSH_HOME/media,默认 ~/.dsh/media),命名规则与宿主自带的图片转路径一致。
发送后消息里的图片会在原用户消息区域中回显为图片:一个会话节点匹配用户消息中的 [image: <path>] 标记,在界面中隐藏该传输标记,并把宿主路由提供的图片副本渲染出来。会话事件中的路径文本保持不变,文本模型仍可读取图片路径。
插件不携带任何密钥。在启动 DSH 的环境里设置:
DASHSCOPE_API_KEY=sk-xxxx
也可以在 cordis.patch.yml 里按行配置:
- id: tool-vision
name: 'dsh-tool-vision'
config:
apiKey: sk-xxxx
没有密钥时工具照常注册,调用时以 VISION_NO_API_KEY 失败并提示修复方式。
| 工具 | 参数 | 行为 |
|---|---|---|
image_describe | path(字符串)、prompt(字符串,可选) | 解析图片(绝对路径,或相对工作区路径),以 base64 data URL 加提示词发送到 POST {baseUrl}/chat/completions,返回助手文本。省略 prompt 时使用 defaultPrompt(完整内容描述)。 |
| 键 | 默认值 | 含义 |
|---|---|---|
baseUrl | https://dashscope.aliyuncs.com/compatible-mode/v1 | DashScope OpenAI 兼容端点。 |
apiKey | 环境变量 DASHSCOPE_API_KEY | DashScope API 密钥;显式配置值优先于环境变量。 |
model | qwen3.7-flash | 视觉模型 id。 |
defaultPrompt | 请详细描述这张图片的内容:画面主体、关键细节、文字信息(如有)、布局与结构。 | 调用省略 prompt 时使用的指令。 |
timeoutMs | 120000 | 协作式工具调用超时预算(ms)。 |
maxImageBytes | 20971520 | 单张图片的字节上限。 |
maxOutputChars | 65536 | 返回描述文本的上限。 |
redirect: 'error':已配置的端点接收凭据,重定向会使调用失败,而不是把密钥或图片转发到其他源。ctx.approval;需要确认的部署须自行添加 tools/pre-execute 策略。MIT