Spaces:
Sleeping
Sleeping
Download app.py from Tonycrux/ticketsAPI: direct link, hf CLI and curl.
- Browser
- Download file 979 Bytes
-
https://huggingface.co/spaces/Tonycrux/ticketsAPI/resolve/refs%2Fpr%2F2/app.py
- Command line
-
hf download hf://spaces/Tonycrux/ticketsAPI@refs/pr/2/app.py
-
curl -L -o app.py https://huggingface.co/spaces/Tonycrux/ticketsAPI/resolve/refs%2Fpr%2F2/app.py
979 Bytes
| import re | |
| import joblib | |
| from fastapi import FastAPI, Request | |
| from pydantic import BaseModel | |
| from fastapi.middleware.cors import CORSMiddleware | |
| app = FastAPI() | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], # Or restrict to your domain | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| # Load model and vectorizer | |
| model = joblib.load("team_classifier_model.joblib") | |
| vectorizer = joblib.load("tfidf_vectorizer.joblib") | |
| def clean_text(text): | |
| text = re.sub(r"\s+", " ", str(text)) | |
| text = re.sub(r"[^\w\s]", "", text) | |
| return text.lower().strip() | |
| class InputText(BaseModel): | |
| subject: str | |
| message: str | |
| def root(): | |
| return {"status": "running", "message": "Use POST /classify"} | |
| async def classify_ticket(data: InputText): | |
| combined = clean_text(f"{data.subject} {data.message}") | |
| vec = vectorizer.transform([combined]) | |
| prediction = model.predict(vec)[0] | |
| return {"team": prediction} | |