Team Ai
Apppublic

Pulastya0/AI-Agent-Routing-Department

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
app.py59 linesDownload Raw Back to root
1import os2from fastapi import FastAPI, HTTPException3from pydantic import BaseModel , Extra4from transformers import pipeline5 6# -------------------------------7# Set Hugging Face cache to writable directory8# -------------------------------9os.environ["HF_HOME"] = "/tmp/huggingface"10os.environ["TRANSFORMERS_CACHE"] = "/tmp/huggingface"11os.environ["HF_DATASETS_CACHE"] = "/tmp/huggingface"12 13# -------------------------------14# FastAPI app15# -------------------------------16app = FastAPI(title="Routing Service - Space 2")17 18# -------------------------------19# Request Model20# -------------------------------21class RoutingRequest(BaseModel):22    text: str23 24    class Config:25        extra = Extra.ignore  # allow extra fields like user_email26 27# -------------------------------28# Load Zero-Shot Classifier29# -------------------------------30DEPARTMENTS = ['Account', 'Software', 'Network', 'Security', 'Hardware',31               'Infrastructure', 'Licensing', 'Communication', 'RemoteWork',32               'Training', 'Performance']33 34classifier = pipeline(35    "zero-shot-classification",36    model="MoritzLaurer/DeBERTa-v3-base-mnli-fever-anli"37)38 39# -------------------------------40# Routing Endpoint41# -------------------------------42@app.post("/route")43async def route_ticket(req: RoutingRequest):44    text = req.text45    if not text:46        raise HTTPException(status_code=400, detail="Text cannot be empty")47 48    result = classifier(text, DEPARTMENTS)49    department = result["labels"][0]  # highest scoring department50 51    return {"department": department}52 53# -------------------------------54# Health Check55# -------------------------------56@app.get("/health")57async def health():58    return {"status": "ok"}59