Spaces:
Runtime error
Runtime error
import os | |
from telegram import Update | |
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters, ContextTypes | |
import requests | |
import json | |
HF_API_KEY = os.getenv("HF_API_KEY") | |
HF_API_URL = "https://api-inference.huggingface.co/models/Qwen/Qwen2.5-Coder-32B-Instruct/v1/chat/completions" | |
# Обработчик стартовой команды | |
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): | |
await update.message.reply_text("Привет! Я бот, который отвечает на ваши вопросы. Напишите мне что-нибудь.") | |
# Обработчик сообщений | |
async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE): | |
user_message = update.message.text | |
await update.message.reply_text("Думаю...") | |
# Формируем запрос к API Hugging Face | |
headers = { | |
"Authorization": f"Bearer {HF_API_KEY}", | |
"Content-Type": "application/json", | |
} | |
payl | |
HF_API_KEY = os.getenv("HF_API_KEY") | |
HF_API_URL = "https://api-inference.huggingface.co/models/Qwen/Qwen2.5-Coder-32B-Instruct/v1/chat/completions" | |
# Обработчик стартовой команды | |
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): | |
await update.message.reply_text("Привет! Я бот, который отвечает на ваши вопросы. Напишите мне что-нибудь.") | |
# Обработчик сообщений | |
async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE): | |
user_message = update.message.text | |
await update.message.reply_text("Думаю...") | |
# Формируем запрос к API Hugging Face | |
headers = { | |
"Authorization": f"Bearer {HF_API_KEY}", | |
"Content-Type": "application/json", | |
} | |
payload = { | |
"model": "Qwen/Qwen2.5-Coder-32B-Instruct", | |
"messages": [ | |
{"role": "user", "content": user_message} | |
], | |
"temperature": 0.5, | |
"max_tokens": 2048, | |
"top_p": 0.7, | |
"stream": False, | |
} | |
try: | |
response = requests.post(HF_API_URL, headers=headers, data=json.dumps(payload)) | |
response.raise_for_status() | |
data = response.json() | |
# Извлекаем текст из ответа модели | |
reply = "" | |
choices = data.get("choices", []) | |
if choices: | |
reply = choices[0].get("message", {}).get("content", "") | |
# Отправляем ответ пользователю | |
await update.message.reply_text(reply if reply else "К сожалению, я не смог ничего придумать.") | |
except requests.exceptions.RequestException as e: | |
await update.message.reply_text(f"Сетевая ошибка: {e}") | |
except json.JSONDecodeError as e: | |
await update.message.reply_text(f"Ошибка декодирования JSON: {e}") | |
except Exception as e: | |
await update.message.reply_text(f"Неизвестная ошибка: {e}") | |
# Запуск бота | |
if __name__ == "__main__": | |
TOKEN = "7518565019:AAFwsGHOMhicachCqq78t8j4MBMhDY9PIDQ" | |
app = ApplicationBuilder().token(TOKEN).build() | |
app.add_handler(CommandHandler("start", start)) | |
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message)) | |
print("Бот запущен!") | |
app.run_polling() | |