ai_architecture_v2.md 1.6 KB

AI模块架构设计v2

主要变更

  1. 移除AITaskType枚举
  2. 使用类名作为任务类型标识
  3. 简化类型系统

新架构核心类

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)
        # ...其余逻辑不变

迁移说明

  1. 删除所有AITaskType相关代码
  2. 数据库字段变更:
    • 移除task_type字段
    • 新增task_class字段存储类名
  3. 所有调用点改为传递类名字符串