Files
ai-contract-platform/backend/app/api/chat.py
T
2026-04-24 13:44:17 +08:00

31 lines
936 B
Python

from fastapi import APIRouter, Depends
from fastapi.responses import StreamingResponse
from sqlalchemy.orm import Session
from app.api.reviews import require_current_user
from app.db import get_db_session
from app.schemas.chat import ChatStreamRequest
from app.services.chat_service import ChatService
router = APIRouter(prefix="/chat", tags=["chat"])
ROUTE_PERMISSION_SCOPE = "chat"
ROUTE_PERMISSION_ACTIONS = {
"stream": "chat:stream",
}
def get_chat_service(db: Session = Depends(get_db_session)) -> ChatService:
return ChatService(db)
@router.post("/stream")
def stream_chat(
payload: ChatStreamRequest,
chat_service: ChatService = Depends(get_chat_service),
current_user: dict = Depends(require_current_user),
):
return StreamingResponse(
chat_service.stream_answer(current_user, payload.conversation_id, payload.message, payload.review_context),
media_type="text/event-stream",
)