dsh-qwen-multimodal

by wuwangmao

视觉与多模态github收录于 08-23

一个 DSH bundle 经 Qwen API 给纯文本主模型(如 DeepSeek)三项多模态能力:视觉、语音转文字与文生图

A DSH bundle that gives text-only main models (e.g. DeepSeek) three multimodal skills in one plugin through Qwen APIs: vision, speech-to-text, and text-to-image — with a…

安装

dsh plugin --profile web add github:wuwangmao/dsh-qwen-multimodal

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

让纯文本主模型(如 DeepSeek)一个插件补齐三种多模态能力的 DSH 组合包(bundle):千问 API 驱动的看图、听音、生图三合一,并内置"生图 → 识图回看"的质量确认闭环。

工具 能力 后端
describe_image 图片 / 截图 / OCR / 图表理解(可一次多张) 千问 VL(默认 qwen3-vl-flash)
transcribe_audio 语音 / 录音转写(wav/mp3/m4a/aac/flac/ogg/amr) Qwen3-ASR(qwen3-asr-flash)
generate_image 文字描述生成图片并保存到本地 Qwen-Image(qwen-image-plus)

媒体本身不进入主模型上下文:视觉 / 音频内容被转为文字,生图结果保存为本地文件,插件返回路径。

工作原理

本插件 API 调用完全复用包内 skills/deepseek-vision/scripts/*.py 原版脚本与 .env 配置(视觉 / 音频走阿里云百炼 OpenAI 兼容接口, 生图走百炼原生 multimodal-generation 接口)。插件本身是纯 JS 的 Cordis bundle,只依赖宿主已挂载的 subprocess / tools 服务,从 git 安装无需构建步骤。

安装

方式一:从 GitHub 安装

dsh plugin --profile demo add github:wuwangmao/dsh-qwen-multimodal

方式二:本地 checkout / tarball

dsh plugin --profile demo add ./dsh-qwen-multimodal
# 或
pnpm pack   # 产出 tarball 后
dsh plugin --profile demo add ./dsh-qwen-multimodal-0.1.0.tgz

安装后重启 DSH(dsh --profile demo),插件加载时会注册上述三个模型工具。

配置

1. API Key(必填)

复制 skills/deepseek-vision/.env.example 为 skills/deepseek-vision/.env 并填写:

VISION_API_KEY=sk-xxxx          # 必填:阿里云百炼 API Key(控制台创建,新用户送免费额度,大学生每年300元代金券)
VISION_MODEL=qwen3-vl-flash     # 视觉模型,默认即可
AUDIO_MODEL=qwen3-asr-flash     # 转写模型,默认即可
IMAGE_MODEL=qwen-image-plus     # 生图模型,默认即可

视觉 / 音频 / 生图默认复用同一个 Key;也支持 AUDIO_API_KEY / IMAGE_API_KEY 单独配置, 以及 VISION_BASE_URL 换平台(魔搭 / 硅基流动),详见 .env.example 注释。

💡 提示:.env 位于安装包内部(node_modules 下),卸载重装会被清掉。 若要长期保存配置,建议把技能目录复制到包外(例如 D:/qwen-vision), 再用下方的 config.skillDir 指向它。

2. Python 环境

要求 Python 3.10+(生图脚本使用了 int | None 类型标注语法)。

默认从系统 PATH 解析 python。若环境中没有 python(或解析不到),在 profile 的 cordis.patch.yml 中重述插件行并指定:

- insert:
    - id: qwen-multimodal
      name: dsh-qwen-multimodal
      config:
        pythonPath: 'C:/Python313/python.exe'

3. 其他配置

- insert:
    - id: qwen-multimodal
      name: dsh-qwen-multimodal
      config:
        skillDir: 'D:/qwen-vision'      # 覆盖技能目录(含 .env 与 scripts)
        pythonPath: 'C:/Python313/python.exe'

使用示例

加载后,模型即可直接调用三个工具(对本会话的纯文本模型而言,它们等价于原生 OCR / ASR / 文生图能力):

  • describe_image({ images: ['截图.png'] }) — 逐字提取图片中的文字 / 代码 / 报错
  • describe_image({ images: ['chart.png'], prompt: '逐字提取图中所有文字,保留原样' }) — 自定义提示词
  • transcribe_audio({ audios: ['recording.m4a'], language: 'zh' }) — 指定语言提高准确率
  • generate_image({ prompt: '一只橙色小猫坐在窗台上看日落', out_dir: './out' }) — 生图保存到本地
  • generate_image({ prompt: '...', out_dir: './out', verify: true }) — 生图后自动用千问 VL 回看确认效果是否符合提示词(质量闭环)

目录结构

dsh-qwen-multimodal/
├── package.json              # dsh.bundle manifest
├── cordis.patch.yml          # 组合层:插入插件行
├── src/index.js              # 插件:注册三个模型工具(纯 JS)
├── scripts/selfcheck.mjs     # 自检脚本:node scripts/selfcheck.mjs
└── skills/deepseek-vision/   # 技能资源:SKILL.md + Python 脚本 + .env.example

License

MIT

原始 README: https://github.com/wuwangmao/dsh-qwen-multimodal/blob/main/README.zh.md ↗