dsh-tool-describe-image 使用指南
为纯文本模型增加图像理解能力:拖入图片后自动调用视觉模型描述图片内容,仅文本进入会话。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
dsh-tool-describe-image
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add @linxin666/dsh-tool-describe-image
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
- Web 终端:xterm.js 远程终端,实时输出,窗口大小自适应;
- 文件传输:SFTP 上传 / 下载,有进度条,能浏览远程目录;
- 端口转发:本地隧道直连远程内网服务(数据库、API、管理后台),只监听 127.0.0.1;
- 集群执行:一条命令并发跑多台主机,按别名 / 环境 / 标签过滤;
- Agent 直连:Agent 和面板共用同一份主机配置,对话里说一句「连一下 xxx 看看状态」,智能体就去执行远程命令。
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
模型本身已经支持图片输入,还需要装这个插件吗?
不需要。插件会在每次发送时通过 /describe-image/capability 接口探测当前会话模型是否声明 image 输入;声明了就把原图直接交给模型原生视觉能力,并自动隐藏 describe_image 工具,避免重复(src/model-capability.ts:23-22 / src/client/send-hook.ts:97-103)。
安装后一定要立即配置 endpoint 吗?
不强制。全家桶聚合包默认无配置挂载,加载不受影响;首次调用会以 describe-image: baseURL must be an absolute http(s) URL 错误退出,到「设置 → 插件配置 → Image understanding」卡填好端点、模型、密钥即可使用,无需重启(README.md:62-68 / src/index.ts:137-144)。
怎么切换视觉模型协议(OpenAI 风格、Anthropic 风格)?
设置卡的「API style」字段控制:chat-completions(默认)请求 /chat/completions;responses 适配 OpenAI Responses API;anthropic-messages 用于 Claude 风格端点(OpenCode Go、智谱 GLM、月之暗面 Kimi 等),走 /v1/messages 并使用 x-api-key 鉴权(README.md:75 / src/config-resolve.ts:29-32)。
模型 id 后面的 :off / :low / :medium / :high 是什么意思?
思考控制后缀。:off 显式关闭思考,:low/:medium/:high 开启思考(chat-completions 协议三档都映射为 enabled,因为该协议没有 effort 档);不带后缀则不发送控制字段,沿用端点默认。仅这四个已知后缀会被剥离,其他冒号变体(如 OpenRouter 的 :free)会原样转发(README.md:188-191 / src/config-resolve.ts:42-54)。
API key 应该怎么放?
推荐走环境变量:把密钥放到环境变量 VISION_API_KEY(或 apiKeyEnv 自定义名),用 !!js process.env.VISION_API_KEY 注入到 cordis 配置;插件在每次调用时按 内联 apiKey → 凭证服务(dsh-credentials)→ 启动环境 三级回退解析,密钥不会出现在请求体里,也不会进入日志(README.md:31 / src/config-resolve.ts:186-201)。
「会话内渲染图片预览」开关要不要开?
默认开(renderImagePreview: true)。开启后客户端会把发送的 describe-image 引用原地升级为缩略图,点击查看大图;关闭则保留原始引用文本。两者都只是显示层差异,对消息文本与模型分析没有影响。如果反向代理没转发 /describe-image/raw 路由,缩略图会加载失败,文本仍按原样保留(README.md:83 / src/client/index.ts:107-121)。
怎么让其他视觉插件接管图片处理?
关闭设置卡的「发送时改写图片为 describe-image 引用」开关(interceptImageSend: false)。关闭后带图片的发送原样放行,由同会话的其他视觉插件接收原始图片块;此时纯文本模型的改写需要由它们自己负责(README.md:84 / src/client/send-hook.ts:97-103)。
一个调用能传多张图或获取结构化结果吗?
不支持。插件只支持单图单答:不接受多图输入、不能追问上一张图、不输出坐标或框选这类结构化字段;纯 OCR 场景可以把 baseURL 指向更便宜的 OCR 模型降低单次成本(README.md:178-184)。
— 源: plugin_wiki.faq_json
兼容性
- DSH: 0.1.0-rc.8+(package.json 所有 @deepseek-ai/* 依赖均锁定 ^0.1.0-rc.8)
- Node: ^22.19.0 || >=24.0.0
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则