Files
DronePlanning/backend_service/src/pipeline/orchestrator.py
2026-02-26 19:37:55 +08:00

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)