Spaces:
Runtime error
Runtime error
from contextlib import asynccontextmanager | |
from http import HTTPStatus | |
from fastapi import FastAPI, Request, Response | |
import logging | |
from telegram import Update | |
from telegram.ext import filters, MessageHandler, ApplicationBuilder, CommandHandler, ContextTypes | |
from utils.get_answer_local import get_answer | |
# from utils.get_answer_hf_api import get_answer | |
from config_data.config import Config, load_config | |
config: Config = load_config() | |
logging.basicConfig( | |
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', | |
level=logging.INFO | |
) | |
tg_bot = ( | |
ApplicationBuilder() | |
.updater(None) | |
.token(config.tg_bot.token) | |
.read_timeout(7) | |
.get_updates_read_timeout(42) | |
.build() | |
) | |
async def lifespan(_: FastAPI): | |
await tg_bot.bot.setWebhook('https://ekaterinatao-house_md_tg_bot.hf.space/') | |
async with bot: | |
await tg_bot.start() | |
yield | |
await tg_bot.stop() | |
app = FastAPI(lifespan=lifespan) | |
def read_general(): | |
return {"response": "Started"} | |
async def process_update(request: Request): | |
print('enter') | |
req = await request.json() | |
print(req) | |
update = Update.de_json(req, tg_bot.bot) | |
await tg_bot.process_update(update) | |
return Response(status_code=HTTPStatus.OK) | |
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): | |
await context.bot.send_message( | |
chat_id=update.effective_chat.id, | |
text=f"Hi, {update.effective_user.first_name}! Write me anything you want!" | |
) | |
async def respond_to_user(update: Update, context: ContextTypes.DEFAULT_TYPE): | |
await context.bot.send_message( | |
chat_id=update.effective_chat.id, | |
reply_to_message_id=update.effective_message.id, | |
text="Loadind the best answer...\nPlease wait couple of minutes :)" | |
) | |
response_text = get_answer(update.message.text) | |
await context.bot.send_message( | |
chat_id=update.effective_chat.id, | |
text=response_text | |
) | |
start_handler = CommandHandler('start', start) | |
respond_handler = MessageHandler(filters.TEXT & (~filters.COMMAND), respond_to_user) | |
tg_bot.add_handler(start_handler) | |
tg_bot.add_handler(respond_handler) | |
# if __name__ == '__main__': | |
# tg_bot.run_polling() |