Spaces:
Sleeping
Sleeping
from fastapi import FastAPI, Request, Form | |
from fastapi.responses import HTMLResponse | |
import nest_asyncio | |
import uvicorn | |
from transformers import pipeline | |
app = FastAPI() | |
async def startup_event(): | |
model_path="cardiffnlp/twitter-roberta-base-sentiment-latest" | |
global sentiment_task | |
sentiment_task = pipeline("sentiment-analysis", model=model_path, tokenizer=model_path) | |
async def home(): | |
html_content = """ | |
<html> | |
<head> | |
<title>Text Classification</title> | |
</head> | |
<body> | |
<h1>Text Classification</h1> | |
<form method="post" action="/analyze/"> | |
<input type="text" name="text" placeholder="Enter text to analyze" autocomplete="off" required> | |
<input type="submit" value="Analyze"> | |
</form> | |
</body> | |
</html> | |
""" | |
return HTMLResponse(content=html_content, status_code=200) | |
async def get_name(name: str): | |
return {'Welcome To Here': f'{name}'} | |
async def analyze_text(text: str = Form(...)): | |
# Assuming your model is a function that takes input and returns predictions | |
prediction = sentiment_task(text) | |
html_content = """ | |
<html> | |
<head> | |
<title>Analysis Result</title> | |
</head> | |
<body> | |
<h1>Analysis Result:</h1> | |
<p>Input Text: {input_text}</p> | |
<p>Prediction: {prediction}</p> | |
<button><a href="/" >Back</a><button> | |
</body> | |
</html> | |
""".format(input_text=text, prediction=prediction[0]['label']) | |
return HTMLResponse(content=html_content, status_code=200) | |