Files
meijiaka-zy/python-api/app/ai/providers/kling_dto.py
T

46 lines
1.4 KiB
Python

"""
Kling AI Provider DTO
=====================
Provider 层数据模型,封装 Kling API 返回结构。
禁止向业务层泄漏裸 dict[str, Any]。
"""
from pydantic import BaseModel, Field
from app.schemas.enums import KlingTaskStatus
class KlingVideoResult(BaseModel):
"""Kling 视频生成结果"""
task_id: str | None = Field(None, alias="task_id")
task_status: KlingTaskStatus | None = Field(None, alias="task_status")
task_status_msg: str | None = Field(None, alias="task_status_msg")
task_result: dict | None = Field(None, alias="task_result")
class KlingImageResult(BaseModel):
"""Kling 图片生成结果"""
task_id: str | None = Field(None, alias="task_id")
task_status: KlingTaskStatus | None = Field(None, alias="task_status")
task_status_msg: str | None = Field(None, alias="task_status_msg")
task_result: dict | None = Field(None, alias="task_result")
class KlingVoiceResult(BaseModel):
"""Kling 自定义音色结果"""
task_id: str | None = Field(None, alias="task_id")
task_status: KlingTaskStatus | None = Field(None, alias="task_status")
task_result: dict | None = Field(None, alias="task_result")
class KlingElementResult(BaseModel):
"""Kling 主体创建结果"""
task_id: str | None = Field(None, alias="task_id")
task_status: KlingTaskStatus | None = Field(None, alias="task_status")
task_result: dict | None = Field(None, alias="task_result")