Задача
Необходимо разработать Telegram-бота, который обрабатывает вопросы пользователей. При поступлении сообщения бот сначала проверяет наличие готового ответа в базе данных. Если ответ найден, он отправляет его пользователю. Если ответ отсутствует, бот запрашивает ответ у ChatGPT и сохраняет его в базу для последующего использования.
Функциональные требования
- Бот работает в Telegram на языке Python (например, с библиотекой aiogram или pyTelegramBotAPI).
- Интеграция с API OpenAI (ChatGPT) для генерации ответов.
- Подключение к реляционной базе данных (SQLite, PostgreSQL или аналогичной) для хранения пар вопрос-ответ.
- Логика работы: сначала поиск в БД, при пустом результате - запрос к ChatGPT, сохранение в БД и отправка пользователю.
Технические детали
- Язык: Python.
- Библиотеки: aiogram или аналогичный фреймворк для Telegram, openai (клиент для ChatGPT), peewee/SQLAlchemy для работы с БД.
- База данных: возможно, SQLite с ограничением по размеру - с ростом запросов потребляет много дискового пространства.
- Архитектура: асинхронная (на асинхронных вызовах/requests).
- Конфиг с токеном бота и API-ключом OpenAI - желательно через переменные окружения или config файл.
Прочая информация
Бот должен быть готов к развертыванию (деплою). Реализация логики кэширования/флага для пропуска записи в БД на усмотрение разработчика. Стартовая база избранных 10-20 общих вопросов (загрузка вручную). Код должен быть чистым и документированным.