update:1.更新导入导出功能 2.实现RAG记忆功能,引入剧情分析功能
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
"""导入导出相关的Pydantic模型"""
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Optional, List, Dict, Any
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class ExportOptions(BaseModel):
|
||||
"""导出选项"""
|
||||
include_generation_history: bool = Field(False, description="是否包含生成历史")
|
||||
include_writing_styles: bool = Field(True, description="是否包含写作风格")
|
||||
|
||||
|
||||
class ChapterExportData(BaseModel):
|
||||
"""章节导出数据"""
|
||||
title: str
|
||||
content: Optional[str] = None
|
||||
summary: Optional[str] = None
|
||||
chapter_number: int
|
||||
word_count: int = 0
|
||||
status: str = "draft"
|
||||
created_at: Optional[str] = None
|
||||
|
||||
|
||||
class CharacterExportData(BaseModel):
|
||||
"""角色导出数据"""
|
||||
name: str
|
||||
age: Optional[str] = None
|
||||
gender: Optional[str] = None
|
||||
is_organization: bool = False
|
||||
role_type: Optional[str] = None
|
||||
personality: Optional[str] = None
|
||||
background: Optional[str] = None
|
||||
appearance: Optional[str] = None
|
||||
traits: Optional[List[str]] = None
|
||||
organization_type: Optional[str] = None
|
||||
organization_purpose: Optional[str] = None
|
||||
created_at: Optional[str] = None
|
||||
|
||||
|
||||
class OutlineExportData(BaseModel):
|
||||
"""大纲导出数据"""
|
||||
title: str
|
||||
content: Optional[str] = None
|
||||
structure: Optional[str] = None
|
||||
order_index: Optional[int] = None
|
||||
created_at: Optional[str] = None
|
||||
|
||||
|
||||
class RelationshipExportData(BaseModel):
|
||||
"""关系导出数据"""
|
||||
source_name: str
|
||||
target_name: str
|
||||
relationship_name: Optional[str] = None
|
||||
intimacy_level: int = 50
|
||||
status: str = "active"
|
||||
description: Optional[str] = None
|
||||
started_at: Optional[str] = None
|
||||
|
||||
|
||||
class OrganizationExportData(BaseModel):
|
||||
"""组织详情导出数据"""
|
||||
character_name: str
|
||||
parent_org_name: Optional[str] = None
|
||||
power_level: int = 50
|
||||
member_count: int = 0
|
||||
location: Optional[str] = None
|
||||
motto: Optional[str] = None
|
||||
color: Optional[str] = None
|
||||
|
||||
|
||||
class OrganizationMemberExportData(BaseModel):
|
||||
"""组织成员导出数据"""
|
||||
organization_name: str
|
||||
character_name: str
|
||||
position: str
|
||||
rank: int = 0
|
||||
status: str = "active"
|
||||
joined_at: Optional[str] = None
|
||||
loyalty: int = 50
|
||||
contribution: int = 0
|
||||
notes: Optional[str] = None
|
||||
|
||||
|
||||
class WritingStyleExportData(BaseModel):
|
||||
"""写作风格导出数据"""
|
||||
name: str
|
||||
style_type: str
|
||||
preset_id: Optional[str] = None
|
||||
description: Optional[str] = None
|
||||
prompt_content: str
|
||||
order_index: int = 0
|
||||
|
||||
|
||||
class GenerationHistoryExportData(BaseModel):
|
||||
"""生成历史导出数据"""
|
||||
chapter_title: Optional[str] = None
|
||||
prompt: Optional[str] = None
|
||||
generated_content: Optional[str] = None
|
||||
model: Optional[str] = None
|
||||
tokens_used: Optional[int] = None
|
||||
generation_time: Optional[float] = None
|
||||
created_at: Optional[str] = None
|
||||
|
||||
|
||||
class ProjectExportData(BaseModel):
|
||||
"""项目完整导出数据"""
|
||||
version: str = "1.0.0"
|
||||
export_time: str
|
||||
project: Dict[str, Any]
|
||||
chapters: List[ChapterExportData] = []
|
||||
characters: List[CharacterExportData] = []
|
||||
outlines: List[OutlineExportData] = []
|
||||
relationships: List[RelationshipExportData] = []
|
||||
organizations: List[OrganizationExportData] = []
|
||||
organization_members: List[OrganizationMemberExportData] = []
|
||||
writing_styles: List[WritingStyleExportData] = []
|
||||
generation_history: List[GenerationHistoryExportData] = []
|
||||
|
||||
|
||||
class ImportValidationResult(BaseModel):
|
||||
"""导入验证结果"""
|
||||
valid: bool
|
||||
version: str
|
||||
project_name: Optional[str] = None
|
||||
statistics: Dict[str, int] = {}
|
||||
errors: List[str] = []
|
||||
warnings: List[str] = []
|
||||
|
||||
|
||||
class ImportResult(BaseModel):
|
||||
"""导入结果"""
|
||||
success: bool
|
||||
project_id: Optional[str] = None
|
||||
message: str
|
||||
statistics: Dict[str, int] = {}
|
||||
warnings: List[str] = []
|
||||
Reference in New Issue
Block a user