Spaces:
Sleeping
Sleeping
| from fastapi import APIRouter, Depends, HTTPException | |
| from supabase import Client | |
| from app.schemas.chat import ChatRequest, ChatResponse | |
| from app.services.chat_service import generate_tutor_response | |
| from app.core.security import get_user_db_client | |
| router = APIRouter() | |
| async def chat_with_tutor( | |
| request: ChatRequest, | |
| # Lock this route down! Only authenticated Flutter users can talk to the tutor. | |
| db_data: tuple[Client, str] = Depends(get_user_db_client), | |
| ): | |
| try: | |
| # db_client and user_id are available here to save chat logs to Supabase later | |
| db_client, user_id = db_data | |
| reply_text = await generate_tutor_response(request) | |
| return ChatResponse(reply=reply_text) | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |