DeepImagix's picture
Upload chat.py
f0c2e0a verified
Raw
History Blame Contribute Delete
975 Bytes
"""
Chat Router - Thin layer only
"""
from fastapi import APIRouter, Request
from services.chat_service import ChatService
from services.polar_service import PolarService
router = APIRouter()
@app.post("/")
async def chat(payload: dict, request: Request):
user_id = payload.get("user_id")
user_msg = payload.get("message", "").strip()
model_id = payload.get("model_id") or "neurones-pro-1.0"
ip = request.client.host if request.client else "127.0.0.1"
user_email = ""
try:
from firebase_admin import auth as fb_auth
fb_user = fb_auth.get_user(user_id)
user_email = fb_user.email or ""
except:
pass
polar_premium = await PolarService.verify_subscription(email=user_email, firebase_uid=user_id)
if is_rate_limited(user_id, is_premium=polar_premium):
return {"response": "⏳ Rate limit reached."}
result = await ChatService.process_message(user_id, user_msg, model_id)
return result