32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Any, Dict
|
|
|
|
from .stages import PipelineStages
|
|
|
|
|
|
class GenerationOrchestrator:
|
|
def __init__(self, generator: Any):
|
|
self.stages = PipelineStages(generator)
|
|
|
|
async def generate(self, user_prompt: str) -> Dict:
|
|
understanding = self.stages.stage1_task_understanding(user_prompt)
|
|
context = self.stages.stage2_context_binding(user_prompt, understanding)
|
|
|
|
if understanding.scene_mode == "simple":
|
|
draft = self.stages.stage3_macro_planning(user_prompt, understanding, context)
|
|
return self.stages.stage6_validate_and_postprocess(user_prompt, understanding, context, draft, draft.llm_raw_json)
|
|
|
|
# Round 1: 宏观规划
|
|
draft = self.stages.stage3_macro_planning(user_prompt, understanding, context)
|
|
|
|
# Middleware: 动态依赖解析
|
|
resolved_data = self.stages.stage4_middleware_resolution(draft)
|
|
|
|
# Round 2: 微观填参
|
|
final_tree = self.stages.stage5_micro_filling(draft, resolved_data, understanding)
|
|
|
|
# 验证与后处理
|
|
return self.stages.stage6_validate_and_postprocess(user_prompt, understanding, context, draft, final_tree)
|
|
|