NLP-ASSIGNMENT / app.py
yohannesdesta's picture
Update py
1ba3b7b verified
from fastapi import FastAPI
from fastapi.responses import JSONResponse
from fastapi.middleware.cors import CORSMiddleware
from extractive import ExtractiveModel, _get_summary
from cosine import CosineModel, build_summary
from abstractive import Abstractive
from dto import SummarizeRequest
from transformers import pipeline
hub_model_id = "yohannesahunm/amharic_text_summarization"
abs_summarizer = pipeline("summarization", model=hub_model_id)
app = FastAPI()
# Setup cors
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.post("/textsummarize")
def summarizeText(request_body:SummarizeRequest):
text = request_body.text
model = int(request_body.model)
summary="error"
if model==0:
tparser = ExtractiveModel(text)
summary =_get_summary(tparser)
elif model==1:
tparser = CosineModel(text=text)
summary = build_summary(tparser.sentences)
else:
summary = Abstractive(abs_summarizer).summarizer(text)
if summary=="error":
return JSONResponse(content="There is Error.", status_code=400)
return JSONResponse(content=summary, status_code=201)
# Get route
@app.get("/")
def home():
return {"hello":"world"}