Spaces:
Sleeping
Sleeping
| from langgraph.graph import StateGraph, END | |
| from app.agent.state import AgentState | |
| from app.agent.nodes import ( | |
| generate_initial_questions, | |
| process_answers, | |
| analyze_round, | |
| generate_checklist, | |
| check_round_complete | |
| ) | |
| def create_checklist_agent() -> StateGraph: | |
| """Создает LangGraph для чеклист-агента""" | |
| # Создаем граф с состоянием AgentState | |
| workflow = StateGraph(AgentState) | |
| # Добавляем ноды | |
| workflow.add_node("generate_initial_questions", generate_initial_questions) | |
| workflow.add_node("process_answers", process_answers) | |
| workflow.add_node("analyze_round", analyze_round) | |
| workflow.add_node("generate_checklist", generate_checklist) | |
| # Устанавливаем начальную точку | |
| workflow.set_entry_point("generate_initial_questions") | |
| # Добавляем переходы | |
| # После генерации вопросов - ждем ответы (END чтобы вернуть контроль) | |
| workflow.add_edge("generate_initial_questions", END) | |
| # После обработки ответов - анализируем раунд | |
| workflow.add_edge("process_answers", "analyze_round") | |
| # После анализа - либо ждем новые ответы, либо генерируем чеклист | |
| workflow.add_conditional_edges( | |
| "analyze_round", | |
| check_round_complete, | |
| { | |
| "wait_for_answers": END, # Ждем следующие ответы | |
| "generate_checklist": "generate_checklist" # Генерируем чеклист | |
| } | |
| ) | |
| # После генерации чеклиста - конец | |
| workflow.add_edge("generate_checklist", END) | |
| return workflow.compile() | |
| # Создаем экземпляр агента | |
| checklist_agent = create_checklist_agent() | |