Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -52,38 +52,66 @@ user_vectorstores = {}
|
|
| 52 |
# Dictionary to store chart data
|
| 53 |
chart_data_store = {}
|
| 54 |
|
| 55 |
-
# Custom CSS for Finance theme with
|
| 56 |
custom_css = """
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
--
|
| 62 |
-
--
|
| 63 |
-
-
|
| 64 |
-
--
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
}
|
| 66 |
-
body { background-color: var(--light-color); font-family: 'IBM Plex Sans', sans-serif; }
|
| 67 |
-
.container { max-width: 1200px !important; margin: 0 auto !important; padding: 10px; }
|
| 68 |
-
.header { background-color: var(--primary-color); padding: 20px 0; margin-bottom: 20px; border-radius: 12px 12px 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
|
| 69 |
-
.header-title { color: var(--light-text); font-size: 1.8rem; font-weight: 700; text-align: center; }
|
| 70 |
-
.header-subtitle { color: var(--light-text); opacity: 0.8; font-size: 1rem; text-align: center; margin-top: 5px; }
|
| 71 |
-
.chat-container { border-radius: 12px !important; box-shadow: 0 4px 6px rgba(0,0,0,0.1) !important; background-color: #FFFFFF !important; border: 1px solid var(--border-color) !important; min-height: 500px; }
|
| 72 |
-
.message-user { background-color: var(--accent-color) !important; color: var(--light-text) !important; border-radius: 18px 18px 4px 18px !important; padding: 12px 16px !important; margin-left: auto !important; max-width: 80% !important; }
|
| 73 |
-
.message-bot { background-color: #F5F7FA !important; color: var(--dark-text) !important; border-radius: 18px 18px 18px 4px !important; padding: 12px 16px !important; margin-right: auto !important; max-width: 80% !important; }
|
| 74 |
-
.input-area { background-color: #FFFFFF !important; border-top: 1px solid var(--border-color) !important; padding: 12px !important; border-radius: 0 0 12px 12px !important; }
|
| 75 |
-
.input-box { border: 1px solid var(--border-color) !important; border-radius: 24px !important; padding: 12px 16px !important; box-shadow: 0 2px 4px rgba(0,0,0,0.05) !important; }
|
| 76 |
-
.send-btn { background-color: var(--accent-color) !important; border-radius: 24px !important; color: var(--light-text) !important; padding: 10px 20px !important; font-weight: 500 !important; }
|
| 77 |
-
.clear-btn { background-color: #F0F0F0 !important; border: 1px solid var(--border-color) !important; border-radius: 24px !important; color: var(--dark-text) !important; padding: 8px 16px !important; font-weight: 500 !important; }
|
| 78 |
-
.pdf-viewer-container { border-radius: 12px !important; box-shadow: 0 4px 6px rgba(0,0,0,0.1) !important; background-color: #FFFFFF !important; border: 1px solid var(--border-color) !important; padding: 20px; }
|
| 79 |
-
.pdf-viewer-image { max-width: 100%; height: auto; border: 1px solid var(--border-color); border-radius: 12px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
|
| 80 |
-
.stats-box { background-color: var(--light-color); padding: 10px; border-radius: 8px; margin-top: 10px; }
|
| 81 |
-
.tool-container { background-color: white; border-radius: 12px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); padding: 15px; margin-bottom: 20px; }
|
| 82 |
-
.tool-title { font-weight: bold; color: var(--primary-color); margin-bottom: 10px; font-size: 1.1rem; }
|
| 83 |
-
.chart-container { height: 400px; width: 100%; border-radius: 8px; overflow: hidden; }
|
| 84 |
-
.toggle-container { display: flex; align-items: center; margin-bottom: 15px; }
|
| 85 |
-
.toggle-label { margin-right: 10px; font-weight: 500; }
|
| 86 |
-
.search-toggle { margin-left: 5px; }
|
| 87 |
"""
|
| 88 |
|
| 89 |
# Function to process PDF files
|
|
@@ -860,6 +888,6 @@ gr.HTML("""
|
|
| 860 |
</div>
|
| 861 |
""")
|
| 862 |
|
| 863 |
-
# Launch the app
|
| 864 |
if __name__ == "__main__":
|
| 865 |
-
demo.launch()
|
|
|
|
| 52 |
# Dictionary to store chart data
|
| 53 |
chart_data_store = {}
|
| 54 |
|
| 55 |
+
# Custom CSS for Finance theme with modern UI enhancements
|
| 56 |
custom_css = """
|
| 57 |
+
@import url('shared-base.css');
|
| 58 |
+
|
| 59 |
+
/* Finance-specific styles */
|
| 60 |
+
.finance-card {
|
| 61 |
+
background: var(--surface-2);
|
| 62 |
+
border: 1px solid var(--border-color);
|
| 63 |
+
border-radius: var(--radius-md);
|
| 64 |
+
padding: var(--spacing-lg);
|
| 65 |
+
margin: var(--spacing-md) 0;
|
| 66 |
+
box-shadow: var(--shadow-md);
|
| 67 |
+
transition: transform 0.3s, box-shadow 0.3s;
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
.finance-card:hover {
|
| 71 |
+
transform: translateY(-5px);
|
| 72 |
+
box-shadow: var(--shadow-lg);
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
.chart-container {
|
| 76 |
+
background: var(--white);
|
| 77 |
+
border-radius: var(--radius-md);
|
| 78 |
+
padding: var(--spacing-md);
|
| 79 |
+
margin: var(--spacing-md) 0;
|
| 80 |
+
box-shadow: var(--shadow-sm);
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
.news-feed {
|
| 84 |
+
max-height: 400px;
|
| 85 |
+
overflow-y: auto;
|
| 86 |
+
padding: var(--spacing-md);
|
| 87 |
+
border: 1px solid var(--border-color);
|
| 88 |
+
border-radius: var(--radius-md);
|
| 89 |
+
background: var(--surface-1);
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
.news-item {
|
| 93 |
+
margin-bottom: var(--spacing-md);
|
| 94 |
+
padding-bottom: var(--spacing-md);
|
| 95 |
+
border-bottom: 1px solid var(--border-color);
|
| 96 |
+
}
|
| 97 |
+
|
| 98 |
+
.news-title {
|
| 99 |
+
font-size: 1.1rem;
|
| 100 |
+
font-weight: 600;
|
| 101 |
+
color: var(--text-color);
|
| 102 |
+
margin-bottom: var(--spacing-sm);
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
.news-summary {
|
| 106 |
+
color: var(--text-color-secondary);
|
| 107 |
+
line-height: 1.6;
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
.sentiment-gauge {
|
| 111 |
+
width: 100%;
|
| 112 |
+
height: 200px;
|
| 113 |
+
margin: var(--spacing-md) 0;
|
| 114 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 115 |
"""
|
| 116 |
|
| 117 |
# Function to process PDF files
|
|
|
|
| 888 |
</div>
|
| 889 |
""")
|
| 890 |
|
| 891 |
+
# Launch the app with modern UI
|
| 892 |
if __name__ == "__main__":
|
| 893 |
+
demo.launch()
|