- 新增审核卡片和确认卡片模型,支持Agent推送审核任务和用户确认 - 实现审核卡片API服务,支持创建、更新、批准、驳回等操作 - 扩展审核维度配置,新增角色一致性、剧情连贯性等维度 - 优化前端审核配置页面,修复API路径错误和状态枚举问题 - 改进剧集创作平台布局,新增左侧边栏用于剧集管理和上下文查看 - 增强Skill管理,支持从审核系统跳转创建/编辑Skill - 修复episodes.json数据问题,清理聊天历史记录 - 更新Agent提示词,明确Skill引用加载流程 - 统一前端主题配置,优化整体UI体验
80 lines
2.9 KiB
Python
80 lines
2.9 KiB
Python
"""
|
|
Confirm Card Model
|
|
|
|
确认卡片模型 - Agent推送的用户确认任务
|
|
|
|
特点:
|
|
- 用户可以中途退出后随时确认
|
|
- 支持多个选项
|
|
- 持久化存储
|
|
- Agent可以根据用户选择继续任务
|
|
"""
|
|
from pydantic import BaseModel, Field
|
|
from typing import List, Optional, Dict, Any
|
|
from datetime import datetime
|
|
from enum import Enum
|
|
|
|
|
|
class ConfirmCardType(str, Enum):
|
|
"""确认卡片类型"""
|
|
DIRECTION_DECISION = "direction_decision" # 创作方向决策
|
|
PLOT_BRANCH = "plot_branch" # 剧情分支选择
|
|
CHARACTER_ACTION = "character_action" # 角色行为确认
|
|
CONTENT_APPROVAL = "content_approval" # 内容审批
|
|
RESOURCE_ALLOCATION = "resource_allocation" # 资源分配确认
|
|
CUSTOM_QUESTION = "custom_question" # 自定义问题
|
|
|
|
|
|
class ConfirmCardStatus(str, Enum):
|
|
"""确认卡片状态"""
|
|
PENDING = "pending" # 待确认
|
|
APPROVED = "approved" # 已批准
|
|
REJECTED = "rejected" # 已拒绝
|
|
MODIFIED = "modified" # 已修改建议
|
|
EXPIRED = "expired" # 已过期
|
|
|
|
|
|
class ConfirmCardOption(BaseModel):
|
|
"""确认选项"""
|
|
id: str = Field(..., description="选项ID")
|
|
label: str = Field(..., description="选项标签")
|
|
description: str = Field("", description="选项描述")
|
|
implications: Optional[str] = Field(None, description="选择此选项的影响")
|
|
|
|
|
|
class ConfirmCard(BaseModel):
|
|
"""
|
|
确认卡片 - Agent推送的用户确认任务
|
|
"""
|
|
# 基础信息
|
|
id: str = Field(..., description="卡片ID")
|
|
project_id: str = Field(..., description="项目ID")
|
|
episode_number: Optional[int] = Field(None, description="相关集数")
|
|
|
|
# 卡片类型
|
|
card_type: ConfirmCardType = Field(..., description="确认类型")
|
|
title: str = Field(..., description="确认标题")
|
|
description: str = Field(..., description="详细描述")
|
|
context_data: Optional[str] = Field(None, description="上下文信息(长文本)")
|
|
|
|
# 确认选项
|
|
options: List[ConfirmCardOption] = Field(default_factory=list, description="可选选项")
|
|
allow_custom_response: bool = Field(False, description="是否允许自定义回复")
|
|
|
|
# 用户响应
|
|
status: ConfirmCardStatus = Field(default=ConfirmCardStatus.PENDING, description="状态")
|
|
selected_option_id: Optional[str] = Field(None, description="选择的选项ID")
|
|
custom_response: Optional[str] = Field(None, description="自定义回复内容")
|
|
user_notes: Optional[str] = Field(None, description="用户备注")
|
|
|
|
# 时间戳
|
|
created_at: datetime = Field(default_factory=datetime.now, description="创建时间")
|
|
expires_at: Optional[datetime] = Field(None, description="过期时间(可选)")
|
|
confirmed_at: Optional[datetime] = Field(None, description="确认时间")
|
|
|
|
# 元数据
|
|
metadata: Dict[str, Any] = Field(default_factory=dict, description="附加信息")
|
|
|
|
class Config:
|
|
use_enum_values = False
|