Spaces:
Sleeping
Sleeping
from fastapi import FastAPI | |
from transformers import BertForSequenceClassification, AutoTokenizer | |
import torch | |
# β Load trained FinBERT model | |
MODEL_PATH = "hariharan220/finbert-stock-sentiment" | |
model = BertForSequenceClassification.from_pretrained(MODEL_PATH) | |
tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH) | |
# β Define sentiment labels | |
labels = ["Negative", "Neutral", "Positive"] | |
# β Create FastAPI app | |
app = FastAPI() | |
async def home(): | |
return {"message": "Stock Sentiment Analysis API is running!"} | |
async def predict_sentiment(text: str): | |
"""Predicts sentiment of stock-related text using FinBERT""" | |
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True) | |
with torch.no_grad(): | |
outputs = model(**inputs) | |
logits = outputs.logits | |
prediction = torch.argmax(logits, dim=1).item() | |
sentiment = labels[prediction] | |
return {"text": text, "sentiment": sentiment} | |