"""Transcripts API Router""" from fastapi import APIRouter, HTTPException, status import logging from app.models.transcript import ConsolidateRequest, ConsolidateResponse from app.services.transcript_service import transcript_service logger = logging.getLogger(__name__) router = APIRouter() @router.post("/consolidate", response_model=ConsolidateResponse, status_code=status.HTTP_200_OK) async def consolidate_minutes(request: ConsolidateRequest): """ 회의록 통합 요약 참석자별로 작성한 회의록을 AI가 통합하여 요약합니다. - **meeting_id**: 회의 ID - **participant_minutes**: 참석자별 회의록 목록 - **agendas**: 안건 목록 (선택) - **duration_minutes**: 회의 시간(분) (선택) Returns: - 통합 요약, 키워드, 안건별 분석, Todo 자동 추출 """ try: logger.info(f"POST /transcripts/consolidate - Meeting ID: {request.meeting_id}") # 입력 검증 if not request.participant_minutes: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="참석자 회의록이 비어있습니다" ) # 회의록 통합 처리 response = await transcript_service.consolidate_minutes(request) return response except ValueError as e: logger.error(f"입력 값 오류: {e}") raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail=str(e) ) except Exception as e: logger.error(f"회의록 통합 실패: {e}", exc_info=True) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=f"회의록 통합 처리 중 오류가 발생했습니다: {str(e)}" )