Техническое задание: Telegram-бот с ИИ

1. Цель проекта

Необходимо разработать простого Telegram-чат-бота, который взаимодействует с пользователем, используя возможности искусственного интеллекта (например, ChatGPT или аналог). Реализация должна быть минималистичной, без избыточной функциональности.

2. Основной функционал

2.1. Запуск бота

  • Команда /start инициирует работу.
  • Бот отправляет приветственное сообщение: «Привет! Напиши сообщение - я отвечу с помощью ИИ».

2.2. Система общения

  • Пользователь отправляет текстовое сообщение → бот передаёт его в модель ИИ → возвращает сгенерированный ответ пользователю.
  • Для каждого пользователя ведётся отдельный диалог.
  • Бот сохраняет контекст последних 5-10 сообщений в рамках одного диалога.

2.3. Управление диалогом

  • Команда /reset полностью очищает историю сообщений пользователя.

2.4. Обработка сбоев

  • При недоступности ИИ-сервиса бот должен информировать пользователя понятным сообщением.
  • Приложение должно быть устойчивым к ошибкам и не прекращать работу.

3. Технические требования

  • Язык программирования: Python.
  • Библиотека для бота: Aiogram или аналогичная.
  • Интеграция с ИИ: API OpenAI или совместимого сервиса.
  • Хранение данных: История диалогов может храниться в оперативной памяти, простом файле или SQLite-базе (на выбор исполнителя).
  • Конфигурация: Использование файла .env для хранения токенов и API-ключей.

4. Не входит в задачу

  • Реализация платёжных систем или подписок.
  • Создание административной панели.
  • Использование сложных СУБД (например, PostgreSQL).
  • Разработка веб-интерфейса.

5. Ожидаемые результаты

Исполнитель предоставляет:

  • Полный исходный код проекта.
  • Файл requirements.txt со списком зависимостей.
  • Краткую инструкцию по установке, настройке (указание токенов) и запуску бота.

Разработка системы временного доступа для Python-бота

Требуется реализовать систему ограниченного доступа для пользователей чат-бота. Каждому пользователю должен предоставляться доступ к функционалу на 24 часа, после чего доступ блокируется с соответствующим уведомлением.