from pydantic import BaseModel, create_model, Field from typing import List, Optional from functools import lru_cache # Input 정의 class SubtitlePromptInput(BaseModel): marketing_intelligence : str = Field(..., description="마케팅 인텔리전스 정보") pitching_tag_list_string : str = Field(..., description="필요한 피칭 레이블 리스트 stringify") customer_name : str = Field(..., description = "마케팅 대상 사업체 이름") detail_region_info : str = Field(..., description = "마케팅 대상 지역 상세") #subtillecars : # Output 정의 class PitchingOutput(BaseModel): pitching_tag: str = Field(..., description="피칭 레이블") pitching_data: str = Field(..., description = "피칭 내용물") class SubtitlePromptOutput(BaseModel): pitching_results: List[PitchingOutput] = Field(..., description = "피칭 리스트") @classmethod @lru_cache() def __class_getitem__(cls, n: int): return create_model( cls.__name__, pitching_results=( List[PitchingOutput], Field(..., min_length=n, max_length=n, description="피칭 리스트") ), )