AI模块架构设计v2
主要变更
- 移除AITaskType枚举
- 使用类名作为任务类型标识
- 简化类型系统
新架构核心类
classDiagram
class BaseAIExecution{
<<Document>>
+model_name: str
+task_class: str # 存储类名作为类型标识
+input_data: Dict
+output_data: Dict
}
class CompetitorKeywordAnalysisResult{
+analysis_result: AICompetitorAnalyzeMainKeywordsResult
}
class MarketingCopyAnalysisResult{
+analysis_result: MarketingInfo
}
BaseAIExecution <|-- CompetitorKeywordAnalysisResult
BaseAIExecution <|-- MarketingCopyAnalysisResult
工厂类修改方案
class TaskHandlerFactory:
_handler_map: Dict[str, Type[AITaskHandler]] = {
"CompetitorKeywordAnalysis": CompetitorKeywordAnalyzer,
"MarketingCopyAnalysis": MarketingCopyAnalyzer
}
@classmethod
def create_handler(cls, task_class: str) -> AITaskHandler:
handler_class = cls._handler_map.get(task_class)
return handler_class()
服务接口变更
class AIExecutorService:
async def execute_task(
self,
task_class: str, # 改为传递类名
model_name: str,
custom_prompt: Optional[str] = None
) -> BaseAIExecution:
handler = TaskHandlerFactory.create_handler(task_class)
# ...其余逻辑不变
迁移说明
- 删除所有AITaskType相关代码
- 数据库字段变更:
- 移除task_type字段
- 新增task_class字段存储类名
- 所有调用点改为传递类名字符串