Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Telegram бот на базе модели ruGPT-3Small с использованием Quart и Python

Жёрик Ученик (225), на голосовании 1 месяц назад
Я разрабатываю Telegram бота на Python, который использует модель ruGPT-3Small для генерации текстов. Бот должен работать через вебхук на сервере с использованием фреймворка Quart. Проект развернут на VDS, и я использую виртуальное окружение для установки необходимых зависимостей.

Технические детали:

Фреймворк: Quart
Библиотеки: python-telegram-bot, transformers, torch (для CPU), python-dotenv (для работы с переменными окружения)
Сервер: VDS с установленной Ubuntu
Цель: Создать Telegram бота, который отвечает на сообщения пользователей, используя ruGPT-3Small.
Проблема:

При запуске бота возникает ошибка InvalidToken: You must pass the token you received from https://t.me/Botfather !. Я проверил, что переменная окружения TELEGRAM_TOKEN установлена корректно и содержимое токена соответствует действительному токену бота.

Также я добавил код для загрузки переменных окружения из файла .env:
 from dotenv import load_dotenv 
import os

load_dotenv() # Загрузка переменных из .env

TOKEN = os.getenv("TELEGRAM_TOKEN")
Однако при попытке вывести значение переменной TOKEN, она возвращает None. Я проверил содержимое файла .env, и там токен указан верно:
 TELEGRAM_TOKEN=ваш_токен  
Также в .bashrc токен прописан корректно. Но несмотря на все это, бот не запускается и продолжает выдавать ошибку InvalidToken.

Что я пробовал:

Обновление библиотек python-telegram-bot и python-dotenv.
Пересоздание виртуального окружения и переустановка всех зависимостей.
Использование вывода для отладки и проверки содержимого переменных.
Проверка правильности синтаксиса в коде и файле .env.
Вопрос:

Почему переменная окружения TELEGRAM_TOKEN возвращает None даже после правильного её задания, и как я могу решить проблему с ошибкой InvalidToken? Также прошу взглянуть на полный код bot.py и содержимое requirements.txt, чтобы понять, есть ли что-то, что могло быть пропущено или сделано неправильно.

Полный код файла bot.py: https://codeshare.io/zlvMQ4

Содержимое requirements.txt:
 python-dotenv==1.0.1 
python-telegram-bot==21.4
Quart==0.19.6
transformers==4.44.1
torch==2.4.0+cpu
Голосование за лучший ответ
xAI Профи (907) 2 месяца назад
Переменная окружения TELEGRAM_TOKEN не определена. Причины:
Проблемы с файлом .env (расположение, содержимое, права доступа).
Особенности среды выполнения.
Проблемы с загрузкой переменных окружения.
Для диагностики используйте print(os.environ) и проверьте вывод.
Похожие вопросы