Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

idea-bot

Телеграм-бот, который разбирает идею по шагам и выносит вердикт GO / PIVOT / KILL. Не одна простыня в ответ на промпт, а восемь отдельных шагов с гейтом между ними: каждый шаг — свой вызов модели, своё сообщение и своя развилка «дальше / поправить / пауза».

Шаги

# Шаг Веб В быстром режиме
1 Формулировка да
2 Допущения (🔴 смертельные) да
3 Спрос — проверка по реальным данным да
4 Конкуренты да
5 Премортем да
6 Реальность ресурсов
7 Самый дешёвый тест да
8 Вердикт да

Шаг видит сырую идею и все предыдущие шаги — и ничего про будущие. Поэтому он не может свернуть весь разбор в один ответ.

Профиль дела

После брифа бот спрашивает кнопкой, что это: точка с помещением, услуга без помещения или онлайн-продукт. Профиль меняет и системный промпт (кто перед тобой и что убивает такое дело), и акценты отдельных шагов — PROFILE_SYSTEM и PROFILE_HINTS в bot/steps.py.

Для точки спрос ищется в картах и отзывах района, конкуренты — в радиусе пешей доступности, ресурсы считаются в чеках за день против аренды и ФОТ, а дешёвый тест — это замер потока с секундомером, а не пост на реддите. Для выездной услуги то же самое через заявки с Авито и 2ГИС, стоимость заявки и потолок «сколько заказов влезает в неделю». Онлайн-профиль остался прежним.

Бриф на входе

«Разобрать идею» открывается не пустым полем, а списком из семи пунктов — идея, клиент, что он делает сейчас, деньги, что уже есть, сколько вложишь, город. Следом идёт пустой шаблон в <pre>: тапнул — скопировал — заполнил. Описание можно слать несколькими сообщениями, они склеиваются; счётчик символов и кнопка «Готово» ждут, пока человек не решит, что хватит. Короче 320 символов бот честно предупреждает, что разбор выйдет общим, но начать не мешает.

Микро-опрос между шагами

Перед шагами 1, 3 и 6 бот отдельным дешёвым вызовом придумывает два вопроса под конкретную идею — не из фиксированного списка. Каждый приходит с 3-4 кнопками-вариантами, кнопкой «✍️ Своими словами» и двумя выходами: «→ Пропустить» и «→ Пропустить всё». Отвечать необязательно: пропуск — полноценный ответ, шаг просто идёт без этих данных.

Ответы копятся в таблице questions и подмешиваются во все последующие шаги блоком «что пользователь рассказал о себе». Пропущенные в контекст не попадают. Какие шаги спрашивают — флаг ask=True в bot/steps.py.

Запуск

  1. @BotFather → новый бот → токен в .env (TELEGRAM_BOT_TOKEN=).
  2. Ключ Anthropic в .env (ANTHROPIC_API_KEY=). Модель по умолчанию — claude-sonnet-5, меняется строкой ANTHROPIC_MODEL= там же. OpenRouter остался запасным путём: используется, только если ключа Anthropic нет.
  3. run.bat.

Отчёт

После вердикта (и в карточке любого разбора) кнопка «📄 Отчёт» отдаёт разбор одним самодостаточным .html: обложка с плашкой вердикта, полоски оценок, оглавление, шаги, допущения таблицей с маркерами 🔴🟡⚪, источники ссылками и разворот «на что этот отчёт не отвечает» — он же прогрев к платному треку.

Внутри файла нет ничего внешнего: ни шрифтов, ни картинок, ни скриптов. Открывается из чата, работает офлайн, печатается в PDF через Ctrl+P (разрывы страниц уже расставлены). Markdown-выгрузка осталась, но видна только админу.

Проверка без телеграма

python tools/dry_run.py 2 fast     # первые два шага быстрого маршрута
python tools/dry_run.py 8 full     # весь разбор, с веб-поиском на 3-4
python tools/test_flow.py          # офлайн-проверка опроса и отчёта, без ключей
python tools/demo_report.py        # пересобрать демо-отчёт из exports/demo-razbor-*.md

Что где

  • bot/steps.py — все промпты. Тон и жёсткость правятся только здесь.
  • bot/engine.py — сборка контекста шага и вызов модели.
  • bot/handlers.py — телеграм-поток: гейты, пауза, «поправить», список разборов.
  • bot/llm.py — Anthropic Messages API (серверный web_search, adaptive thinking, докрутка pause_turn); OpenRouter как запасной провайдер. Поиск включается только на шагах 3-4 и только по кнопке.
  • bot/render.py — markdown-lite модели → безопасный Telegram HTML, разбивка на сообщения.
  • bot/billing.py — звёзды, бесплатный первый разбор, рефералы.
  • exports/ — разборы, выгруженные файлом.

«Запуск» — платный трек

После вердикта GO или PIVOT бот предлагает пакет «Запуск»: финмодель, локация, юридический чек-лист, смета с поставщиками, план на 60 дней. После KILL не предлагает — допродажа к «не делай» выглядит хамством.

Оплата ручная, без провайдера: бот выставляет счёт с номером, покупатель переводит по реквизитам из PAY_DETAILS и жмёт «Я оплатил», админу прилетает заявка с кнопками подтвердить/отклонить. /orders показывает последние счета и всё, что ждёт проверки. Двойное нажатие не плодит счета — открытый счёт по тому же разбору переиспользуется.

LAUNCH_ENABLED=0 в .env прячет предложение от всех, кроме админа. Пока артефактов нет, так и должно быть: продавать то, чего не существует, нельзя. Заполни PAY_DETAILS, иначе бот честно скажет, что платить некуда.

Деньги за разбор

Списывается один раз, при старте разбора: полный — 30⭐, быстрый — 12⭐. Первый разбор бесплатный. Оплаченный разбор можно ставить на паузу и возвращаться бесконечно, «поправить» на шаге — бесплатно, до трёх раз.

About

Пошаговый разбор идеи за 8 шагов: GO / PIVOT / KILL

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages