ticketsAPI / app.py
Anthony Oluyele
Fix: downgrade numpy version for Python 3.10 compatibility
cecf8bc
raw
history blame
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
@app.get("/")
def root():
return {"status": "running", "message": "Use POST /classify"}
@app.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}