Данный Telegram бот использует OpenAI Ассистента для ответа на сообщения пользователей. Он поддерживает аутентификацию пользователей, историю сообщений и может быть развёрнут с помощью Docker Compose.
- Использует OpenAI Ассистента для генерации ответов.
- Работает через пулинг Telegram (не использует webhook).
- Контроль доступа пользователей через переменные окружения.
- Простое развёртывание с помощью Docker Compose.
- Установленные Docker и Docker Compose.
- API ключ OpenAI.
- Токен Telegram бота, полученный через BotFather.
git clone https://github.com/artwist-polyakov/OpenAIAssistantBot.git
cd OpenAIAssistantBot
cp .env.example .env
nano .env
Создайте файл .env в корневой директории со следующими переменными:
BOT_TOKEN=ваш_токен_телеграм_бота
OPENAI_API_KEY=ваш_openai_api_key
ASSISTANT_ID=ваш_assistant_id
USERS=список_разрешенных_имен_пользователей_через_запятую_или_*
ALLOWED_CHATS=id_чата1,id_чата2 # Список разрешенных ID чатов через запятую или *
- BOT_TOKEN: Токен вашего Telegram бота.
- OPENAI_API_KEY: Ваш API ключ OpenAI.
- ASSISTANT_ID: ID вашего ассистента OpenAI.
- USERS: Список имён пользователей Telegram, которым разрешён доступ к боту. Используйте *, чтобы снять ограничения.
- ALLOWED_CHATS: Список разрешенных ID чатов через запятую или *.
Убедитесь, что Docker и Docker Compose установлены, затем выполните:
docker compose up -d --build
Эта команда соберёт Docker образ и запустит бота.
- Начните диалог с вашим ботом в Telegram.
- Доступные команды:
/chatinfo- получить ID текущего чата и информацию о пользователе
- Отправьте сообщение боту. Если ваше имя пользователя авторизовано и чат не заблокирован, бот обработает ваше сообщение с помощью OpenAI Ассистента и отправит ответ.
- В групповых чатах бот отвечает только на:
- Прямые упоминания (@имя_бота)
- Ответы на его сообщения
- Сообщения в разрешенных чатах (указанных в ALLOWED_CHATS)
Есть несколько способов получить ID чата:
- Использовать команду
/chatinfoв нужном чате - Добавить бот в чат и проверить логи бота
- Бот использует оперативную память для хранения истории пользователей. При перезапуске бота история будет потеряна.
- Обеспечьте безопасность вашего API ключа OpenAI и токена Telegram бота. Не делитесь ими публично.
- При необходимости измените значение HISTORY_DEPTH в файле .env.
Этот проект распространяется под лицензией MIT.