feat(meeting-summary): 파일 업로드 기반 회의록 AI 요약 기능 구현

- MeetingLogService: processUploadedFile 메서드 추가
- MeetingLogController: uploadFile 엔드포인트 추가
- routes/api.php: /api/meeting-logs/upload 라우트 추가
- meeting-summary.blade.php: 드래그앤드롭 파일 업로드 UI 구현
- refreshMeetingList 함수로 목록 새로고침 처리
This commit is contained in:
2025-12-16 22:42:45 +09:00
parent 55273c559d
commit 9f00585401
4 changed files with 532 additions and 48 deletions

View File

@@ -214,4 +214,37 @@ public function summary(int $id): View|JsonResponse
],
]);
}
/**
* 오디오 파일 업로드 및 처리 (회의록 AI 요약)
*/
public function uploadFile(Request $request): JsonResponse
{
$validated = $request->validate([
'audio_file' => 'required|file|mimes:webm,wav,mp3,ogg,m4a,mp4|max:102400',
'title' => 'nullable|string|max:200',
]);
$meeting = $this->meetingLogService->create([
'title' => $validated['title'] ?? '업로드된 회의록',
]);
$result = $this->meetingLogService->processUploadedFile(
$meeting,
$request->file('audio_file')
);
if (! $result['ok']) {
return response()->json([
'success' => false,
'message' => $result['error'] ?? '처리 중 오류가 발생했습니다.',
], 500);
}
return response()->json([
'success' => true,
'message' => '회의록이 생성되었습니다.',
'data' => $result['meeting'],
]);
}
}