DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

junhongchashui /

dsh-vision-relay

Topic repository only

零修改、零切换的 DeepSeek Harness 视觉能力插件:纯文本模型粘贴即读图片,云端 + 本地 Ollama 双后端自动切换,ModLens v2 风格结构化证据输出。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@1831133e

dsh-vision-relay

零修改、零切换的 DeepSeek Harness 视觉能力插件 —— 让纯文本模型(如 DeepSeek-V4-Flash)直接"看见"聊天里的图片:粘贴即读、无需切换模型、不修改任何核心代码。

📌 插件已添加 dsh-plugin 主题标签,欢迎在 GitHub Discussions 反馈问题。

✨ 功能

能力 说明
粘贴即读 聊天里粘贴图片 → 模型自动调用 vision_analyze 读取,无需保存文件、无需手动传路径
零切换 注册包装 provider opencode-go-vision(声明图片输入),默认模型直接指向它——用户永远不用手动切换模型选择器
零核心修改 纯插件 + 配置补丁实现,不碰任何 DSH 核心代码
双后端自动切换 优先内网 OpenAI 兼容 API(qwen3.6-35b-a3b),无 key 时自动回退本地 Ollama(qwen3.5:4b / 0.8b)
结构化证据输出 默认返回 ModLens v2 风格结构化 JSON:summary / ocr(逐字转录)/ layout(区域+阅读顺序)/ semantics(场景+实体+关系)/ visual(颜色+风格)/ uncertainty(不确定项)
深度校验 六字段嵌套类型全部校验,不合格自动降级为原始文本并标记 structured: false,绝不把坏 JSON 当证据
image-recognition 技能 自动注册技能目录,内置"结构化证据消费指南",主模型知道如何引用各字段

🏗️ 架构

DSH 智能体 (Agent)
   │  调用 vision_analyze 工具
   ▼
Cordis 插件 (plugin.mjs, Host 端)
   │  subprocess.spawn(node)
   ▼
Node 桥接脚本 (webtools/vision_bridge.js)
   ├── 云端: OpenAI 兼容 API (VISION_API_KEY) → qwen3.6-35b-a3b
   └── 本地: Ollama (/api/generate, format: 'json') → qwen3.5:4b / qwen3.5:0.8b

同时注册包装 provider opencode-go-vision:

用户发图 → DSH 准入检查(wrapper 声明支持 image)→ 放行
        → 请求时图片块转换为「本地路径 + 调用 vision_analyze」文本
        → 主模型调用 vision_analyze → 双后端识别 → 结构化证据 → 回答

主模型(纯文本)全程不接触图片字节,图片内容只发给视觉后端。

📋 依赖

依赖 用途 必选
DeepSeek Harness(运行环境) 插件载体 ✅
Node.js 18+ 桥接脚本运行时 ✅
视觉后端(二选一或都配) 图片识别 ✅
VISION_API_KEY / VISION_BASE_URL / VISION_MODEL 环境变量 云端内网 OpenAI 兼容 API 走云端时
Ollama(ollama serve + qwen3.5:4b 等视觉模型) 本地识别兜底 走本地时

无 key 时自动回退 Ollama,纯本地运行,零 API 成本。

🚀 快速开始

1. 获取代码

git clone https://github.com/junhongchashui/dsh-vision-relay.git

2. 配置 plugin.mjs

打开 plugin.mjs,把开头的 CONFIG.bridgeDir 改成你 clone 下来的 webtools 目录绝对路径:

const CONFIG = {
  upstream: 'opencode-go',        // 被包装的上游模型路由(你的 DSH 配置里已有的 provider)
  providerId: 'opencode-go-vision', // 包装 provider 的 id
  bridgeDir: 'D:/你的路径/dsh-vision-relay/webtools',  // ← 必改
  nodePath: 'node',
}

3. 挂载插件

在 $DSH_HOME/profiles/web/cordis.patch.yml(或部署对应的补丁层)追加:

