# 🎨 dsh-media-skills
### Навыки анализа и генерации изображений для DeepSeek Harness v0.1.6
[](../../LICENSE)
[](https://python.org)
[](https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.1.6-alpha.2)
[](#настройка-ключей)
[](README_RU.md)
Лёгкий плагин DSH с двумя медиа-навыками по принципу «ключ приносит пользователь» (bring-your-own-key):
- 👁️ **`vision-review`** — описание изображений, OCR, проверка скриншотов, поиск UI-проблем вроде наложения или обрезки текста и опциональный структурированный разбор.
- 🎨 **`media-tools`** — генерация иллюстраций, аватаров, фонов и баннеров через SenseNova U1 Fast или SiliconFlow Kolors.
Плагин использует жизненный цикл провайдера навыков DSH v0.1.6 и **не патчит ядро DSH, не меняет настройки моделей, не регистрирует модельные провайдеры и не пишет скрытую конфигурацию**.
[Зачем](#зачем-это-нужно) · [Установка](#установка) · [Ключи](#настройка-ключей) · [Использование](#использование) · [Вручную](#ручная-установка-в-каталог) · [Проверка](#проверка) · [FAQ](#faq)
[**English**](../../README.md) · [**简体中文**](README_ZH.md) · [**繁體中文**](README_ZH_TW.md) · [**日本語**](README_JA.md) · [**한국어**](README_KO.md) · [**Español**](README_ES.md) · [**Deutsch**](README_DE.md) · [**Português**](README_PT.md) · [**Русский**](README_RU.md)
---
## Зачем это нужно
DeepSeek Harness v0.1.6 уже поддерживает современную работу с вложениями и файлами для моделей, принимающих изображения. Этот бандл сфокусирован на двух дополнительных задачах, которые остаются полезными и при нативной поддержке вложений:
| Задача | Навык | Польза |
|---|---|---|
| Явный QA скриншотов | `vision-review` | Проверяет полноту отрисовки, наложения, обрезку, смещения, водяные знаки и визуальную согласованность. |
| OCR и изображение в текст | `vision-review` | Преобразует скриншоты, фото и сканы в текст, опционально — структурированный JSON-контракт. |
| Резервные движки | `vision-review` | Перебирает настроенные движки в предсказуемом порядке и сообщает о каждой неудаче. |
| Производство картинок | `media-tools` | Создаёт готовые файлы изображений по настроенному ключу SenseNova или SiliconFlow. |
Маршрутизация моделей остаётся за DSH и его интерфейсом **Models**. Поэтому плагин совместим с включением, выключением, удалением и перезапуском на лету в v0.1.6 и не оставляет глобального состояния.
## Что изменилось в v0.1.6
- Оба навыка регистрируются через `ctx.skills.registerProvider(...)`.
- Удалена старая неявная запись настроек `llm-pi-ai` и весь посев модельных маршрутов.
- Метаданные читаются напрямую из каждого `SKILL.md`, что исключает расхождение описаний.
- Поддержан жизненный цикл плагина: регистрация принадлежит fiber плагина и корректно удаляется.
- Старые патчи ядра оставлены только как исторический материал для `<= v0.1.1-rc.2`; в v0.1.6 они не нужны.
- Добавлены статическая проверка манифеста и рантайм-тест провайдера на подставном контексте.
## Установка
### Вариант 1: DSH Plugin Manager
Откройте Plugin Manager в DSH и добавьте:
```text
github:MJorgin/dsh-media-skills
```
Затем перезапустите профиль.
### Вариант 2: CLI
Для обычного профиля web:
```sh
dsh plugin --profile web add github:MJorgin/dsh-media-skills
```
Замените `web` на реально используемый профиль DSH. После установки перезапустите профиль, чтобы смонтировать новый бандл.
Сборка не требуется: пакет содержит готовые ESM и Python-скрипты, без установки зависимостей и скрипта `prepare`.
## Настройка ключей
Ключи никогда не хранятся в этом репозитории. Скрипты сначала читают переменные окружения, затем:
```text
~/.dsh/secrets/media-tools.env
~/.codex/secrets/media-tools.env # совместимость со старыми версиями
```
`vision-review` также умеет читать совместимые ключи из:
```text
~/.dsh/.credentials.yaml
```
`media-tools` читает переменные окружения и два файла `media-tools.env`; явно задайте его ключи в одном из этих мест.
| Ключ | Кто использует | Примечания |
|---|---|---|
| `GLM_API_KEY` | `vision-review` | Основной движок Zhipu `glm-4v-flash`; сверяйте актуальные условия цены/бесплатного лимита. |
| `DEEPSEEK_API_KEY` | `vision-review` | Опциональная платная визуальная модель DeepSeek; также читается из хранилища учётных данных DSH. |
| `SILICONFLOW_API_KEY` | Оба навыка | Qwen3-VL для анализа и Kolors для генерации. |
| `SENSENOVA_API_KEY` | Оба навыка | Визуальная модель SenseNova для анализа и U1 Fast для генерации. |
| `GEMINI_API_KEY` | `vision-review` | Опциональный резерв Gemini; в некоторых сетях нужен `GEMINI_PROXY`. |
Пример файла секретов:
```sh
# ~/.dsh/secrets/media-tools.env, рекомендуется chmod 600
GLM_API_KEY=...
SILICONFLOW_API_KEY=...
SENSENOVA_API_KEY=...
GEMINI_API_KEY=...
```
### Нативные графические модели DSH
Этот плагин не добавляет модель в список выбора DSH. Чтобы обычный диалог DSH нативно принимал изображения, настройте мультимодальную модель/провайдера в разделе **Models** и используйте штатный механизм вложений.
Используйте `vision-review`, когда нужен отдельный скриптовый процесс анализа/OCR, цепочка резервных движков или структурированный разбор, а не просто мультимодальный ответ в чате.
## Использование
### Визуальный анализ
Попросите DSH использовать `vision-review` или запустите скрипт из каталога навыка:
```bash
python3 scripts/vision.py screenshot.png
python3 scripts/vision.py a.png b.png --structured
python3 scripts/vision.py screenshot.png --provider=siliconflow-qwen
python3 scripts/vision.py --doctor
```
Промпт по умолчанию проверяет полноту отрисовки, наложение/смещение/обрезку текста, цветовую иерархию, водяные знаки и явные визуальные баги. Для конкретной задачи передайте сфокусированный промпт:
```bash
python3 scripts/vision.py page.png --prompt="Проверь, перекрываются ли кнопки, заголовки и графики, и укажи конкретные места"
```
В цепочку резервирования попадают только движки с доступным ключом. Опциональный вывод `--structured` содержит краткое содержание, OCR, раскладку в порядке чтения, семантику, визуальные заметки и неопределённости.
### Генерация изображений
```bash
python3 skills/media-tools/scripts/generate.py "китайский дворец в море облаков, реалистично, кинематографично, величественный масштаб" palace.jpg 16:9
```
При наличии `SENSENOVA_API_KEY` используется SenseNova, иначе при наличии `SILICONFLOW_API_KEY` — SiliconFlow Kolors. Размеры SenseNova можно задавать точными величинами или обычными соотношениями; скрипт подбирает ближайший поддерживаемый размер.
## Ручная установка в каталог
Рекомендуется установка плагином, поскольку в репозитории несколько навыков. Файловый провайдер v0.1.6 сканирует только один уровень под корнем навыков, поэтому прямая копия репозитория в `~/.dsh/skills/` не найдёт вложенные `skills/*/SKILL.md`.
При ручной установке создайте отдельную ссылку для каждого навыка:
```sh
git clone https://github.com/MJorgin/dsh-media-skills.git ~/.dsh/bundles/dsh-media-skills
mkdir -p ~/.dsh/skills
ln -s ~/.dsh/bundles/dsh-media-skills/skills/vision-review ~/.dsh/skills/vision-review
ln -s ~/.dsh/bundles/dsh-media-skills/skills/media-tools ~/.dsh/skills/media-tools
```
После создания ссылок перезапустите DSH.
## Проверка
Запустите все локальные проверки:
```sh
npm test
```
Входят проверка манифеста бандла DSH, рантайм-регистрация/загрузка провайдера через DSH-подобный контекст, проверка синтаксиса JavaScript и компиляция Python для обоих скриптов.
## Исторические патчи
Старые патчи ядра сохранены для тех, кто обслуживает устаревшие сборки DSH:
- [Заметки на китайском](../HARNESS_PATCH.md)
- [English notes](../HARNESS_PATCH_EN.md)
Они относятся к историческим сборкам до `v0.1.1-rc.2` включительно. Новым пользователям v0.1.6 применять их не нужно.
## Структура проекта
```text
dsh-media-skills/
├── package.json # Манифест бандла DSH и тестовые команды
├── cordis.patch.yml # Вставка плагина Cordis
├── index.js # Регистрация провайдера навыков
├── skills/
│ ├── vision-review/ # Анализ изображений и QA скриншотов
│ └── media-tools/ # Генерация изображений
├── scripts/ # Вспомогательные проверки бандла
├── examples/ # Примеры изображений и тестовая карточка
└── docs/ # Руководства, переводы и исторические заметки
```
## FAQ
**Нужен ли патч ядра для DSH v0.1.6?**
Нет. Настройте мультимодальную модель в DSH для нативного диалога с картинками либо используйте скрипты для отдельных процессов анализа и генерации.
**Плагин автоматически добавляет модель в список выбора?**
Нет. В v0.1.6 есть управление моделями и плагинами; плагин только регистрирует навыки и никогда не меняет настройки моделей.
**Все провайдеры бесплатны?**
Цены и условия бесплатных лимитов могут меняться. GLM-4V-Flash и Kolors обычно дружелюбны к бесплатным лимитам, DeepSeek — платный. Перед опорой на процесс проверьте актуальные условия провайдера.
**API-ключи входят в комплект?**
Нет. Ключи остаются в вашем окружении, хранилище учётных данных DSH или локальных файлах секретов.
**Куда отправлять конфиденциальные внутренние скриншоты?**
Только одобренным вашей организацией провайдерам. Не отправляйте внутренние документы в Gemini или другим внешним провайдерам без разрешения политики компании.
## Примеры