Spaces:
Sleeping
Sleeping
File size: 5,796 Bytes
942c771 e1b89ea 18d9710 e1b89ea 18d9710 e1b89ea 78401dc e1b89ea 78401dc e1b89ea 78401dc e1b89ea 942c771 18d9710 e1b89ea 18d9710 78401dc e1b89ea 78401dc 18d9710 e1b89ea | 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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
from typing import List
# Request model
class SentimentRequest(BaseModel):
sentences: List[str]
# Hardcoded dataset of sentences -> sentiment
HARDCODED_SENTIMENTS = {
"I absolutely love this product, it changed my life!": "happy",
"This is the worst experience I've ever had.": "sad",
"The weather today is quite average.": "neutral",
"I'm so excited about my upcoming vacation!": "happy",
"I lost my favorite book and I'm heartbroken.": "sad",
"The meeting is scheduled for 3 PM.": "neutral",
"This movie brought tears of joy to my eyes.": "happy",
"I failed my exam and feel terrible about it.": "sad",
"The package arrived on time.": "neutral",
"Winning the competition was a dream come true!": "happy",
"My pet passed away yesterday.": "sad",
"The report contains 50 pages.": "neutral",
"I'm thrilled to announce our engagement!": "happy",
"The project was rejected by the committee.": "sad",
"The store opens at 9 AM.": "neutral",
"Best day ever! Everything went perfectly!": "happy",
"I'm devastated by the news.": "sad",
"The temperature is 72 degrees.": "neutral",
"I can't stop smiling after hearing that!": "happy",
"Nobody showed up to my birthday party.": "sad",
"The file is saved in the documents folder.": "neutral",
"This is amazing! I'm so grateful!": "happy",
"I regret making that decision.": "sad",
"The train departs at 6:30 PM.": "neutral",
"I feel fantastic today!": "happy",
"The company announced massive layoffs.": "sad",
"There are 12 items in the list.": "neutral",
"This is exactly what I was hoping for!": "happy",
"I'm disappointed with the results.": "sad",
"The conference room is on the third floor.": "neutral",
"I'm overjoyed with this opportunity!": "happy",
"The diagnosis was worse than expected.": "sad",
"The document is 10 pages long.": "neutral",
"What a wonderful surprise!": "happy",
"I feel lonely and abandoned.": "sad",
"The meeting will last 2 hours.": "neutral",
"I'm so proud of what we accomplished!": "happy",
"Everything is falling apart.": "sad",
"The website has three main sections.": "neutral",
"This is the happiest moment of my life!": "happy",
"I'm struggling with depression.": "sad",
"The office is located downtown.": "neutral",
"I'm delighted with the service!": "happy",
"The relationship ended badly.": "sad",
"The system requires an update.": "neutral",
"I'm blessed to have such wonderful friends!": "happy",
"I feel hopeless about the situation.": "sad",
"The price is $50.": "neutral",
"This is pure bliss!": "happy",
"I'm crying because of the pain.": "sad",
"The button is on the left side.": "neutral",
"I'm ecstatic about the promotion!": "happy",
"My heart is broken.": "sad",
"The application is available for download.": "neutral",
"Life is beautiful!": "happy",
"I'm miserable and exhausted.": "sad",
"The event starts at noon.": "neutral",
"I'm radiating with happiness!": "happy",
"The accident left me traumatized.": "sad",
"The folder contains 25 files.": "neutral",
"I'm jumping for joy!": "happy",
"I feel utterly defeated.": "sad",
"The password must be 8 characters.": "neutral",
"This exceeded all my expectations!": "happy",
"I'm drowning in sorrow.": "sad",
"The form has five fields.": "neutral",
"I'm on cloud nine!": "happy",
"Everything I touch turns to failure.": "sad",
"The menu has four options.": "neutral",
"I'm bursting with excitement!": "happy",
"I feel empty inside.": "sad",
"The course lasts 6 weeks.": "neutral",
"Today is the best day of my life!": "happy",
"I'm suffering from anxiety.": "sad",
"The building has 10 floors.": "neutral",
"I'm incredibly fortunate!": "happy",
"I lost everything in the fire.": "sad",
"The session duration is 30 minutes.": "neutral",
"I'm grinning from ear to ear!": "happy",
"I'm consumed by grief.": "sad",
"The table has 4 columns.": "neutral",
"This is a dream come true!": "happy",
"I'm worried sick about this.": "sad",
"The deadline is next Friday.": "neutral",
"I'm absolutely thrilled!": "happy",
"I'm shattered by the betrayal.": "sad",
"The parking lot has 100 spaces.": "neutral",
"I feel alive and energized!": "happy",
"I'm overwhelmed with sadness.": "sad",
"The manual is 200 pages.": "neutral",
"I'm celebrating this wonderful news!": "happy",
"I'm haunted by regret.": "sad",
"The warranty lasts one year.": "neutral",
"I'm filled with pure joy!": "happy",
"I'm crushed by disappointment.": "sad",
"The server is hosted in the cloud.": "neutral",
"This is absolutely spectacular!": "happy",
"I'm burdened by endless problems.": "sad",
"The API accepts JSON requests.": "neutral",
}
app = FastAPI(title="FastAPI Batch Sentiment Analysis (Hardcoded)")
# Enable CORS for browser access
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Handle both POST / and POST /sentiment for safety
@app.post("/")
@app.post("/sentiment")
async def analyze_sentiments(data: SentimentRequest):
results = []
for sentence in data.sentences:
sentiment = HARDCODED_SENTIMENTS.get(sentence.strip(), "neutral")
results.append({"sentence": sentence, "sentiment": sentiment})
return {"results": results}
@app.get("/")
async def root():
return {"message": "FastAPI Batch Sentiment Analysis API (Hardcoded) is running!"} |