# dsh-media-skills

> 为 DeepSeek Harness 提供图片识别、视觉检查与图片生成能力，并自动注册可配置的视觉模型。

## Metadata

- Author: [@akqwpeter-prog](https://github.com/akqwpeter-prog)
- Repo: <https://github.com/akqwpeter-prog/dsh-media-skills.git>
- GitHub: [MJorgin/dsh-media-skills](https://github.com/MJorgin/dsh-media-skills)
- Stars: 16
- Language: Python
- License: [MIT](https://spdx.org/licenses/MIT.html)
- Homepage: <https://github.com/MJorgin/dsh-media-skills>
- Topics: `agent-skills`, `deepseek-harness`, `dsh-plugin`, `image-generation`, `skill`, `vision`
- Forks: 2
- Open Issues: 1
- Last push: 2026-08-21T05:30:31.000Z
- Added: 2026-08-16T00:00:00.000Z

## Install

```bash
dsh plugin --profile web add github:akqwpeter-prog/dsh-media-skills
```

## Wiki

## 一句话定位
这个插件把读图、视觉检查和图片生成接入 DeepSeek Harness，可在模型选择器使用视觉模型，也可在已适配的宿主中把图片转成文字后交给纯文本模型。API Key 需要由用户自行准备。

## 核心能力
- 读取本地图片和截图，概括内容、提取文字，并整理版面与对象关系。
- 检查界面截图中的文字重叠、内容溢出、元素错位、配色问题和水印等视觉异常。
- 输出摘要、完整 OCR、阅读顺序、对象关系和不确定性组成的结构化结果，方便后续程序读取。
- 自动缩放并分批处理多张图片，单次读图请求最多发送 5 张，避免超过服务限制。
- 调用 SenseNova 或 SiliconFlow 生成插画、头像、背景和横幅，并保存到指定文件。
- 注册智谱与商汤的视觉模型路线，并在已配置密钥时按智谱、SiliconFlow、SenseNova、Gemini 及自定义服务的顺序故障转移。

## 技术实现
- **语言**: JavaScript ESM + Python 3
- **关键依赖**: Python 3 标准库、Pillow 图片处理库、Node.js 标准库、OpenAI 兼容服务接口
- **架构模式**: Cordis 插件入口注册技能提供方并补写缺失的模型路线；技能加载本地说明文件，再调用 Python 脚本处理图片或生成图片
- **入口文件**: `index.js`

## 适用场景
适合需要查看截图、核对页面排版、提取图片文字，或在聊天中生成素材的用户。日常单图问答可以直接使用视觉模型；批量检查、脚本化处理，以及让纯文本模型理解图片，则更适合走读图技能或已打补丁的贴图链路。

## 前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DeepSeek Harness | 0.1.0-rc.7～0.1.0-rc.8（完整贴图） | 技能和模型路线未声明最低 DSH 版本；纯文本会话自动转述需在对应版本源码应用宿主与客户端补丁 |
| Node.js | 未声明 | 入口使用 ESM，并读取 Node.js 内置文件系统与 URL 模块；仓库没有 npm 运行时依赖 |
| Python 3 | 未声明 | 两个技能脚本由 `python3` 启动；README 徽章标注 3.9+，但依赖系统未强制校验该版本 |
| Pillow | 未声明 | 读图脚本处理 JPEG 压缩时动态导入 Pillow；缺少时运行 `vision-review` 的诊断命令会提示手动安装 |
| 服务商 API 与网络 | 不适用 | 至少需要可访问的读图服务与对应 API Key；生成图片还需图片生成服务的 Key |
| 平台 | 跨平台 | 未声明操作系统或 CPU 限制，也不依赖原生模块；实际运行仍取决于 DSH 宿主、Python 和网络环境 |

## 安装方式
```bash
dsh plugin --profile web add github:akqwpeter-prog/dsh-media-skills
```

## 配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| `GLM_API_KEY` | 密钥（字符串） | 智谱读图服务的访问凭证；未配置时不能使用该读图路线 | 未配置 |
| `SENSENOVA_API_KEY` | 密钥（字符串） | 优先用于图片生成，也可在读图主路线失败时使用 | 未配置 |
| `SILICONFLOW_API_KEY` | 密钥（字符串） | 用于图片生成，并在读图主路线失败时参与故障转移 | 未配置 |
| `GEMINI_API_KEY` | 密钥（字符串） | 智谱或其他备用服务失败后，尝试使用 Gemini 读图 | 未配置 |
| `SENSENOVA_VISION_MODEL` | 模型名（字符串） | 覆盖商汤读图时使用的模型 | `sensenova-6.8-flash-lite` |
| `SILICONFLOW_VISION_MODEL` | 模型名（字符串） | 覆盖 SiliconFlow 读图时使用的模型 | `Qwen/Qwen3-VL-8B-Instruct` |
| `GEMINI_MODEL` | 模型名（字符串） | 覆盖 Gemini 读图时使用的模型 | `gemini-3.6-flash` |
| `GEMINI_PROXY` | 代理地址（字符串） | 仅供 Gemini 联网使用；未设置时会沿用系统 `HTTPS_PROXY` | 未显式设置 |
| `VISION_FALLBACKS` | JSON 数组 | 追加自定义读图服务；每项提供服务地址和模型，可选填写密钥变量名、输出上限及结构化输出开关 | `[]` |

脚本优先从环境变量读取密钥，其次读取 `~/.dsh/secrets/media-tools.env`，最后兼容读取 `~/.codex/secrets/media-tools.env`。插件不会把密钥写入仓库；视觉模型路线使用 DSH 凭据存储中的同名变量。

## 常见问题

**Q: 安装后需要额外配置吗？**

A: 需要。读图至少要配置智谱 API Key，图片生成还要配置 SenseNova 或 SiliconFlow API Key；其他服务可按需用于故障转移。密钥应放在环境变量或本机凭据文件中，不要写入仓库。

**Q: 纯文本模型可以直接贴图吗？**

A: 可以在已适配的 DSH 宿主中实现。仓库只提供模型路线、读图与生图技能；直接贴图还需要在 DSH 0.1.0-rc.7 或 rc.8 对应源码应用匹配的宿主和客户端补丁，否则纯文本会话可能继续拒绝图片。

**Q: 图片会保存在哪里？**

A: 读图脚本不会把输入图片保存到仓库或指定输出目录。直接贴图时，宿主会把原图留在会话附件库；生成图片只写入调用者给定的目标路径。

**Q: 图片会发送给谁？**

A: 图片会发送到当前读图服务，生成任务会发送到 SenseNova 或 SiliconFlow。Google 免费服务的请求数据可能被用于改进其产品，处理证件、内部资料或客户截图前应先确认服务商条款。

**Q: 是否支持 macOS、Windows 和 Linux？**

A: 插件没有操作系统或 CPU 限制，也没有原生模块。系统需要能够运行 DSH、Python 3 和 Pillow，并能访问所选服务；其余限制来自 DSH 宿主机。

**Q: 报 `1210` 或输入输出总量超限怎么办？**

A: 智谱读图服务要求单次输出不超过 1024，输入与输出合计不超过 16384。插件已按该限制配置；长会话可新建后重试，并确认自动注册的模型配置没有被改成更高的输出上限。

**Q: 读图服务不可用时如何排查？**

A: 可运行 `vision-review` 脚本的 `--doctor` 选项，检查 Python、Pillow、密钥和各个服务的连通性。也可配置第二个视觉服务或通过 `VISION_FALLBACKS` 追加自定义路线。

**Q: 如何卸载？**

A: 可运行 `dsh plugin --profile web remove dsh-media-skills`。插件不会主动删除已写入 DSH 设置的模型条目；不再使用时可手动删除对应模型配置并重启 DSH。

## 上手难度
进阶 — 技能调用本身简单，但完整贴图能力需要准备 API Key、理解 DSH 模型设置，并在对应版本源码中手动应用宿主与客户端补丁。

## 已知问题与限制
- 直接贴图自动转述不在插件代码内，仍依赖 DSH 本体的视觉转述补丁；仓库提供的补丁只验证了 rc.7 与 rc.8，不能混用不同版本补丁。
- 智谱单次读图请求最多处理 5 张图片；脚本会把更多图片拆成多批，但智谱输出上限为 1024，输入与输出合计上限为 16384。
- 仓库没有声明 Python 依赖，也不会自动安装 Pillow；缺少 Pillow 时读图功能无法完成图片压缩。
- 自动注册模型路线时，只会在对应路线不存在时补写智谱和 SenseNova 配置，不会写入 API Key，也不会替用户配置 SiliconFlow 或 Gemini 路线。
- 随附的 DSH 补丁文档指出，图片投影逻辑仍缺少单元测试；现有证据主要来自补丁回环检查和指定包的类型检查。

---

This document is auto-generated by [deepseek-plugin.org](https://deepseek-plugin.org). HTML page: [dsh-media-skills](https://deepseek-plugin.org/plugins/akqwpeter-prog/dsh-media-skills)
Wiki generated by AI (model: `MiniMax-M3`)
