CoolFace
Apppublic

Fade0510/CallCenterSummarizationAgent

sourceHugging Facemitupdated 5mo agoView on Hugging Face
0likes
workflow.py70 linesDownload Raw Back to src
1from langgraph.graph import StateGraph, END2from langchain_core.runnables import RunnableLambda3from src.agents import (4    CallState,5    IntakeAgent,6    TranscriptionAgent,7    SummarizationAgent,8    QualityScoringAgent,9    ModerationAgent,10    Router11)12from src.agents.Router import PostSummarizeRouter13 14def build_workflow():15    workflow = StateGraph(CallState)16    17    # Initialize agents18    intake_agent = IntakeAgent()19    transcription_agent = TranscriptionAgent()20    moderation_agent = ModerationAgent()21    summarization_agent = SummarizationAgent()22    quality_scoring_agent = QualityScoringAgent()23    router = Router()24    post_summarize_router = PostSummarizeRouter()25    26    # Add nodes27    workflow.add_node("intake", intake_agent)28    workflow.add_node("transcribe", transcription_agent)29    workflow.add_node("moderate", moderation_agent)30    summarize_node = RunnableLambda(summarization_agent).with_fallbacks(31        [RunnableLambda(SummarizationAgent.fallback)]32    )33    score_node = RunnableLambda(quality_scoring_agent).with_fallbacks(34        [RunnableLambda(QualityScoringAgent.fallback)]35    )36    workflow.add_node("summarize", summarize_node)37    workflow.add_node("score", score_node)38    39    # Define entry point40    workflow.set_entry_point("intake")41    42    # Add conditional edges from intake43    workflow.add_conditional_edges(44        "intake",45        router,46        {47            "transcribe": "transcribe",48            "summarize": "moderate",49            "end": END50        }51    )52    53    # Add standard edges54    workflow.add_edge("transcribe", "moderate")55    workflow.add_edge("moderate", "summarize")56    workflow.add_conditional_edges(57        "summarize",58        post_summarize_router,59        {"score": "score", "end": END},60    )61    workflow.add_edge("score", END)62 63    # Compile with a MemorySaver checkpointer when available.64    try:65        from langgraph.checkpoint.memory import MemorySaver66 67        return workflow.compile(checkpointer=MemorySaver())68    except Exception:69        return workflow.compile()70