29 lines
1.4 KiB
Python
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="태그 키워드 리스트")
|