Spaces:
Sleeping
Sleeping
from fastapi import FastAPI, HTTPException | |
from fastapi.responses import FileResponse | |
import time | |
from utils import ( | |
get_bing_news_articles, | |
analyze_sentiment, | |
extract_topics, | |
comparative_analysis, | |
convert_text_to_hindi_tts, | |
) | |
app = FastAPI(title="News Summarization & TTS API") | |
def get_news(company: str, num_articles: int = 10): | |
articles = get_bing_news_articles(company, num_articles=num_articles) | |
if not articles: | |
raise HTTPException(status_code=404, detail="No articles found.") | |
for article in articles: | |
combined_text = article["title"] | |
if article["summary"]: | |
combined_text += ". " + article["summary"] | |
sentiment, scores = analyze_sentiment(combined_text) | |
article["sentiment"] = sentiment | |
article["sentiment_scores"] = scores | |
article["topics"] = extract_topics(combined_text) | |
time.sleep(0.5) | |
analysis = comparative_analysis(articles) | |
return {"articles": articles, "analysis": analysis} | |
def get_tts(text: str): | |
output_file = "output.mp3" | |
convert_text_to_hindi_tts(text, output_file=output_file) | |
return FileResponse(output_file, media_type="audio/mpeg", filename=output_file) | |