feat: 重构MCP功能和AI服务提供者架构

This commit is contained in:
xiamuceer-j
2026-01-09 17:13:19 +08:00
parent f3c224261d
commit 77c5489ff8
49 changed files with 4763 additions and 4307 deletions
+2 -3
View File
@@ -1,5 +1,5 @@
"""职业相关的Pydantic模型"""
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field, ConfigDict
from typing import Optional, List, Dict, Any
from datetime import datetime
@@ -63,8 +63,7 @@ class CareerResponse(BaseModel):
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
model_config = ConfigDict(from_attributes=True)
class CareerListResponse(BaseModel):
+4 -6
View File
@@ -1,5 +1,5 @@
"""章节相关的Pydantic模型"""
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field, ConfigDict
from typing import Optional, List, Dict, Any
from datetime import datetime
@@ -58,8 +58,7 @@ class ChapterResponse(BaseModel):
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
model_config = ConfigDict(from_attributes=True)
class ChapterListResponse(BaseModel):
@@ -142,8 +141,7 @@ class ExpansionPlanUpdate(BaseModel):
estimated_words: Optional[int] = Field(None, description="预估字数", ge=500, le=10000)
scenes: Optional[List[SceneData]] = Field(None, description="场景列表")
class Config:
json_schema_extra = {
model_config = ConfigDict(json_schema_extra={
"example": {
"key_events": ["主角遇到挑战", "关键决策时刻"],
"character_focus": ["张三", "李四"],
@@ -159,7 +157,7 @@ class ExpansionPlanUpdate(BaseModel):
}
]
}
}
})
class ExpansionPlanResponse(BaseModel):
+2 -3
View File
@@ -1,5 +1,5 @@
"""角色相关的Pydantic模型"""
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field, ConfigDict
from typing import Optional, List, Dict, Any
from datetime import datetime
@@ -98,8 +98,7 @@ class CharacterResponse(CharacterBase):
main_career_stage: Optional[int] = Field(None, description="主职业阶段")
sub_careers: Optional[List[Dict[str, Any]]] = Field(None, description="副职业列表")
class Config:
from_attributes = True
model_config = ConfigDict(from_attributes=True)
class CharacterGenerateRequest(BaseModel):
+2 -3
View File
@@ -1,5 +1,5 @@
"""MCP插件Pydantic模式"""
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field, ConfigDict
from typing import Optional, Dict, Any, List
from datetime import datetime
@@ -82,8 +82,7 @@ class MCPPluginResponse(BaseModel):
# 时间戳
created_at: datetime
class Config:
from_attributes = True
model_config = ConfigDict(from_attributes=True)
class MCPToolCall(BaseModel):
+2 -3
View File
@@ -1,5 +1,5 @@
"""大纲相关的Pydantic模型"""
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field, ConfigDict
from typing import Optional, List, Dict, Any
from datetime import datetime
@@ -103,8 +103,7 @@ class OutlineResponse(BaseModel):
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
model_config = ConfigDict(from_attributes=True)
class OutlineGenerateRequest(BaseModel):
+2 -3
View File
@@ -1,5 +1,5 @@
"""项目相关的Pydantic模型"""
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field, ConfigDict
from typing import Optional, Literal
from datetime import datetime
@@ -59,8 +59,7 @@ class ProjectResponse(ProjectBase):
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
model_config = ConfigDict(from_attributes=True)
class ProjectListResponse(BaseModel):
+5 -9
View File
@@ -1,5 +1,5 @@
"""关系管理相关的Pydantic模型"""
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field, ConfigDict
from typing import Optional, List
from datetime import datetime
@@ -17,8 +17,7 @@ class RelationshipTypeResponse(BaseModel):
description: Optional[str] = None
created_at: datetime
class Config:
from_attributes = True
model_config = ConfigDict(from_attributes=True)
# ============ 角色关系相关 ============
@@ -62,8 +61,7 @@ class CharacterRelationshipResponse(CharacterRelationshipBase):
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
model_config = ConfigDict(from_attributes=True)
class RelationshipGraphNode(BaseModel):
@@ -127,8 +125,7 @@ class OrganizationResponse(OrganizationBase):
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
model_config = ConfigDict(from_attributes=True)
class OrganizationDetailResponse(BaseModel):
@@ -185,8 +182,7 @@ class OrganizationMemberResponse(OrganizationMemberBase):
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
model_config = ConfigDict(from_attributes=True)
class OrganizationMemberDetailResponse(BaseModel):
+2 -3
View File
@@ -1,5 +1,5 @@
"""写作风格 Schema"""
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field, ConfigDict
from typing import Optional
from datetime import datetime
@@ -48,8 +48,7 @@ class WritingStyleResponse(BaseModel):
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
model_config = ConfigDict(from_attributes=True)
class WritingStyleListResponse(BaseModel):