Spaces:
Sleeping
Sleeping
| 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 | |
| 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 | |
| } | |