mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 17:16:25 +00:00
81 lines
3.1 KiB
Python
81 lines
3.1 KiB
Python
"""요약 관련 모델"""
|
|
from pydantic import BaseModel, Field
|
|
from typing import List, Optional
|
|
from datetime import datetime
|
|
|
|
|
|
class SummaryRequest(BaseModel):
|
|
"""요약 요청 모델"""
|
|
text: str = Field(
|
|
...,
|
|
description="요약할 텍스트",
|
|
example="오늘 회의에서는 프로젝트 일정과 예산에 대해 논의했습니다. 첫째, 개발 일정은 3개월로 확정되었고, 디자인 단계는 2주, 개발 단계는 8주, 테스트 단계는 2주로 배분하기로 했습니다. 둘째, 예산은 총 5천만원으로 책정되었으며, 인건비 3천만원, 인프라 비용 1천만원, 기타 비용 1천만원으로 배분됩니다. 셋째, 주간 회의는 매주 화요일 오전 10시에 진행하기로 했습니다."
|
|
)
|
|
language: str = Field(
|
|
default="ko",
|
|
description="요약 언어 (ko: 한국어, en: 영어)",
|
|
example="ko"
|
|
)
|
|
style: str = Field(
|
|
default="bullet",
|
|
description="요약 스타일 (bullet: 불릿 포인트, paragraph: 단락형)",
|
|
example="bullet"
|
|
)
|
|
max_length: Optional[int] = Field(
|
|
default=None,
|
|
description="최대 요약 길이 (단어 수)",
|
|
example=100
|
|
)
|
|
|
|
|
|
class SummaryResponse(BaseModel):
|
|
"""요약 응답 모델"""
|
|
summary: str = Field(
|
|
...,
|
|
description="생성된 요약",
|
|
example="• 프로젝트 일정: 총 3개월 (디자인 2주, 개발 8주, 테스트 2주)\n• 예산: 총 5천만원 (인건비 3천만원, 인프라 1천만원, 기타 1천만원)\n• 주간 회의: 매주 화요일 오전 10시"
|
|
)
|
|
key_points: List[str] = Field(
|
|
...,
|
|
description="핵심 포인트 리스트",
|
|
example=[
|
|
"프로젝트 일정 3개월 확정",
|
|
"총 예산 5천만원 책정",
|
|
"주간 회의 화요일 10시"
|
|
]
|
|
)
|
|
word_count: int = Field(
|
|
...,
|
|
description="요약 단어 수",
|
|
example=42
|
|
)
|
|
original_word_count: int = Field(
|
|
...,
|
|
description="원본 텍스트 단어 수",
|
|
example=156
|
|
)
|
|
compression_ratio: float = Field(
|
|
...,
|
|
description="압축률 (요약 길이 / 원본 길이)",
|
|
example=0.27
|
|
)
|
|
generated_at: datetime = Field(
|
|
default_factory=datetime.now,
|
|
description="생성 시간"
|
|
)
|
|
|
|
class Config:
|
|
json_schema_extra = {
|
|
"example": {
|
|
"summary": "• 프로젝트 일정: 총 3개월 (디자인 2주, 개발 8주, 테스트 2주)\n• 예산: 총 5천만원 (인건비 3천만원, 인프라 1천만원, 기타 1천만원)\n• 주간 회의: 매주 화요일 오전 10시",
|
|
"key_points": [
|
|
"프로젝트 일정 3개월 확정",
|
|
"총 예산 5천만원 책정",
|
|
"주간 회의 화요일 10시"
|
|
],
|
|
"word_count": 42,
|
|
"original_word_count": 156,
|
|
"compression_ratio": 0.27,
|
|
"generated_at": "2024-10-29T17:15:30.123456"
|
|
}
|
|
} |