Spaces:
Sleeping
Sleeping
File size: 1,930 Bytes
6d2b0f9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
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()
|