adeshboudh16
updated ui, docs, tests
47203d3
from langgraph.graph import END, StateGraph
from backend.graph.nodes import (
ask_question,
counter_question,
evaluate_answer,
generate_report,
route_after_evaluation,
summarize,
)
from backend.graph.state import InterviewState
def build_graph(checkpointer):
"""Compile the interview graph with the given checkpointer. Call once at startup."""
builder = StateGraph(InterviewState)
builder.add_node("ask_question", ask_question)
builder.add_node("evaluate_answer", evaluate_answer)
builder.add_node("counter_question", counter_question)
builder.add_node("summarize", summarize)
builder.add_node("generate_report", generate_report)
builder.set_entry_point("ask_question")
builder.add_edge("ask_question", "evaluate_answer")
builder.add_conditional_edges(
"evaluate_answer",
route_after_evaluation,
{
"counter": "counter_question",
"next_question": "ask_question",
"summarize": "summarize",
"end": "generate_report",
},
)
builder.add_edge("counter_question", "evaluate_answer")
builder.add_edge("summarize", "ask_question")
builder.add_edge("generate_report", END)
return builder.compile(
checkpointer=checkpointer,
interrupt_before=["evaluate_answer"],
)