ajaykashela's picture
Upload 2 files
9e6a1d1 verified
from fastapi import FastAPI
from pydantic import BaseModel
from transformers import pipeline
from datetime import datetime
import os
app = FastAPI()
# Load model
classifier = pipeline(
"zero-shot-classification",
model="MoritzLaurer/DeBERTa-v3-base-mnli-fever-anli"
)
# Pydantic input model
class EmailRequest(BaseModel):
email: str
# Endpoint to classify email
@app.post("/classify")
def classify_email(request: EmailRequest):
labels = ["Approved", "Rejected", "Unclear"]
result = classifier(request.email, candidate_labels=labels)
top_label = result['labels'][0]
confidence = round(result['scores'][0], 2)
# Logging
log_line = f"{datetime.now()} | {top_label:<9} ({confidence}) | {request.email}\n"
os.makedirs("logs", exist_ok=True)
with open("logs/inputs.log", "a", encoding="utf-8") as f:
f.write(log_line)
return {"label": top_label, "confidence": confidence}
if __name__ == "__main__":
import uvicorn
uvicorn.run("app:app", host="0.0.0.0", port=7860)