-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
36 lines (27 loc) · 1.05 KB
/
main.py
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
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from slowapi import Limiter, _rate_limit_exceeded_handler
from slowapi.errors import RateLimitExceeded
from slowapi.util import get_remote_address
from starlette.middleware.cors import CORSMiddleware
from model import DhivehiNewsClassifier
classifier = DhivehiNewsClassifier()
app = FastAPI(
title="Dhivehi News Classifier",
description="Dhivehi News Classifier",
version="0.0.1",
)
app.mount("/assets", StaticFiles(directory="templates/assets"), name="assets")
templates = Jinja2Templates(directory="templates")
@app.get('/', response_class=HTMLResponse, include_in_schema=False)
async def index(request: Request):
return templates.TemplateResponse("index.html", {"request": request})
@app.post("/api/classify/")
async def multi_word(request: Request):
data = await request.json()
category = classifier.predict(data['news'])
return {
"category": category
}