o2o-castad-backend/app/utils/prompts/schemas/ssulbox.py

29 lines
1.4 KiB
Python

from pydantic import BaseModel, Field
from typing import List
# Input 정의
class SsulUploadPromptInput(BaseModel):
"""썰박스 SNS 업로드 SEO 프롬프트 입력.
ADO2(yt_upload)와 별도 프롬프트를 쓴다 — ADO2 는 업장 마케팅 분석 보고서 기반의
광고 영상이지만, 썰박스는 "병맛 역사 썰툰"이라 제목·설명의 톤이 완전히 다르다.
스프레드시트 시트명: `ssul_upload` (B2=모델, B3=템플릿).
템플릿에서 쓸 수 있는 변수: {store_name} {region} {scenario_name}
"""
store_name: str = Field(..., description="마케팅 대상 업장명 (모르면 빈 문자열)")
region: str = Field(default="", description="업장 지역 (모르면 빈 문자열)")
scenario_name: str = Field(
..., description="시나리오 한글명 (조선왕/삼국지/그리스·로마 신화/오디세이)"
)
# Output 정의
class SsulUploadPromptOutput(BaseModel):
title: str = Field(..., description="쇼츠 제목 - 병맛 톤 + SEO")
description: str = Field(..., description="업로드 설명 - 병맛 톤 + SEO/해시태그 포함")
# ADO2 는 마케팅 분석의 target_keywords 를 태그로 재사용하지만 썰박스에는
# 그 분석이 없다 — GPT 가 태그까지 함께 만든다.
keywords: List[str] = Field(..., description="태그 키워드 리스트")