fix: AI 회의록 통합 - decisions 필드 및 Todo assignee 필드 추가

- AgendaSummaryDTO에 decisions 필드 추가 (안건별 결정사항 배열)
- ExtractedTodoDTO에 assignee 필드 추가 (담당자 정보)
- EndMeetingService에서 AI 추출 담당자 정보 매핑
- Python AI 서비스 모델 및 프롬프트 업데이트
This commit is contained in:
Minseo-Jo 2025-10-30 18:44:27 +09:00
parent e406248572
commit 7e3f7b9471
4 changed files with 13 additions and 4 deletions

View File

@ -20,8 +20,9 @@ class ConsolidateRequest(BaseModel):
class ExtractedTodo(BaseModel): class ExtractedTodo(BaseModel):
"""추출된 Todo (제목만)""" """추출된 Todo"""
title: str = Field(..., description="Todo 제목") title: str = Field(..., description="Todo 제목")
assignee: str = Field(default="", description="담당자 이름 (있는 경우에만)")
class AgendaSummary(BaseModel): class AgendaSummary(BaseModel):

View File

@ -120,7 +120,10 @@ def get_consolidate_prompt(participant_minutes: list, agendas: list = None) -> s
- summary_short: AI가 자동 생성한 1 요약 (사용자 수정 불가) - summary_short: AI가 자동 생성한 1 요약 (사용자 수정 불가)
- summary: 논의사항과 결정사항 모두 포함 (사용자 수정 가능) - summary: 논의사항과 결정사항 모두 포함 (사용자 수정 가능)
- decisions: summary의 결정사항 부분을 배열로 별도 추출 (대시보드 표시용) - decisions: summary의 결정사항 부분을 배열로 별도 추출 (대시보드 표시용)
7. **Todo 추출**: 제목만 추출 (담당자나 마감일 없어도 ) 7. **Todo 추출**:
- 제목 필수, 담당자는 언급된 경우에만 추출
- 자연스러운 표현에서 추출: "김대리가 ~하기로 함" title: "~", assignee: "김대리"
- 담당자가 없으면 assignee: "" ( 문자열)
8. **JSON만 출력**: 추가 설명 없이 JSON만 반환 8. **JSON만 출력**: 추가 설명 없이 JSON만 반환
이제 회의록들을 분석하여 통합 요약을 JSON 형식으로 생성해주세요. 이제 회의록들을 분석하여 통합 요약을 JSON 형식으로 생성해주세요.

View File

@ -264,7 +264,7 @@ public class EndMeetingService implements EndMeetingUseCase {
.meetingId(meeting.getMeetingId()) .meetingId(meeting.getMeetingId())
.minutesId(meeting.getMeetingId()) // 실제로는 minutesId 필요 .minutesId(meeting.getMeetingId()) // 실제로는 minutesId 필요
.title(todo.getTitle()) .title(todo.getTitle())
.assigneeId("") // AI가 담당자를 추출하지 않으므로 .assigneeId(todo.getAssignee() != null ? todo.getAssignee() : "") // AI가 추출한 담당자
.status("PENDING") .status("PENDING")
.build()); .build());
}) })

View File

@ -6,7 +6,7 @@ import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**
* AI 추출 Todo DTO (제목만) * AI 추출 Todo DTO
*/ */
@Getter @Getter
@Builder @Builder
@ -18,4 +18,9 @@ public class ExtractedTodoDTO {
* Todo 제목 * Todo 제목
*/ */
private String title; private String title;
/**
* 담당자 이름 (있는 경우에만)
*/
private String assignee;
} }