alexorlov's picture
Upload folder using huggingface_hub
6d2b0f9 verified
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()