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- Пользователь запускает
/start. - Проходит регистрацию.
- Создаёт задачу в формате
YYYY-MM-DD HH:MM. - Получает напоминание в нужный момент.
- Заходит в GPT-чат и продолжает диалог в одном контексте.
- Не коммитьте
.envи токены в репозиторий. - Ротуйте ключи при утечке.
- Используйте отдельный API-ключ OpenAI с лимитами.
- Перенос JSON-хранилищ в SQLite/PostgreSQL
- Роли и админ-функции
- Более глубокая аналитика задач
MIT