AtropinolTT/dsh-guide-dog:给 DSH Web 端增加多模态生成与视觉检查

前言

在 DSH 的插件式开发里,一个常见问题是:模型对话、网页预览和媒体生成之间缺少一个稳定的入口。
比如你希望在 Web UI 里生成图片、视频、语音或音乐,也希望模型能检查前端截图、图表、设计稿,并且让生成结果直接在对话卡片里预览。

AtropinolTT/dsh-guide-dog 是一个面向 DSH web profile 的多模态插件,基于 MiniMax 能力,把视觉检查、媒体生成、语音交互和同源预览放在同一个插件里。

这是什么

它由 AtropinolTT 维护,许可证为 MIT。
这个插件的核心定位是:给 DSH Web 端增加多模态能力,包括视觉检查、媒体生成、语音交互和 Web UI 预览。

主要能力包括:

  • MiniMax VLM 视觉描述/检查:guide_dog_visionguide_dog_inspect
  • 图像、视频、语音、音乐、文本与网页搜索生成
  • Web UI 同源预览/播放:/guide-dog/media/<file>
  • 设置页包含认证状态与 speak tester
  • guide_dog_speak 可复用 audio-conversationspeech-mmx skill pipeline,缺失时回退 mmx speech synthesize
  • 系统提示自动调用视觉检查工具:guide-dog-vision,order 110
  • 实时通话模式:VAD/压键说话、流式句级 TTS、barge-in、写操作共识保护、进度提示、中/英文界面
  • 可访问性模式处于 planned 阶段,a11y 配置块保留

核心功能

视觉描述与检查

插件提供两个视觉相关工具:

  • guide_dog_vision:通用视觉描述
  • guide_dog_inspect:结构化视觉检查

这适合需要模型“看图”后再继续工作的场景,例如检查图表、截图、前端设计稿或生成图片是否符合预期。

插件还会挂载系统提示段落 guide-dog-vision,order 为 110,用于在需要视觉检查的任务中自动调用相应工具。

媒体生成

插件提供多类生成能力:

  • 图像生成
  • 视频生成
  • 语音生成
  • 音乐生成
  • 文本生成
  • 网页搜索

生成结果会进入插件的媒体目录,并在 Web UI 中通过统一路径预览或播放。

Web UI 预览

生成媒体后,插件会提供同源预览路径:

/guide-dog/media/<file>

这个路径用于在对话卡片中渲染或播放生成结果。回复中应包含返回的 url 字段,便于前端展示可访问的媒体地址。

语音与实时通话

guide_dog_speak 用于处理语音请求。它可以复用现有的 audio-conversationspeech-mmx skill pipeline;当相关 skill 脚本缺失时,会回退到 mmx speech synthesize

实时通话模式提供以下能力:

  • VAD 或压键说话
  • 流式句级 TTS
  • barge-in
  • 写操作共识保护
  • 进度提示
  • 中文/英文界面

设置页中提供认证状态和 speak tester,可用于检查语音链路是否正常。

可访问性模式

可访问性模式目前处于 planned 阶段。
仓库中保留了 a11y 配置块,用于后续扩展。

安装与启用

安装命令如下:

dsh plugin --profile web add github:AtropinolTT/dsh-guide-dog

这条命令带有 --profile web,属于 web profile 安装。

如果是静态 bundle 部署,步骤是:

  1. 编辑 plugin-host.js / plugin-client.js
  2. 运行 deploy/convert_bundle.py
  3. 运行 deploy/publish.py
  4. 重启 DSH

bundle 在 DSH 启动时解析,因此部署后需要重启 DSH。当前部署不使用动态插件、审批卡片或 per-session instances。

典型用法

视觉检查示例

一个典型的视觉检查流程是:先生成或创建图片文件,再调用检查工具,最后根据结果迭代。

示例:创建 chart.png 后,调用:

guide_dog_inspect({ image: "chart.png", focus: "figure" })

根据返回的检查结果调整图表,再重新检查。确认没有问题后,在最终回复中返回可预览的 url

生成媒体后预览

生成媒体后,在 Web UI 中通过以下路径预览:

/guide-dog/media/<file>

同时,在回复中包含返回的 url 字段,方便用户在对话卡片中访问生成结果。

语音请求

语音请求会路由到 guide_dog_speak

如果你已经配置了 audio-conversationspeech-mmx skill pipeline,guide_dog_speak 会复用这些 pipeline;如果缺失,会回退到 mmx speech synthesize

适用场景与注意

这个插件适合需要在 DSH web profile 中增加多模态能力的开发者,尤其是以下场景:

  • 需要让模型检查图片、截图、图表或前端设计
  • 需要在对话中生成图像、视频、语音、音乐或文本
  • 需要在 Web UI 中直接预览生成结果
  • 需要语音输入、语音输出或实时通话模式

使用前注意:

  • 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
  • 媒体全局存储位于 ~/.dsh/guide-dog,自 2026-08-16 起为整个 web profile 单实例。
  • 媒体服务使用扩展名 allowlist、basename-only lookup/traversal guard,并支持 byte-range。
  • plugin-source.js 是 legacy 参考文件,不参与当前 deploy flow。

结尾

AtropinolTT/dsh-guide-dog 的价值在于把视觉检查、多模态生成、语音交互和 Web UI 预览整合进 DSH web profile,让插件能力更贴近实际开发流程。

仓库地址:

https://github.com/AtropinolTT/dsh-guide-dog
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