AI执行服务模块负责协调AI任务执行流程,包括:
任务类型(AITaskType):定义可执行的AI任务类别
任务处理器(AITaskHandler):每个任务类型对应一个处理器类,负责:
执行记录(AIExecutionRecord):存储每次任务执行的完整上下文和结果
classDiagram
class AITaskHandler{
<<interface>>
+task_type() AITaskType
+format_prompt() str
+get_result_model() Type[BaseModel]
}
class MarketingCopyGenerator{
+task_type = MARKETING_COPY
+format_prompt()
}
class CompetitorAnalyzer{
+task_type = COMPETITOR_ANALYSIS
+format_prompt()
}
class AIExecutorService{
+execute_task()
+execute_multi_model_task()
}
AITaskHandler <|-- MarketingCopyGenerator
AITaskHandler <|-- CompetitorAnalyzer
AIExecutorService --> AITaskHandler
# 初始化服务
service = AIExecutorService(product)
# 执行任务
result = await service.execute_task(
task_type=AITaskType.MARKETING_COPY,
model_name="gpt-4",
custom_prompt=user_template
)
results = await service.execute_multi_model_task(
task_type=AITaskType.COMPETITOR_ANALYSIS,
model_names=["gpt-4", "claude-3"],
custom_prompt=competitor_template
)
所有执行记录存储在MongoDB的AIExecutionRecords集合中,包含字段:
task_type: 任务类型model_name: 使用的AI模型input_data: 原始输入(如提示词)output_data: AI原始输出analysis_result: 解析后的结果对象created_at: 执行时间戳AITaskType中添加新枚举值BaseAIExecution)AITaskHandler)TaskHandlerFactory中注册示例:
# 新增产品评论分析
class ProductReviewResult(BaseAIExecution):
analysis_result: ReviewAnalysisResult
class ReviewAnalyzer(AITaskHandler):
task_type = AITaskType.PRODUCT_REVIEW
async def format_prompt(self, product: Product) -> str:
...
def get_result_model(self):
return ProductReviewResult