Skip to content

dadkakdad/chasik_my_first_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Product Manager Bot для Яндекс Лавки

🤖 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

Локальная установка

  1. Клонируйте репозиторий:
git clone <repository-url>
cd chasik_my_first_bot
  1. Создайте виртуальное окружение и установите зависимости:
python3 -m venv venv
source venv/bin/activate  # На Windows: venv\Scripts\activate
pip install -r requirements.txt
  1. Создайте файл .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 для экономии
  1. Запустите бота:
python bot.py

Бот запустится и начнёт принимать сообщения!

📖 Как использовать

Основной флоу

  1. Начните диалог:

    /newtask
    
  2. Опишите свою идею (текстом или голосом):

    Хочу добавить функцию "избранные товары" в приложение
    
  3. Отвечайте на вопросы бота:

    Бот будет задавать уточняющие вопросы типа:

    • Какую проблему пользователей это решает?
    • Как вы будете измерять успех этой фичи?
    • Опишите user flow — что видит пользователь?
    • Какие могут быть edge cases?
    • Как это интегрируется с текущими системами?
  4. Генерируйте документ:

    Когда бот решит, что идея достаточно проработана, он предложит:

    /generate
    
  5. Получите готовый бриф в формате 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

  1. Установите CapRover CLI:
npm install -g caprover
  1. Настройте переменные окружения в панели CapRover:

    • BOT_TOKEN
    • OPENAI_API_KEY
    • PROXILINE_URL (если нужен proxy)
    • OPENAI_MODEL
  2. Задеплойте:

caprover deploy

Docker

docker build -t pm-bot .
docker run -d \
  -e BOT_TOKEN=your_token \
  -e OPENAI_API_KEY=your_key \
  pm-bot

🛠️ Разработка

Структура кода

bot.py — главный файл:

  • Инициализация Telegram бота
  • Обработчики команд (/start, /newtask, etc.)
  • Обработка текстовых и голосовых сообщений
  • Управление диалогом

utils.py — утилиты:

  • get_openai_client() — настройка OpenAI с proxy
  • transcribe_voice() — распознавание голоса через Whisper
  • chat_completion() — общение с GPT-4
  • SessionManager — управление сессиями пользователей
  • generate_brief_document() — генерация финального документа

prompts.py — промпты:

  • SYSTEM_PROMPT — роль AI-ментора
  • BRIEF_GENERATION_PROMPT — шаблон для генерации брифа
  • Все текстовые сообщения бота

Логирование

Бот логирует все события в консоль:

logging.basicConfig(level=logging.INFO)

Логи включают:

  • Создание/удаление сессий
  • Обработку сообщений
  • OpenAI API вызовы
  • Ошибки и исключения

🔮 Roadmap (V2)

Планируется в следующих версиях:

  • PostgreSQL вместо JSON для хранения сессий
  • Векторная база знаний с контекстом Яндекс Лавки
  • Интеграция с Startrek для автосоздания тикетов
  • Inline комментарии — бот оставляет фидбек под задачей
  • Аналитика — статистика по качеству брифов
  • Мультиюзер — совместное обсуждение идей
  • Шаблоны — готовые шаблоны для типовых фич
  • Интеграция с ARGUS/Analytics API

🐛 Troubleshooting

Бот не отвечает

  • Проверьте, что BOT_TOKEN правильный
  • Убедитесь, что бот запущен (python bot.py)
  • Проверьте логи на ошибки

Ошибка OpenAI API

  • Проверьте OPENAI_API_KEY
  • Если используете proxy — проверьте PROXILINE_URL
  • Убедитесь, что на счету OpenAI есть средства

Не распознаёт голос

  • Проверьте, что Whisper API доступен
  • Попробуйте отправить текстовое сообщение
  • Проверьте формат голосового (должен быть .ogg от Telegram)

sessions.json растёт

  • Это нормально — каждая сессия сохраняется
  • Можно периодически чистить старые сессии
  • В V2 будет миграция на PostgreSQL

📄 Лицензия

MIT License

👨‍💻 Автор

Создано для команды продакт-менеджеров Яндекс Лавки


Нужна помощь? Отправь /help в боте или создай issue в репозитории.

Хочешь улучшить бота? Pull requests приветствуются! 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors