Skip to content

Nerdlin/AIO-telegram-bot

Repository files navigation

AIO — Telegram-бот ассистент

AIO — это Telegram-бот для личной продуктивности: регистрация, задачи с напоминаниями, GPT-диалог и безопасная работа с файлами.

Что умеет бот

  • Регистрация пользователя и хранение профиля
  • Просмотр и редактирование своих данных
  • Создание задач с напоминаниями по времени
  • Многошаговый GPT-чат с историей диалога
  • Загрузка и скачивание файлов
  • Отмена любого сценария через /cancel

Ключевые особенности

  • Изоляция файлов по пользователям: user_files/<user_id>/
  • Санитизация имён файлов перед сохранением
  • Лимит на размер загружаемого файла
  • Устойчивая обработка ошибок GPT (retry/backoff)
  • Гибкий запуск: бот работает даже без OPENAI_API_KEY (GPT-чат будет отключён)

Технологии

  • Python 3.11+
  • aiogram 3
  • OpenAI Python SDK
  • python-dotenv
  • pytest

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

python -m venv venv
# Windows
venv\Scripts\activate
pip install -r requirements.txt
python AIO.py

Настройка окружения

Скопируйте .env.example в .env и заполните значения.

Переменная Обязательно Назначение
API_TOKEN Да Токен Telegram-бота
OPENAI_API_KEY Нет Ключ OpenAI для GPT-чата

Если OPENAI_API_KEY не задан, бот продолжит работать, но GPT-ответы будут недоступны.

Команды

Команда Назначение
/start Главное меню
/help Краткая справка
/cancel Прервать текущий сценарий

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

AIO/
  AIO.py                  # Главный файл бота
  app_utils.py            # Валидации и безопасные файловые хелперы
  users_data.json         # Хранилище профилей (runtime)
  tasks_data.json         # Хранилище задач (runtime)
  user_files/             # Файлы пользователей
  tests/
    test_app_utils.py     # Unit-тесты утилит
  requirements.txt
  requirements-dev.txt
  .env.example

Тесты

pip install -r requirements-dev.txt
pytest -q

Пример сценария

  1. Пользователь запускает /start.
  2. Проходит регистрацию.
  3. Создаёт задачу в формате YYYY-MM-DD HH:MM.
  4. Получает напоминание в нужный момент.
  5. Заходит в GPT-чат и продолжает диалог в одном контексте.

Безопасность

  • Не коммитьте .env и токены в репозиторий.
  • Ротуйте ключи при утечке.
  • Используйте отдельный API-ключ OpenAI с лимитами.

Дальнейшее развитие

  • Перенос JSON-хранилищ в SQLite/PostgreSQL
  • Роли и админ-функции
  • Более глубокая аналитика задач

Лицензия

MIT

About

Интерактивный Telegram-бот ассистент: регистрация пользователей, задачи с напоминаниями, многошаговый GPT-чат и управление файлами.

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages