30 lines
847 B
Python
30 lines
847 B
Python
"""Chat routes: POST /chat (REST fallback).
|
|
|
|
WebSocket chat is handled by the unified device WS endpoint (/api/v1/ws/device).
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, Depends
|
|
from fastapi.responses import JSONResponse
|
|
|
|
from app.api.deps import get_current_user
|
|
from app.core.deep_agent import run_home
|
|
from app.schemas import ChatRequest, UserProfile
|
|
|
|
router = APIRouter(prefix="/chat", tags=["chat"])
|
|
|
|
|
|
@router.post("")
|
|
async def chat(
|
|
body: ChatRequest,
|
|
current_user: UserProfile = Depends(get_current_user),
|
|
) -> JSONResponse:
|
|
"""REST fallback for home chat when websocket streaming is unavailable."""
|
|
response = await run_home(
|
|
user_id=current_user.id,
|
|
message=body.message,
|
|
context=body.context.model_dump(),
|
|
)
|
|
return JSONResponse(content={"response": response})
|