Skip to content

Mix13131/nenoybot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

НеНойBot

НеНойBot — локальный каркас AI-тренера по дисциплине, фокусу и результату.

На первом этапе проект работает как простой CLI и Telegram long polling worker. В онлайн-режиме бот может использовать OpenAI Responses API для живого разбора и Neon/Postgres для памяти по пользователям.

Назначение

НеНойBot помогает пользователю:

  • удерживать цель;
  • возвращаться к ближайшему действию;
  • пресекать прокрастинацию;
  • дробить задачи до шага на 5-20 минут;
  • фиксировать срок и отчет;
  • не превращать сложность в бесконечное нытье.

Структура проекта

nenoybot/
  README.md
  .gitignore
  .env.example
  requirements.txt

  prompts/
    system_prompt.md
    state_classifier.md
    combat_dictionary.md
    reaction_scenarios.md
    response_algorithm.md

  docs/
    architecture.md
    usage.md
    roadmap.md

  examples/
    examples.md
    user_dialogues.md
    test_cases.md

  app/
    main.py
    telegram_bot.py
    config.py
    openai_client.py
    memory_store.py
    prompt_loader.py
    nenoy_engine.py

  tests/
    test_prompt_loader.py
    test_nenoy_engine.py

Быстрый старт

cd /Users/tony/Projects/codex-workspace/nenoybot
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python app/main.py

Для выхода из CLI:

/exit

Для смены цели внутри CLI:

/goal Закончить черновик сегодня до 18:00

Проверка

pytest

Минимальная проверка без установки зависимостей:

python3 -m py_compile app/*.py
printf 'Закончить README сегодня\nпотом сделаю\n/exit\n' python3 app/main.py

Telegram-бот

  1. В Telegram открыть @BotFather.
  2. Выполнить /newbot и сохранить токен.
  3. Добавить токен в .env или переменные окружения хостинга:
TELEGRAM_BOT_TOKEN=123456:token
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-5.5
DATABASE_URL=postgresql://...
  1. Запустить worker:
python -m app.telegram_bot

Команды в Telegram:

/start
/goal Запустить проект сегодня до 20:00
/clear_goal

Также бот показывает обычные кнопки:

🎯 Задать цель
✅ Отчёт
🔥 Пинок
📌 Меню
🧹 Сбросить цель

Для цели и отчёта команды не нужны: нажми кнопку и следующим сообщением напиши текст.

Напоминания работают из обычного текста. Если написать срок:

Сегодня в 19:00 проверю API в Make
Завтра до 12:00 отправлю отчёт
Через 30 минут вернусь с результатом

бот сохранит напоминание и сам придёт за отчётом в указанное время. Часовой пояс задаётся переменной NENOYBOT_TIMEZONE, интервал проверки — NENOYBOT_REMINDER_CHECK_INTERVAL.

Для облачного запуска используй start command:

python -m app.telegram_bot

Для Railway start command уже зафиксирован в railway.json. После изменения переменных окружения достаточно сделать redeploy.

Если OPENAI_API_KEY не задан, бот отвечает локальным keyword-based движком. Если DATABASE_URL не задан, цель и история живут только в памяти процесса до перезапуска.

Что уже есть

  • системный промпт НеНойBot;
  • классификатор состояний;
  • боевой словарь;
  • сценарии реакций;
  • алгоритм ответа;
  • эталонные диалоги;
  • загрузчик markdown-промптов;
  • простой keyword-based движок;
  • GPT-разбор через OpenAI Responses API;
  • память через Neon/Postgres;
  • локальный CLI-запуск;
  • Telegram long polling worker;
  • базовые тесты.

Что дальше

  1. Проверить стиль ответов на реальных диалогах.
  2. Подключить LLM API отдельным слоем, не ломая локальный движок.
  3. Добавить постоянное хранилище целей и истории отчётов.

Процесс разработки

Проект ведётся по process-цепочке: Brain Storm → Architecture → Issue → PR → Report → Review → Merge → Next.

  • Для планирования и выполнения используются шаблоны в docs/process/ и .github/ISSUE_TEMPLATE/*.
  • Roadmap: docs/roadmap.md.
  • В процессе обязательны этапы DoD: Код, Тесты, Отчёт, Code Review, Обновлён roadmap.

About

НеНойBot: AI-тренер, который не слушает оправдания

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages