diff --git a/app/home/schemas/home_schema.py b/app/home/schemas/home_schema.py index 6eb3245..b254f1e 100644 --- a/app/home/schemas/home_schema.py +++ b/app/home/schemas/home_schema.py @@ -275,37 +275,44 @@ class CrawlingResponse(BaseModel): ], "selling_points": [ { - "category": "LOCATION", + "english_category": "LOCATION", + "korean_category": "입지 환경", "description": "군산 감성 동선", "score": 88 }, { - "category": "HEALING", + "english_category": "HEALING", + "korean_category": "힐링 요소", "description": "멈춤이 되는 쉼", "score": 92 }, { - "category": "PRIVACY", + "english_category": "PRIVACY", + "korean_category": "프라이버시", "description": "방해 없는 머뭄", "score": 86 }, { - "category": "NIGHT MOOD", + "english_category": "NIGHT MOOD", + "korean_category": "야간 감성", "description": "밤이 예쁜 조명", "score": 84 }, { - "category": "PHOTO SPOT", + "english_category": "PHOTO SPOT", + "korean_category": "포토 스팟", "description": "자연광 포토존", "score": 83 }, { - "category": "SHORT GETAWAY", + "english_category": "SHORT GETAWAY", + "korean_category": "숏브레이크", "description": "주말 리셋 스테이", "score": 89 }, { - "category": "HOSPITALITY", + "english_category": "HOSPITALITY", + "korean_category": "서비스", "description": "세심한 웰컴감", "score": 80 } diff --git a/app/utils/prompts/schemas/marketing.py b/app/utils/prompts/schemas/marketing.py index d3cb13e..23dc0aa 100644 --- a/app/utils/prompts/schemas/marketing.py +++ b/app/utils/prompts/schemas/marketing.py @@ -34,7 +34,7 @@ class SellingPoint(BaseModel): english_category: str = Field(..., description="셀링포인트 카테고리(영문)") korean_category: str = Field(..., description="셀링포인트 카테고리(한글)") description: str = Field(..., description="상세 설명") - score: int = Field(..., ge=70, le=99, description="점수 (100점 만점)") + score: int = Field(..., ge=0, le=100, description="점수 (100점 만점)") class MarketingPromptOutput(BaseModel): brand_identity: BrandIdentity = Field(..., description="브랜드 아이덴티티") diff --git a/app/utils/prompts/templates/marketing_prompt.txt b/app/utils/prompts/templates/marketing_prompt.txt index 027b385..2e994bd 100644 --- a/app/utils/prompts/templates/marketing_prompt.txt +++ b/app/utils/prompts/templates/marketing_prompt.txt @@ -9,7 +9,7 @@ Act as a Senior Brand Strategist and Marketing Data Analyst. Your goal is to ana # Output Rules 1. **Language:** All descriptive content must be written in **Korean (한국어)**. 2. **Terminology:** Use professional marketing terminology suitable for the hospitality and stay industry. -3. **Strict Selection for `selling_points.category`:** You must select the value for the `category` field in `selling_points` strictly from the following English allowed list to ensure UI compatibility: +3. **Strict Selection for `selling_points.english_category` and `selling_points.korean_category`:** You must select the value for both category field in `selling_points` strictly from the following English - Korean set allowed list to ensure UI compatibility: * `LOCATION` (입지 환경), `CONCEPT` (브랜드 컨셉), `PRIVACY` (프라이버시), `NIGHT MOOD` (야간 감성), `HEALING` (힐링 요소), `PHOTO SPOT` (포토 스팟), `SHORT GETAWAY` (숏브레이크), `HOSPITALITY` (서비스), `SWIMMING POOL` (수영장), `JACUZZI` (자쿠지), `BBQ PARTY` (바베큐), `FIRE PIT` (불멍), `GARDEN` (정원), `BREAKFAST` (조식), `KIDS FRIENDLY` (키즈 케어), `PET FRIENDLY` (애견 동반), `OCEAN VIEW` (오션뷰), `PRIVATE POOL` (개별 수영장), `OCEAN VIEW`, `PRIVATE POOL`. --- @@ -32,10 +32,10 @@ Generate a list of personas based on the following: * **`decision_trigger`**: Identify the specific "Hook" or facility that leads this persona to finalize a booking. ### 4. selling_points -Generate exactly 7 selling points: +Generate 5-8 selling points: * **`english_category`**: Strictly use one keyword from the English allowed list provided in the Output Rules. * **`korean category`**: Strictly use one keyword from the Korean allowed list provided in the Output Rules . It must be matched with english category. -* **`description`**: A short, punchy marketing phrase in Korean (max 20 characters). +* **`description`**: A short, punchy marketing phrase in Korean (15~30 characters). * **`score`**: An integer (70-99) representing the strength of this feature based on the brand's potential. ### 5. target_keywords diff --git a/pyproject.toml b/pyproject.toml index d5e984d..dbe34d1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "o2o-castad-backend" version = "0.1.0" description = "Add your description here" readme = "README.md" -requires-python = ">=3.14" +requires-python = "3.13.11" dependencies = [ "aiofiles>=25.1.0", "aiohttp>=3.13.2",