EAP – How You Handle Conversation ?


EAP – How You Handle Conversation?

Table Of Contents:

from uuid import uuid4
from fastapi import APIRouter, Depends
from app.api.dependencies import get_agent_graph, get_memory
from app.core.config import get_settings
from app.middleware.auth import require_user
from app.schemas.chat import ChatRequest, ChatResponse
from app.schemas.incident import IncidentCreate
from app.schemas.response import HealthResponse
from app.tools.incident_tools import create_incident

router = APIRouter()

@router.get("/health", response_model=HealthResponse)
async def health():
    settings = get_settings()
    return HealthResponse(status="ok", environment=settings.app_env)

@router.post("/v1/chat", response_model=ChatResponse)
async def chat(request: ChatRequest, user: dict = Depends(require_user)):
    conversation_id = request.conversation_id or str(uuid4())
    memory = get_memory()
    memory.add(conversation_id, "user", request.message)
    result = await get_agent_graph().ainvoke({"message": request.message, "conversation_id": conversation_id})
    memory.add(conversation_id, "assistant", result["answer"])
    return ChatResponse(answer=result["answer"], conversation_id=conversation_id, intent=result["intent"], sources=result.get("sources", []))

@router.post("/v1/incidents")
async def open_incident(payload: IncidentCreate, user: dict = Depends(require_user)):
    return await create_incident(**payload.model_dump())

(2) How It Checks Whether The User Is Logged In?

(2) How It Creates Or Finds The Chat Section?

(3) How Does The Conversation ID Changes?

(4) How Will You Know User Starts Complete New Chat ?

Leave a Reply

Your email address will not be published. Required fields are marked *