Spaces:
Sleeping
Sleeping
File size: 1,208 Bytes
80ef840 | 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 | from fastapi import APIRouter
from fastapi.responses import PlainTextResponse
from app.api.schemas import TicketRequest, TicketResponse
from app.rag.ingest import ingest_policies
from app.rag.vector_store import collection_count
from app.workflows.langgraph_workflow import CustomerSupportWorkflow
router = APIRouter(prefix="/api", tags=["support"])
workflow = CustomerSupportWorkflow()
@router.get("/health")
def health() -> dict:
return {"status": "ok"}
@router.get("/rag/status")
def rag_status() -> dict:
return {"collection_count": collection_count()}
@router.post("/rag/ingest")
def ingest_rag() -> dict:
return ingest_policies(reset=True)
@router.post("/tickets", response_model=TicketResponse)
def submit_ticket(request: TicketRequest) -> dict:
return workflow.run(
customer_id=request.customer_id,
message=request.message,
order_id=request.order_id,
)
@router.post("/tickets/text", response_class=PlainTextResponse)
def submit_ticket_text(request: TicketRequest) -> str:
result = workflow.run(
customer_id=request.customer_id,
message=request.message,
order_id=request.order_id,
)
return result["response"]
|