import uuid from telegram import Update, InlineQueryResultArticle, InputTextMessageContent from telegram.ext import ContextTypes from services import auth, ai_client from utils.context import get_system_prompt, get_user_settings async def inline_handler(update: Update, context: ContextTypes.DEFAULT_TYPE): query = update.inline_query.query.strip() user_id = update.inline_query.from_user.id if not auth.is_authorized(user_id): await update.inline_query.answer([], cache_time=0) return if not query: await update.inline_query.answer([], cache_time=0) return try: settings = get_user_settings(user_id) max_tokens = min(settings["max_tokens"], 300) answer = await ai_client.quick_reply(query, get_system_prompt(), max_tokens=max_tokens) except Exception as e: answer = f"Error: {e}" result = InlineQueryResultArticle( id=str(uuid.uuid4()), title="Puppy's answer", description=answer[:120] + ("…" if len(answer) > 120 else ""), input_message_content=InputTextMessageContent( message_text=answer, ), ) await update.inline_query.answer([result], cache_time=0)