- insert:
    - id: vision-relay
      name: 'file:///D:/你的路径/dsh-vision-relay/plugin.mjs'
      config: {}

保存即热加载(或重启 dsh web)。

4. 指向包装模型

在 DSH 的 settings.yaml 把默认模型指向包装 provider(用户无需任何手动切换):

agent-default-model:
  provider: opencode-go-vision
  model: deepseek-v4-flash

5. 验证

问智能体:请描述我发的这张图

粘贴一张图片发送——模型应自动调用 vision_analyze 并返回结构化证据 + 基于证据的回答。

🛠️ 配置

plugin.mjs 顶部

配置项 说明 默认
CONFIG.upstream 被包装的真实模型路由 opencode-go
CONFIG.providerId 包装 provider 的 id opencode-go-vision
CONFIG.bridgeDir vision_bridge.js 所在目录绝对路径 必改
CONFIG.nodePath Node 可执行文件,'node' 自动解析 'node'

环境变量(vision_bridge.js)

环境变量 说明
VISION_API_KEY 云端 OpenAI 兼容 API 密钥(也接受 OPENAI_API_KEY / SILICONFLOW_API_KEY)
VISION_BASE_URL 云端 base URL,如 http://172.16.14.240:1234/v1
VISION_MODEL 云端默认模型,如 qwen3.6-35b-a3b

后端选择逻辑:provider 参数显式指定 > auto(有 key 走云端,无 key 走 Ollama)。

vision_analyze 工具参数

参数 说明
image_path / image_url 二选一:本地绝对路径 / 网络 URL
prompt 可选,对图片的具体问题
provider auto(默认)/ ollama / openai
model 模型名,云端默认 qwen3.6-35b-a3b,本地默认 qwen3.5:4b

📄 结构化证据输出契约

默认返回(ModLens v2 风格,深度校验通过时 structured: true):

{
  "summary": "一句话总结",
  "ocr": { "full_text": "全部文字逐字转录", "lines": [{"text": "每行文字", "language": "可选"}] },
  "layout": { "regions": [{"type": "title|table|chart|...", "reading_order": 1, "text": "区域文字"}] },
  "semantics": {
    "scene": "场景", "intent": "用途(可选)",
    "entities": [{"name": "实体", "type": "类型", "evidence": "依据(可选)"}],
    "relations": [{"subject": "主语", "predicate": "关系", "object": "宾语"}]
  },
  "visual": { "dominant_colors": ["主色"], "style": "风格", "notes": ["视觉备注"] },
  "uncertainty": ["看不清的内容,如实列出"]
}
  • 六字段必填(summary/ocr/layout/semantics/visual/uncertainty),嵌套类型深度校验
  • 校验失败自动降级:structured: false + 原始文本 + warning,不阻塞流程
  • uncertainty 强制诚实:模型必须列出看不清的内容,机制上杜绝编造
  • 刻意不含像素 bbox 坐标与 confidence 分数——视觉模型会编造这两者(ModLens v2 同样移除)

🧪 兼容性

项 说明
DSH 版本 0.1.x(Cordis 插件机制,cordis.patch.yml 补丁挂载)
Node.js 18+(桥接脚本运行时)
已验证环境 Windows 11 + Node + DSH(2026 实测)
视觉后端 内网 OpenAI 兼容 API(qwen3.6-35b-a3b)+ 本地 Ollama(qwen3.5:4b / qwen3.5:0.8b)

💡 设计取舍

  • 不修改核心代码:DSH 升级无忧,插件失效最坏情况是静默禁用
  • 主模型不接触图片:图片字节只到视觉后端,纯文本模型请求永远干净
  • uncertainty 优先:宁可说"看不清"也不编造,证据质量高于故事性描述

📄 许可

MIT

🤝 社区

  • 使用与反馈:官方 GitHub Discussions
  • 发现更多插件:dsh-plugin 主题
—/ 5

No ratings yet

Manifest verification required

Commit 1831133ea00c

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout