mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 10:16:24 +00:00
fix: AI 회의록 통합 - decisions 필드 및 Todo assignee 필드 추가
- AgendaSummaryDTO에 decisions 필드 추가 (안건별 결정사항 배열) - ExtractedTodoDTO에 assignee 필드 추가 (담당자 정보) - EndMeetingService에서 AI 추출 담당자 정보 매핑 - Python AI 서비스 모델 및 프롬프트 업데이트
This commit is contained in:
parent
e406248572
commit
7e3f7b9471
@ -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):
|
||||||
|
|||||||
@ -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 형식으로 생성해주세요.
|
||||||
|
|||||||
@ -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());
|
||||||
})
|
})
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user