🤖 Telegram-бот, который помогает продакт-менеджерам превращать сырые идеи фич в проработанные требования через умный диалог с AI-ментором.
Менеджеры часто ставят задачи в пару строк, не продумывая:
- Зачем нужна фича и какой эффект она должна дать
- Как она работает для разных пользователей
- Какие corner-кейсы и зависимости с другими системами
Из-за этого разработчики заваливаются вопросами, сроки сдвигаются, фичи реализуются не по сути.
Product Manager Bot решает эту проблему:
- Задаёт уточняющие "прожаривающие" вопросы как опытный продукт-ментор
- Помогает проговорить идею по ключевым осям (зачем, кому, как, метрики, edge cases)
- Генерирует структурированный Markdown-документ с требованиями
- 🎤 Голосовой ввод — отправляй голосовые сообщения, бот распознает через Whisper API
- 💬 Текстовый ввод — пиши обычные сообщения
- 🧠 Умный диалог — AI-ментор задаёт контекстные вопросы через GPT-4
- 📄 Генерация документов — автоматическое создание product brief в Markdown
- 💾 Сохранение сессий — можно вернуться к обсуждению позже
- 🇷🇺 Полностью на русском — весь интерфейс и общение
- Python 3.11+
- Telegram Bot Token (получить у @BotFather)
- OpenAI API Key (получить на platform.openai.com)
- (Опционально) Proxy URL для доступа к OpenAI
- Клонируйте репозиторий:
git clone <repository-url>
cd chasik_my_first_bot- Создайте виртуальное окружение и установите зависимости:
python3 -m venv venv
source venv/bin/activate # На Windows: venv\Scripts\activate
pip install -r requirements.txt- Создайте файл
.envс вашими ключами:
BOT_TOKEN=your_telegram_bot_token_here
OPENAI_API_KEY=your_openai_api_key_here
PROXILINE_URL=http://user:pass@proxy.example.com:port # Опционально
OPENAI_MODEL=gpt-4-turbo # Или gpt-4o-mini для экономии- Запустите бота:
python bot.pyБот запустится и начнёт принимать сообщения!
-
Начните диалог:
/newtask -
Опишите свою идею (текстом или голосом):
Хочу добавить функцию "избранные товары" в приложение -
Отвечайте на вопросы бота:
Бот будет задавать уточняющие вопросы типа:
- Какую проблему пользователей это решает?
- Как вы будете измерять успех этой фичи?
- Опишите user flow — что видит пользователь?
- Какие могут быть edge cases?
- Как это интегрируется с текущими системами?
-
Генерируйте документ:
Когда бот решит, что идея достаточно проработана, он предложит:
/generate -
Получите готовый бриф в формате Markdown со структурой:
- 🎯 Проблема и цель
- 👥 Целевые пользователи
- 📊 Ожидаемый эффект
- 🔄 User Flow
⚠️ Edge Cases- 🔧 Технические зависимости
- 📏 Оценка сложности
- 🚀 Следующие шаги
| Команда | Описание |
|---|---|
/start |
Приветственное сообщение |
/newtask |
Начать обсуждение новой фичи |
/generate |
Сгенерировать итоговый документ |
/cancel |
Отменить текущую сессию |
/help |
Показать справку |
💡 Будьте конкретны — чем подробнее отвечаете на вопросы, тем качественнее бриф
🎤 Используйте голос — удобно проговаривать идеи голосом вместо печати
🤔 Думайте над вопросами — бот специально задаёт сложные вопросы, чтобы помочь вам продумать все аспекты
📝 Не спешите — хороший бриф получается после 7-12 осмысленных ответов
chasik_my_first_bot/
├── bot.py # Основной код бота с хендлерами
├── utils.py # OpenAI интеграция и менеджер сессий
├── prompts.py # Системные промпты и шаблоны
├── requirements.txt # Python зависимости
├── sessions.json # Хранилище сессий (создаётся автоматически)
├── .env # Переменные окружения (не в git!)
├── Dockerfile # Docker конфигурация
├── captain-definition # CapRover конфигурация
└── README.md # Документация
- Python 3.11 — основной язык
- python-telegram-bot 20.x — асинхронная библиотека для Telegram Bot API
- OpenAI API — GPT-4 для диалога, Whisper для распознавания речи
- aiofiles — асинхронная работа с файлами
- JSON — хранение сессий (MVP версия)
- Никогда не коммитьте
.envфайл в git - Храните API ключи в безопасности
- Используйте
.gitignoreдля исключения чувствительных данных sessions.jsonсодержит переписки — не делитесь им публично
- Установите CapRover CLI:
npm install -g caprover-
Настройте переменные окружения в панели CapRover:
BOT_TOKENOPENAI_API_KEYPROXILINE_URL(если нужен proxy)OPENAI_MODEL
-
Задеплойте:
caprover deploydocker build -t pm-bot .
docker run -d \
-e BOT_TOKEN=your_token \
-e OPENAI_API_KEY=your_key \
pm-botbot.py — главный файл:
- Инициализация Telegram бота
- Обработчики команд (/start, /newtask, etc.)
- Обработка текстовых и голосовых сообщений
- Управление диалогом
utils.py — утилиты:
get_openai_client()— настройка OpenAI с proxytranscribe_voice()— распознавание голоса через Whisperchat_completion()— общение с GPT-4SessionManager— управление сессиями пользователейgenerate_brief_document()— генерация финального документа
prompts.py — промпты:
SYSTEM_PROMPT— роль AI-ментораBRIEF_GENERATION_PROMPT— шаблон для генерации брифа- Все текстовые сообщения бота
Бот логирует все события в консоль:
logging.basicConfig(level=logging.INFO)Логи включают:
- Создание/удаление сессий
- Обработку сообщений
- OpenAI API вызовы
- Ошибки и исключения
Планируется в следующих версиях:
- PostgreSQL вместо JSON для хранения сессий
- Векторная база знаний с контекстом Яндекс Лавки
- Интеграция с Startrek для автосоздания тикетов
- Inline комментарии — бот оставляет фидбек под задачей
- Аналитика — статистика по качеству брифов
- Мультиюзер — совместное обсуждение идей
- Шаблоны — готовые шаблоны для типовых фич
- Интеграция с ARGUS/Analytics API
- Проверьте, что
BOT_TOKENправильный - Убедитесь, что бот запущен (
python bot.py) - Проверьте логи на ошибки
- Проверьте
OPENAI_API_KEY - Если используете proxy — проверьте
PROXILINE_URL - Убедитесь, что на счету OpenAI есть средства
- Проверьте, что Whisper API доступен
- Попробуйте отправить текстовое сообщение
- Проверьте формат голосового (должен быть .ogg от Telegram)
- Это нормально — каждая сессия сохраняется
- Можно периодически чистить старые сессии
- В V2 будет миграция на PostgreSQL
MIT License
Создано для команды продакт-менеджеров Яндекс Лавки
Нужна помощь? Отправь /help в боте или создай issue в репозитории.
Хочешь улучшить бота? Pull requests приветствуются! 🚀