Back to home@ywleeo

dsh-vision-dashscope

No description

Stars
0
Language
Python
Created
Aug 19, 2026
Updated
Aug 19, 2026
GitHub repo

Introduction

dsh-vision-dashscope

通过 DashScope / 千问(Qwen) 识别并生成图片、视频、音频的 DSH 插件(MCP server)。专治 Deepseek-omnimodal 等插件「视频大了就不行」的问题:

  • 长视频/大视频直接识别:走百炼临时 OSS 直传oss:// 临时 URL,单文件上限 1GB,按模型的 max_file_size_mb 校验),不压缩、不损画质;小视频(≤14MB)走 base64 省一次上传。
  • mkv / avi 等浏览器不可播格式也能识别(模型服务端解码抽帧)。
  • 音频:短音频 qwen3.5-omni 直接理解,长音频自动 fun-asr 转写。

工具

工具说明
recognize_image本地图片 / 图片 URL → 描述或按任务分析(qwen3.7-flash)
recognize_video本地视频 / 视频 URL → 描述或按任务分析(qwen3.7-flash;大文件 OSS 直传)
recognize_audio短音频 qwen3.5-omni 理解;长音频 fun-asr 转写
generate_image文生图(qwen-image-3.0 等;约 0.18 元/张起)
generate_video文生视频(wan2.7-t2v / happyhorse-1.1-t2v;约 0.6 元/秒起)
generate_video_from_image图生视频(wan2.7-i2v 等,首帧图片自动上传临时 OSS)
dashscope_status查看当前模型与限制配置
  • 识别工具会调用 DashScope 付费 API(按 token 计费,量小价低)。
  • 生成工具必须 confirm=true 才会实际调用付费接口false 时只返回预计费用(如"预计 3.00 元(5 秒 × 0.6 元/秒)")。
  • 生成结果自动下载到本地输出目录(默认 ~/Downloads/dsh-vision-dashscope,可用 DASH_VISION_OUTPUT_DIR 修改),返回本地路径——配合 dsh-image-preview 可直接在对话里内联预览。
  • 文生图默认额外转一张 JPEG 预览preview 字段,最长边 1600px / 质量 85,可配),原始 PNG 保留在 files 中——DSH 图片内联上限 5MB,大 PNG(1792×2400 可达 7MB)直接内联会 404,用 JPEG 预览即可正常显示。

安装

需要 Python 3.12+、uv。复制 .env.example.env 并填写 API Key:

git clone https://github.com/ywleeo/dsh-vision-dashscope.git
cd dsh-vision-dashscope
cp .env.example .env    # 填入 DASH_VISION_API_KEY
uv sync

API Key 也可用环境变量:DASH_VISION_API_KEY(缺省回退 OMNIMODAL_API_KEY / DASHSCOPE_API_KEY)。

DSH 接入

~/.dsh/profiles/web/cordis.patch.yml(用户 patch 层)追加:

- insert:
    - id: mcp-vision-dashscope
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: vision-dashscope
        transport: stdio
        command: /Users/leeo/.local/bin/uv
        args:
          - run
          - --directory
          - /path/to/dsh-vision-dashscope
          - dsh-vision-dashscope
        failOnStartupError: false

重启 dsh web。连接后工具以 mcp__vision-dashscope__recognize_video 等名字出现。

大文件上传原理(长视频关键)

  1. GET /api/v1/uploads?action=getPolicy&model=<model> 获取上传凭证(含 upload_host、签名、max_file_size_mb);
  2. multipart 上传文件到 OSS 临时存储,得到 oss://<key> 临时 URL(有效期 48h,免费);
  3. chat 请求 video_url: {"url": "oss://..."} 并在 header 加 X-DashScope-OssResourceResolve: enable,模型服务端拉取解码抽帧。

参考:上传文件获取临时 URL(阿里云百炼文档)视觉理解(视频)

配置(环境变量 / .env)

变量默认说明
DASH_VISION_API_KEYAPI Key(回退 OMNIMODAL_API_KEY / DASHSCOPE_API_KEY)
DASH_VISION_IMAGE_MODELqwen3.7-flash图片识别模型
DASH_VISION_VIDEO_MODELqwen3.7-flash视频识别模型
DASH_VISION_AUDIO_MODELqwen3.5-omni-flash短音频理解模型
DASH_VISION_ASR_MODELfun-asr长音频转写模型
DASH_VISION_VIDEO_BASE64_MAX_MB14视频 base64 阈值,超出走 OSS 直传
DASH_VISION_AUDIO_OMNI_MAX_SEC300长音频转写阈值(秒)
DASH_VISION_IMAGE_GEN_MODEL_STANDARDqwen-image-3.0文生图模型(PRO/MAX 档同理)
DASH_VISION_VIDEO_GEN_MODEL_STANDARD_T2Vwan2.7-t2v文生视频模型(MAX 档 happyhorse-1.1-t2v;I2V 同理)
DASH_VISION_OUTPUT_DIR~/Downloads/dsh-vision-dashscope生成结果保存目录
DASH_VISION_MAX_VIDEO_DURATION10视频生成时长上限(秒)
DASH_VISION_MAX_TOKENS4096输出上限

测试

uv run pytest -q

License

MIT