YUCONG-28/dsh-skills-plugins--plugins-dsh-vision-bridge0

dsh-vision-bridge

DeepSeek Harness plugin: when the main (text-only) model receives images, automatically caption them with a Qwen VL model and let DeepSeek continue the task.

包名
dsh-vision-bridge
版本
0.1.0
许可证
MIT
最近更新
2026年8月18日

安装

此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗

4. 配置 Qwen provider(复用内置 llm-pi-ai 适配器)

编辑 ~/.dsh/settings.yaml,追加:

llm-pi-ai:
  providers:
    qwen:
      apiKeyEnv: DASHSCOPE_API_KEY
      displayName: Qwen (DashScope)
      api: openai-completions
      baseURL: https://dashscope.aliyuncs.com/compatible-mode/v1
      models:
        - id: qwen-vl-max
          name: Qwen-VL-Max
          input: [text, image]
          contextWindow: 32768
          maxTokens: 8192

settings.yaml 热更新,保存即生效;也可在 Web 设置 → Models 页面添加 (协议 openai-completions,Base URL 填 https://dashscope.aliyuncs.com/compatible-mode/v1)。

配置项

默认值说明
qwenProviderqwenllm-pi-ai 中配置的 provider 键名
qwenModelqwen-vl-max用于识别的 Qwen VL 模型 id
modenativenative 整轮路由(推荐)/ caption 仅描述转发(旧行为)/ off 关闭
captionFormatstructured兜底转述格式:structured 结构化 JSON 证据(推荐,OCR 逐字/版面/实体/uncertainty)/ prose 自由文本(旧行为)
strictJsontruestructured 下强制证据形状:结果不是 JSON 时强化提示重试一次,仍失败报错
fallbackProviders[]识别故障转移链:主引擎失败后依次尝试的备用引擎 [{provider, model}]
nativeContextRatio0.8整轮路由的上下文上限比例:对话估算 token 超过「视觉模型窗口 × 该值」时改走描述兜底;0 关闭上限检查(总是路由)
maxTokens4096兜底描述请求的输出 token 上限(思考类视觉模型偶发思考时需余量)
temperature0.2兜底描述请求的采样温度
prompt留空自定义兜底提示词;留空则按 captionFormat 用内置默认(structured/prose)
localOcrtrue本地 OCR 先行:文字密集图片(截图/文档)先本地识别,零 API 成本;false 关闭
ocrMinChars40本地 OCR 文本达到该字符数即判定文字密集、直接注入并跳过视觉引擎
ocrTimeoutMs30000本地 OCR 单次超时(毫秒);超时/失败自动降级到视觉引擎
ocrScript留空本地 OCR 工具路径;留空自动定位(优先 ~/.dsh/vision-bridge-ocr 编译二进制,否则 swift scripts/ocr.swift
cacheSize256描述结果内存缓存条数上限
captionTimeoutMs120000单次识别超时(毫秒),0 关闭

热配置:改参数不用重启

mode 外,其余键都可以在 ~/.dsh/vision-bridge.json 中按请求动态覆盖—— 保存文件后立即生效,无需重启 dsh web。文件不存在时用 cordis 配置(即 cordis.patch.yml 里的 vision-bridge: 段);文件被删除则恢复 cordis 配置。

{
  "captionFormat": "structured",
  "qwenModel": "qwen3.7-flash",
  "maxTokens": 8192,
  "temperature": 0.1,
  "fallbackProviders": [
    { "provider": "gemini-api", "model": "gemini-2.5-flash" }
  ],
  "prompt": "请逐字转写图中的全部文字……"
}
  • 非法值(如 qwenModel: ""temperature: 99fallbackProviders 缺字段)会被 忽略,不影响其他键;
  • mode 决定启动时注册哪些监听器,改 mode 需要改 cordis 配置并重启;
  • 插件每次请求最多检查一次该文件(≥1 秒节流),日常使用零感知。