mirror of
https://github.com/hwanny1128/HGZero.git
synced 2026-06-13 17:39:09 +00:00
내부,외부 시퀀스 기능 추가
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
@startuml
|
||||
!theme mono
|
||||
|
||||
title AI Service 내부 시퀀스 - 회의록자동작성
|
||||
title AI Service 내부 시퀀스 - 회의록자동작성 (실시간 추천 포함)
|
||||
|
||||
participant "TranscriptController" as Controller
|
||||
participant "TranscriptService" as Service
|
||||
participant "SuggestionService" as SuggestService
|
||||
participant "LLMClient" as LLM
|
||||
participant "VectorService" as Vector
|
||||
participant "TranscriptRepository" as Repo
|
||||
@@ -119,9 +120,134 @@ deactivate VectorDB
|
||||
Vector --> Service: 임베딩 생성 완료
|
||||
deactivate Vector
|
||||
|
||||
== 실시간 추천 병렬 처리 ==
|
||||
|
||||
Service -> SuggestService: generateRealtimeSuggestions(meetingId, transcriptText)
|
||||
activate SuggestService
|
||||
|
||||
par 논의사항 제안 생성
|
||||
SuggestService -> LLM: suggestDiscussionTopics(meetingId, transcript)
|
||||
activate LLM
|
||||
|
||||
LLM -> OpenAI: POST /chat/completions
|
||||
activate OpenAI
|
||||
note right
|
||||
프롬프트:
|
||||
- 현재 대화 맥락 분석
|
||||
- 빠진 논의 항목 찾기
|
||||
- 추가하면 좋을 주제 제안
|
||||
|
||||
응답 형식:
|
||||
{
|
||||
"suggestions": [
|
||||
{
|
||||
"topic": "논의 주제",
|
||||
"reason": "제안 이유",
|
||||
"priority": "HIGH|MEDIUM|LOW"
|
||||
}
|
||||
]
|
||||
}
|
||||
end note
|
||||
|
||||
OpenAI --> LLM: 논의사항 제안 목록
|
||||
deactivate OpenAI
|
||||
|
||||
LLM --> SuggestService: discussionSuggestions
|
||||
deactivate LLM
|
||||
|
||||
SuggestService -> Repo: saveSuggestions(meetingId, "DISCUSSION", suggestions)
|
||||
activate Repo
|
||||
Repo -> DB: INSERT INTO ai_suggestions
|
||||
activate DB
|
||||
DB --> Repo: 저장 완료
|
||||
deactivate DB
|
||||
deactivate Repo
|
||||
|
||||
else 결정사항 제안 생성
|
||||
SuggestService -> LLM: suggestDecisions(meetingId, transcript)
|
||||
activate LLM
|
||||
|
||||
LLM -> OpenAI: POST /chat/completions
|
||||
activate OpenAI
|
||||
note right
|
||||
프롬프트:
|
||||
- "~하기로 함" 패턴 감지
|
||||
- "~로 결정" 패턴 감지
|
||||
- 결정 내용 구조화
|
||||
|
||||
응답 형식:
|
||||
{
|
||||
"decisions": [
|
||||
{
|
||||
"content": "결정 내용",
|
||||
"category": "기술|일정|리소스",
|
||||
"confidence": 0.0-1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
end note
|
||||
|
||||
OpenAI --> LLM: 결정사항 제안 목록
|
||||
deactivate OpenAI
|
||||
|
||||
LLM --> SuggestService: decisionSuggestions
|
||||
deactivate LLM
|
||||
|
||||
SuggestService -> Repo: saveSuggestions(meetingId, "DECISION", suggestions)
|
||||
activate Repo
|
||||
Repo -> DB: INSERT INTO ai_suggestions
|
||||
activate DB
|
||||
DB --> Repo: 저장 완료
|
||||
deactivate DB
|
||||
deactivate Repo
|
||||
|
||||
else 실시간 액션아이템 추출
|
||||
SuggestService -> LLM: extractRealtimeActionItems(meetingId, transcript)
|
||||
activate LLM
|
||||
|
||||
LLM -> OpenAI: POST /chat/completions
|
||||
activate OpenAI
|
||||
note right
|
||||
프롬프트:
|
||||
- "~까지 하겠습니다" 패턴 감지
|
||||
- "제가 담당하겠습니다" 패턴 감지
|
||||
- 담당자 및 마감일 추출
|
||||
|
||||
응답 형식:
|
||||
{
|
||||
"actionItems": [
|
||||
{
|
||||
"content": "할 일 내용",
|
||||
"assignee": "담당자",
|
||||
"dueDate": "YYYY-MM-DD",
|
||||
"priority": "HIGH|MEDIUM|LOW"
|
||||
}
|
||||
]
|
||||
}
|
||||
end note
|
||||
|
||||
OpenAI --> LLM: 액션아이템 후보 목록
|
||||
deactivate OpenAI
|
||||
|
||||
LLM --> SuggestService: actionItemSuggestions
|
||||
deactivate LLM
|
||||
|
||||
SuggestService -> Repo: saveSuggestions(meetingId, "ACTION_ITEM", suggestions)
|
||||
activate Repo
|
||||
Repo -> DB: INSERT INTO ai_suggestions
|
||||
activate DB
|
||||
DB --> Repo: 저장 완료
|
||||
deactivate DB
|
||||
deactivate Repo
|
||||
|
||||
end
|
||||
|
||||
SuggestService --> Service: 모든 추천사항 생성 완료
|
||||
deactivate SuggestService
|
||||
|
||||
== 이벤트 발행 ==
|
||||
|
||||
Service -> Controller: 회의록 생성 완료 응답
|
||||
Service -> Controller: 회의록 및 추천사항 생성 완료 응답
|
||||
deactivate Service
|
||||
|
||||
Controller -> Controller: TranscriptSummaryCreated 발행
|
||||
@@ -130,15 +256,23 @@ note right
|
||||
- meetingId
|
||||
- transcriptId
|
||||
- content
|
||||
- suggestions:
|
||||
* discussionTopics: []
|
||||
* decisions: []
|
||||
* actionItems: []
|
||||
end note
|
||||
|
||||
note over Controller, DB
|
||||
처리 시간:
|
||||
- 맥락 조회: 100-200ms
|
||||
- LLM 생성: 3-5초
|
||||
- LLM 회의록 생성: 3-5초
|
||||
- 저장: 100-200ms
|
||||
- 벡터화: 500ms-1초
|
||||
총: 약 4-7초
|
||||
- 실시간 추천 병렬 처리: 5-8초
|
||||
* 논의사항 제안: 2-3초
|
||||
* 결정사항 제안: 2-3초
|
||||
* 액션아이템 추출: 1-2초
|
||||
총: 약 9-15초
|
||||
end note
|
||||
|
||||
@enduml
|
||||
@enduml
|
||||
|
||||
Reference in New Issue
Block a user