refactor: 导入导出功能增强:版本升级至1.1.0,新增职业系统、故事记忆、剧情分析的导出选项

This commit is contained in:
xiamuceer-j
2026-01-14 19:47:28 +08:00
parent 7ba2b2e5fa
commit fb16cc4072
3 changed files with 707 additions and 34 deletions
+94 -1
View File
@@ -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):