Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -23,6 +23,8 @@ import json
|
|
| 23 |
import pandas as pd
|
| 24 |
import numpy as np
|
| 25 |
import altair as alt
|
|
|
|
|
|
|
| 26 |
|
| 27 |
st.set_page_config(layout="wide")
|
| 28 |
|
|
@@ -420,6 +422,51 @@ elif activities=="News Sentiment":
|
|
| 420 |
}}
|
| 421 |
|
| 422 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 423 |
llm_prompt = PromptTemplate.from_template(llm_prompt_template)
|
| 424 |
|
| 425 |
llm_chain = LLMChain(llm=llm,prompt=llm_prompt)
|
|
|
|
| 23 |
import pandas as pd
|
| 24 |
import numpy as np
|
| 25 |
import altair as alt
|
| 26 |
+
from GoogleNews import GoogleNews
|
| 27 |
+
from newspaper import Article
|
| 28 |
|
| 29 |
st.set_page_config(layout="wide")
|
| 30 |
|
|
|
|
| 422 |
}}
|
| 423 |
|
| 424 |
"""
|
| 425 |
+
|
| 426 |
+
def get_google_news_documents(query: str, max_articles: int = 10):
|
| 427 |
+
"""
|
| 428 |
+
Fetches news articles from Google News and returns a list of LangChain Document objects.
|
| 429 |
+
|
| 430 |
+
Args:
|
| 431 |
+
query (str): Search query for Google News.
|
| 432 |
+
max_articles (int): Maximum number of articles to fetch and parse.
|
| 433 |
+
|
| 434 |
+
Returns:
|
| 435 |
+
List[Document]: List of LangChain Document objects containing article content and metadata.
|
| 436 |
+
"""
|
| 437 |
+
logging.info(f"Fetching articles for query: '{query}'")
|
| 438 |
+
googlenews = GoogleNews(lang="en")
|
| 439 |
+
googlenews.search(query)
|
| 440 |
+
articles = googlenews.result()
|
| 441 |
+
|
| 442 |
+
documents = []
|
| 443 |
+
for article in articles[:max_articles]:
|
| 444 |
+
url = article.get("link")
|
| 445 |
+
try:
|
| 446 |
+
news_article = Article(url)
|
| 447 |
+
news_article.download()
|
| 448 |
+
news_article.parse()
|
| 449 |
+
content = news_article.text.strip()
|
| 450 |
+
|
| 451 |
+
if content:
|
| 452 |
+
doc = Document(
|
| 453 |
+
page_content=content,
|
| 454 |
+
metadata={
|
| 455 |
+
"source": "Google News",
|
| 456 |
+
"title": article.get("title", ""),
|
| 457 |
+
"published": article.get("date", ""),
|
| 458 |
+
"link": url,
|
| 459 |
+
}
|
| 460 |
+
)
|
| 461 |
+
documents.append(doc)
|
| 462 |
+
|
| 463 |
+
except Exception as e:
|
| 464 |
+
st.write(f"Failed to process article: {url} — Error: {e}")
|
| 465 |
+
|
| 466 |
+
return documents
|
| 467 |
+
|
| 468 |
+
google_docs = get_google_news_documents("Indian Stock market news NSE, Stocks in Action, Stocks in News", max_articles=10)
|
| 469 |
+
docs.extend(google_docs)
|
| 470 |
llm_prompt = PromptTemplate.from_template(llm_prompt_template)
|
| 471 |
|
| 472 |
llm_chain = LLMChain(llm=llm,prompt=llm_prompt)
|