Практика: декомпозиция аналитической задачи
Практика: декомпозиция аналитической задачи
Применим все четыре техники модуля к реальной задаче. Ты увидишь полный цикл: от сложного запроса до цепочки проверенных шагов.
Задача
Менеджер продукта хочет понять, что клиенты говорят о новом приложении. У него есть 4 отзыва из открытых источников. Нужно подготовить аналитическую записку: о чём говорят, что хвалят, что ругают, какие есть предложения.
Шаг 0: Попытка решить одним промптом
Проанализируй эти 4 отзыва и напиши аналитическую записку. Включи:
общую тональность, что хвалят, что ругают, предложения по улучшению.
Отзывы:
1. "Отличный дизайн! Но приложение часто вылетает."
2. "Удобно, но почему так дорого? 500 ₽ в месяц — это грабёж."
3. "Тёмная тема — супер. Не хватает экспорта в PDF."
4. "Интерфейс дружелюбный. Быстро загружается. Всё нравится!"
Ответ (одним промптом, без декомпозиции):
Общая тональность: смешанная. Пользователи хвалят дизайн
и интерфейс, но жалуются на цену и отсутствие экспорта в PDF.
Результат поверхностный: модель не разобрала каждый отзыв отдельно, смешала все плюсы и минусы в общую кашу, проигнорировала жалобу на вылеты.
Шаг 1: Извлечение (prompt 1)
Извлеки из каждого отзыва ключевую информацию. Верни JSON-массив
из 4 объектов с полями:
- id: номер отзыва,
- sentiment: positive / negative / mixed,
- praise: что хвалят (строка или null),
- complaint: на что жалуются (строка или null),
- suggestion: что предлагают (строка или null).
Отзывы:
1. "Отличный дизайн! Но приложение часто вылетает."
2. "Удобно, но почему так дорого? 500 ₽ в месяц — это грабёж."
3. "Тёмная тема — супер. Не хватает экспорта в PDF."
4. "Интерфейс дружелюбный. Быстро загружается. Всё нравится!"
Выход Шага 1:
[
{"id": 1, "sentiment": "mixed", "praise": "дизайн", "complaint": "приложение вылетает", "suggestion": null},
{"id": 2, "sentiment": "negative", "praise": "удобство", "complaint": "высокая цена (500 ₽/мес)", "suggestion": null},
{"id": 3, "sentiment": "mixed", "praise": "тёмная тема", "complaint": null, "suggestion": "добавить экспорт в PDF"},
{"id": 4, "sentiment": "positive", "praise": "интерфейс, скорость загрузки", "complaint": null, "suggestion": null}
]
Проверка: все 4 отзыва на месте? ✓. Поля заполнены корректно? Отзыв 3: «Не хватает экспорта» → suggestion, не complaint — верно. Отзыв 2: praise + complaint = mixed, но модель поставила negative — спорно, но допустимо (жалоба перевешивает). Принимаем.
Шаг 2: Агрегация (prompt 2)
Просуммируй результаты анализа из JSON ниже. Напиши краткую сводку:
- Общая тональность (одно предложение).
- Топ позитивных моментов (2–3 пункта).
- Топ проблем (2–3 пункта).
- Топ предложений (если есть).
- Вывод: главное, что нужно исправить в первую очередь.
JSON:
[результат Шага 1]
Выход Шага 2:
Общая тональность: смешанная с преобладанием позитива — 1 чисто
позитивный, 2 смешанных, 1 негативный.
Топ позитивных моментов:
- Дизайн и интерфейс — хвалят в отзывах 1, 2, 4.
- Скорость работы — отмечена в отзыве 4.
- Дополнительные фичи (тёмная тема) — отзыв 3.
Топ проблем:
- Технические проблемы: приложение вылетает (отзыв 1).
- Высокая цена: 500 ₽/мес воспринимается как «грабёж» (отзыв 2).
- Отсутствие экспорта в PDF (отзыв 3).
Топ предложений:
- Добавить экспорт в PDF.
Вывод: в первую очередь нужно исправить техническую проблему
с вылетами — это самый критичный баг. Затем — пересмотреть
ценообразование (или объяснить ценность) и добавить экспорт в PDF.
Проверка: все категории отзывов учтены? ✓. Вывод логичен? ✓. Конкретные рекомендации есть? ✓.
Шаг 3: Форматирование (prompt 3)
Оформи аналитическую записку в Markdown для презентации команде.
Структура:
## Что говорят пользователи: анализ отзывов
**Общая оценка:** [тональность]
### Что нравится
- ...
### Что не нрав
- ...
### Предложения пользователей
- ...
### Приоритеты на ближайший спринт
1. ...
2. ...
3. ...
Используй данные из сводки:
[результат Шага 2]
Финальный выход — готовая аналитическая записка в Markdown. Сразу в презентацию.
Что дала декомпозиция
| Без декомпозиции | С декомпозицией |
|---|---|
| Поверхностный обзор | Детальный разбор каждого отзыва |
| Смешаны плюсы и минусы | Чёткое разделение praise/complaint/suggestion |
| Нет проверки | Каждый шаг проверен |
| Нет приоритетов | Конкретные приоритеты на спринт |
Проверь себя
Дана задача: «Из 5 описаний вакансий выбери 2 лучшие для отклика». Спроектируй декомпозицию из 3 шагов. Для каждого шага опиши: что делает, какой формат входа/выхода, что проверяешь.
Итог
- Декомпозиция превращает размытую задачу в производственный конвейер.
- Шаг 1: извлечение данных в структурированный формат.
- Шаг 2: агрегация и анализ.
- Шаг 3: форматирование под аудиторию.
- Между шагами — проверка. Ошибка на раннем шаге дешевле, чем переписывание всей записки.
Что дальше
Ты освоил декомпозицию сложных задач. Теперь перейдём к работе с длинным контекстом — когда данных так много, что даже декомпозиция не всегда помогает. Как размещать данные в промпте, чтобы модель не теряла фокус.