Почему DeepSeek требует своего подхода
DeepSeek-R1 и V3 обучались на данных с явной структурой рассуждений. Модель ожидает увидеть чёткую логику в промте: роль, контекст, формат вывода, критерии качества. Если вы пишете «напиши код» — получите средний результат. Если зададите архитектуру решения — получите продакшн-готовый код.
Ключевое отличие: DeepSeek лучше всего работает с XML-подобной разметкой и явным разделением на блоки <instructions>, <context>, <output_format>. Это не обязательно, но даёт прирост качества 15–30 % на сложных задачах.
Анатомия рабочего промта: 5 блоков
Роль (System)
Кто отвечает: эксперт, аудитория, тон. Задаёт границы компетенции.
Контекст
Входные данные, ограничения, предыстория. Чем больше релевантного — тем точнее ответ.
Задача
Чёткий глагол действия + ожидаемый результат. Один промт — одна атомарная задача.
Формат вывода
JSON, Markdown, таблица, код, список. Укажите схему, названия полей, экранирование.
Критерии качества
Чек-лист для самооценки модели: «проверь типы», «нет лишних зависимостей», «длина < 200 слов».
Категории промтов: выбери свою задачу
Код и рефакторинг
- Генерация модулей / API / схем БД
- Рефакторинг под паттерны (SOLID, DI)
- Покрытие тестами (unit, integration)
- Поиск багов и уязвимостей
- Миграция стека / языков
Анализ и структурирование
- Резюмирование длинных текстов / логов
- Извлечение сущностей и связей
- Сравнение документов / версий
- Фактчекинг и поиск противоречий
- Построение майнд-мап и схем
Тексты и контент
- Статьи, посты,ニュースletter под ТЗ
- Адаптация под тон бренда (Voice & Tone)
- SEO-оптимизация без переспама
- Перевод с сохранением контекста
- Сценарии для видео / подкастов
Сложное рассуждение (CoT)
- Многошаговые логические задачи
- Планирование проектов / спринтов
- Принятие решений по критериям
- Математика, алгоритмы, архитектура
- Диагностика проблем (root cause)
Готовые шаблоны: копируй и адаптируй
Ошибка vs Решение: разбор на живом примере
Типичный «плохой» промт
- Нет роли — модель угадывает уровень экспертизы
- Нет стека — Express? Fastify? Nest? Prisma? Drizzle?
- Нет архитектуры — слоистая? чистая? модульная?
- Нет формата — один файл? структуру папок? монолит?
- Нет критериев — что значит «чистый»?
- Результат: спагетти-код, который переписывать проще
Промт, который даёт результат
- Роль задаёт стек и паттерны сразу
- Модули перечислены — нет угадывания
- Требования = чек-лист приёмки
- Формат вывода исключает «воду»
- Результат: работающий каркас проекта за 1 запрос
Chain-of-Thought: когда включать рассуждения
Как это работает в DeepSeek-R1
DeepSeek-R1 — reasoning-модель. Она генерацирует скрытый цепочку мышления перед финальным ответом. Ты можешь управлять этим процессом тремя способами:
- Неявный CoT — просто пиши «подумай шаг за шагом». Модель включит рассуждения автоматически.
- Явный блок <thinking> — требуй вынести рассуждения в отдельный тег. Удобно для аудита и отладки.
- Структурированный CoT — задай шаги рассуждения: «сначала выдели сущности, затем связи, потом риски, потом план».
Правило: для задач до 3 шагов — неявный CoT. Для архитектуры, диагностики, планирования — всегда явный блок <thinking>.
Few-shot: когда один пример стоит тысячи слов
Паттерн: Input → Output пары
DeepSeek отлично перенимает формат из примеров. Давай 2–3 пары «вход → идеальный выход» перед реальной задачей.
Когда few-shot критичен
- Строгий формат вывода (JSON схема, GraphQL, SQL)
- Специфический стиль кода (внутренний style guide)
- Доменная терминология (медицина, финансы, промышленность)
- Многошаговые преобразования (ETL, пайплайны)
Лайфхак: храни библиотеку few-shot примеров в векторной БД. При задаче — делай similarity search топ-3 релевантных примера и подставляй в промт динамически. Это даёт консистентность на уровне команды.