playreel/backend/answers/motion_answer.py
2026-09-02 09:37:58 +09:00

24 lines
640 B
Python

"""③ motion 단계 VLM 응답 스키마.
모션 키는 Literal로 고정한다 — 어휘 밖의 값이 나올 수 없다.
키 목록은 raw_prompt/motion_phrase.json과 일치해야 하며, motion.py가 기동 시 대조한다.
"""
from typing import Literal
from pydantic import BaseModel
MotionKey = Literal[
"firework", "water", "wave", "cloud", "smoke", "moon", "sun", "star", "light",
"flag", "foliage", "wheel", "vessel", "crowd", "ray", "snow", "fog", "glow",
]
class MotionElement(BaseModel):
motion: MotionKey
what: str
confident: bool
class MotionAnswer(BaseModel):
elements: list[MotionElement]