finance-bot / Home.py
tosanoob's picture
feat: add news report
44f095f
raw
history blame
2.97 kB
# Home.py (Main application homepage)
import streamlit as st
import os
from dotenv import load_dotenv
import google.generativeai as genai
import sys
# Add project root to path for imports
sys.path.append(os.path.dirname(__file__))
# Apply custom styling for Huggingface Space compatibility
try:
from .streamlit.custom import init as apply_custom_styling
apply_custom_styling()
except (ImportError, ModuleNotFoundError):
# Fallback for when running locally or if custom styling fails
pass
# Load environment variables
load_dotenv()
# Initialize session state if needed
if "page_viewed" not in st.session_state:
st.session_state.page_viewed = True
# Page setup - set this consistently across all pages
st.set_page_config(
page_title="AI Financial Dashboard",
page_icon="📊",
layout="wide",
initial_sidebar_state="expanded"
)
# Clear any previous runs to avoid stacking UI elements
if hasattr(st, 'empty'):
placeholder = st.empty()
with placeholder.container():
# Application title
st.title("📊 AI Financial Dashboard v2.0")
# Display application information
st.markdown("""
## Welcome to AI Financial Dashboard
This is an intelligent financial analysis application using AI to help you make smarter investment decisions.
### Main Features:
1. **📰 Daily News Report** - Summary of the latest financial news:
- Compilation of latest financial news
- Categorized by topic
- Daily market updates
 
2. **📄 Stock Analysis Report** - In-depth analysis of a specific stock:
- Comprehensive analysis of a specific stock
- Data collection from multiple sources
- Generate in-depth reports with AI evaluation
 
3. **💬 Stock Chatbot** - Chat with AI Financial Analyst:
- Search for stock information
- View price charts
- Convert currencies
### How to Use:
Use the navigation bar on the left to switch between different features of the application.
""")
# Display API connection status
st.sidebar.title("Connection Status")
# Check API keys
api_keys = {
"GEMINI_API_KEY": os.getenv("GEMINI_API_KEY"),
"ALPHA_VANTAGE_API_KEY": os.getenv("ALPHA_VANTAGE_API_KEY"),
"NEWS_API_KEY": os.getenv("NEWS_API_KEY"),
"MARKETAUX_API_KEY": os.getenv("MARKETAUX_API_KEY"),
"TWELVEDATA_API_KEY": os.getenv("TWELVEDATA_API_KEY")
}
# Display status of each API
for api_name, api_key in api_keys.items():
if api_key:
st.sidebar.success(f"✅ {api_name.split('_KEY')[0].replace('_', ' ')}")
else:
st.sidebar.error(f"❌ {api_name.split('_KEY')[0].replace('_', ' ')}")
# Display project information
st.sidebar.markdown("---")
st.sidebar.markdown("""
### Project Information
- **Version**: 2.0
- **Update**: In-depth analysis report feature
""")