| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- from __future__ import annotations
- """测试完整多角色工作流端到端流程:从需求输入到最终旅行方案输出。"""
- import asyncio
- from rich.console import Console
- from app.graph.planner_builder import (
- build_planner_graph,
- )
- console = Console()
- async def main() -> None:
- graph = await build_planner_graph()
- result = await graph.ainvoke(
- {
- "user_query": (
- "我和妻子计划2026年8月10日"
- "从上海去成都,8月14日返回,"
- "总预算5000元。"
- "喜欢熊猫、自然景观和川菜,"
- "希望行程轻松一些。"
- "酒店每晚不超过300元,"
- "评分不低于3,"
- "并且希望靠近地铁。"
- "机票价格和便利性综合考虑。"
- ),
- "errors": [],
- "missing_fields": [],
- "planning_attempts": 0,
- "review_attempts": 0,
- "revision_feedback": [],
- "workflow_status": "running",
- },
- config={
- "recursion_limit": 80,
- },
- )
- console.rule(
- "[bold]最终多角色工作流"
- )
- console.print(
- {
- "工作流状态": result.get(
- "workflow_status"
- ),
- "Supervisor决策": result.get(
- "supervisor_decision"
- ),
- "Planner次数": result.get(
- "planning_attempts"
- ),
- "Reviewer次数": result.get(
- "review_attempts"
- ),
- "校验通过": result.get(
- "validation_passed"
- ),
- "审查通过": result.get(
- "review_passed"
- ),
- "系统错误": result.get(
- "errors"
- ),
- }
- )
- console.rule("[bold]最终旅行方案")
- console.print(
- result.get(
- "final_answer",
- "没有最终回答。",
- )
- )
- if __name__ == "__main__":
- asyncio.run(main())
|