Spaces:
Sleeping
Sleeping
File size: 1,433 Bytes
e50e11a |
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 |
from fastapi import FastAPI
from pydantic import BaseModel
from utils import fetch_news, generate_tts_hindi
import shutil
app = FastAPI()
class CompanyRequest(BaseModel):
company_name: str
@app.post("/get_news_and_sentiment")
async def get_news_and_sentiment(request: CompanyRequest):
company_name = request.company_name
articles = fetch_news(company_name)
# Comparative Sentiment Analysis
sentiment_distribution = {'Positive': 0, 'Negative': 0, 'Neutral': 0}
for article in articles:
sentiment_distribution[article['Sentiment']] += 1
# Prepare comparative analysis
coverage_diff = []
for i in range(1, len(articles)):
coverage_diff.append({
"Comparison": f"Article {i} vs Article {i+1}",
"Impact": f"Impact of coverage for {articles[i]['Sentiment']} vs {articles[i-1]['Sentiment']}"
})
# Generate TTS in Hindi
tts_file = generate_tts_hindi(f"Sentiment report for {company_name}.", "output.mp3")
return {
'Company': company_name,
'Articles': articles,
'Comparative Sentiment Score': sentiment_distribution,
'Coverage Differences': coverage_diff,
'Final Sentiment': f"Final sentiment about {company_name}: Positive" if sentiment_distribution['Positive'] > sentiment_distribution['Negative'] else "Negative",
'Audio': tts_file
}
|