Add help and inline query handlers
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user