FastAPI / nuse_modules /fetchHeadlines.py
raghavNCI
headlines
601d9f9
raw
history blame
1.01 kB
from nuse_modules.google_search import search_google_news
from models_initialization.mistral_registry import mistral_generate
def summarize_headlines_with_mistral(headlines: list[dict]) -> str:
prompt = (
"Summarize the following news headlines into a short 3-sentence digest. "
"Be factual and neutral. Mention the sources.\n\n"
)
for item in headlines:
prompt += f"- {item['title']}{item.get('link', '')}\n"
return mistral_generate(prompt, max_new_tokens=200, temperature=0.5)
def generate_headline_digest(keywords: list[str], num_results: int = 5):
articles = search_google_news(keywords, num_results=num_results)
if isinstance(articles, dict) and "error" in articles:
return {"error": articles["error"]}
summary = summarize_headlines_with_mistral(articles)
return {
"summary": summary,
"sources": list({article["link"] for article in articles}),
"headlines": [article["title"] for article in articles]
}