dsh-media-skills — анализ и генерация изображений для DeepSeek Harness
# 🎨 dsh-media-skills ### Навыки анализа и генерации изображений для DeepSeek Harness v0.1.6 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](../../LICENSE) [![Python 3.9+](https://img.shields.io/badge/Python-3.9%2B-blue.svg)](https://python.org) [![DeepSeek Harness](https://img.shields.io/badge/DSH-v0.1.6--alpha.2-4D6BFE)](https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.1.6-alpha.2) [![No bundled keys](https://img.shields.io/badge/keys-never%20in%20repo-8B5CF6)](#настройка-ключей) [![Docs](https://img.shields.io/badge/docs-9%20languages-4D6BFE)](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 или другим внешним провайдерам без разрешения политики компании. ## Примеры Подробнее: [examples/README.md](../../examples/README.md). ## License [MIT](../../LICENSE)