refactor: 导入导出功能增强:版本升级至1.1.0,新增职业系统、故事记忆、剧情分析的导出选项
This commit is contained in:
@@ -8,6 +8,9 @@ class ExportOptions(BaseModel):
|
||||
"""导出选项"""
|
||||
include_generation_history: bool = Field(False, description="是否包含生成历史")
|
||||
include_writing_styles: bool = Field(True, description="是否包含写作风格")
|
||||
include_careers: bool = Field(True, description="是否包含职业系统")
|
||||
include_memories: bool = Field(False, description="是否包含故事记忆(数据量可能较大)")
|
||||
include_plot_analysis: bool = Field(False, description="是否包含剧情分析")
|
||||
|
||||
|
||||
class ChapterExportData(BaseModel):
|
||||
@@ -118,9 +121,93 @@ class GenerationHistoryExportData(BaseModel):
|
||||
created_at: Optional[str] = None
|
||||
|
||||
|
||||
class CareerExportData(BaseModel):
|
||||
"""职业导出数据"""
|
||||
name: str
|
||||
type: str # main/sub
|
||||
description: Optional[str] = None
|
||||
category: Optional[str] = None
|
||||
stages: str # JSON格式的阶段列表
|
||||
max_stage: int = 10
|
||||
requirements: Optional[str] = None
|
||||
special_abilities: Optional[str] = None
|
||||
worldview_rules: Optional[str] = None
|
||||
attribute_bonuses: Optional[str] = None
|
||||
source: str = "ai"
|
||||
created_at: Optional[str] = None
|
||||
|
||||
|
||||
class CharacterCareerExportData(BaseModel):
|
||||
"""角色职业关联导出数据"""
|
||||
character_name: str # 通过名称关联
|
||||
career_name: str # 通过名称关联
|
||||
career_type: str # main/sub
|
||||
current_stage: int = 1
|
||||
stage_progress: int = 0
|
||||
started_at: Optional[str] = None
|
||||
reached_current_stage_at: Optional[str] = None
|
||||
notes: Optional[str] = None
|
||||
|
||||
|
||||
class StoryMemoryExportData(BaseModel):
|
||||
"""故事记忆导出数据"""
|
||||
chapter_title: Optional[str] = None # 通过章节标题关联
|
||||
memory_type: str
|
||||
title: Optional[str] = None
|
||||
content: str
|
||||
full_context: Optional[str] = None
|
||||
related_characters: Optional[List[str]] = None # 角色名称列表
|
||||
related_locations: Optional[List[str]] = None
|
||||
tags: Optional[List[str]] = None
|
||||
importance_score: float = 0.5
|
||||
story_timeline: int
|
||||
chapter_position: int = 0
|
||||
text_length: int = 0
|
||||
is_foreshadow: int = 0
|
||||
foreshadow_strength: Optional[float] = None
|
||||
created_at: Optional[str] = None
|
||||
|
||||
|
||||
class PlotAnalysisExportData(BaseModel):
|
||||
"""剧情分析导出数据"""
|
||||
chapter_title: str # 通过章节标题关联
|
||||
plot_stage: Optional[str] = None
|
||||
conflict_level: Optional[int] = None
|
||||
conflict_types: Optional[List[str]] = None
|
||||
emotional_tone: Optional[str] = None
|
||||
emotional_intensity: Optional[float] = None
|
||||
emotional_curve: Optional[Dict[str, float]] = None
|
||||
hooks: Optional[List[Dict[str, Any]]] = None
|
||||
hooks_count: int = 0
|
||||
hooks_avg_strength: Optional[float] = None
|
||||
foreshadows: Optional[List[Dict[str, Any]]] = None
|
||||
foreshadows_planted: int = 0
|
||||
foreshadows_resolved: int = 0
|
||||
plot_points: Optional[List[Dict[str, Any]]] = None
|
||||
plot_points_count: int = 0
|
||||
character_states: Optional[List[Dict[str, Any]]] = None
|
||||
scenes: Optional[List[Dict[str, Any]]] = None
|
||||
pacing: Optional[str] = None
|
||||
overall_quality_score: Optional[float] = None
|
||||
pacing_score: Optional[float] = None
|
||||
engagement_score: Optional[float] = None
|
||||
coherence_score: Optional[float] = None
|
||||
analysis_report: Optional[str] = None
|
||||
suggestions: Optional[List[str]] = None
|
||||
word_count: Optional[int] = None
|
||||
dialogue_ratio: Optional[float] = None
|
||||
description_ratio: Optional[float] = None
|
||||
created_at: Optional[str] = None
|
||||
|
||||
|
||||
class ProjectDefaultStyleExportData(BaseModel):
|
||||
"""项目默认风格导出数据"""
|
||||
style_name: str # 通过风格名称关联
|
||||
|
||||
|
||||
class ProjectExportData(BaseModel):
|
||||
"""项目完整导出数据"""
|
||||
version: str = "1.0.0"
|
||||
version: str = "1.1.0" # 升级版本号
|
||||
export_time: str
|
||||
project: Dict[str, Any]
|
||||
chapters: List[ChapterExportData] = []
|
||||
@@ -131,6 +218,12 @@ class ProjectExportData(BaseModel):
|
||||
organization_members: List[OrganizationMemberExportData] = []
|
||||
writing_styles: List[WritingStyleExportData] = []
|
||||
generation_history: List[GenerationHistoryExportData] = []
|
||||
# 新增字段
|
||||
careers: List[CareerExportData] = []
|
||||
character_careers: List[CharacterCareerExportData] = []
|
||||
story_memories: List[StoryMemoryExportData] = []
|
||||
plot_analysis: List[PlotAnalysisExportData] = []
|
||||
project_default_style: Optional[ProjectDefaultStyleExportData] = None
|
||||
|
||||
|
||||
class ImportValidationResult(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user