Nush88 commited on
Commit
a7c0b4d
·
verified ·
1 Parent(s): 9fc569e

Upload 9 files

Browse files
Files changed (9) hide show
  1. README.md +70 -12
  2. app.py +94 -0
  3. environment.txt +7 -0
  4. gitattributes +35 -0
  5. index.html +282 -0
  6. models.py +19 -0
  7. requirements.txt +9 -0
  8. script.js +4 -0
  9. styles.css +655 -0
README.md CHANGED
@@ -1,12 +1,70 @@
1
- ---
2
- title: INTEL ONE-API
3
- emoji: 🐠
4
- colorFrom: indigo
5
- colorTo: pink
6
- sdk: streamlit
7
- sdk_version: 1.41.1
8
- app_file: app.py
9
- pinned: false
10
- ---
11
-
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ # 🌍 **Empower_AI: Your Comprehensive Investment Companion** 🌱
4
+
5
+ Empower_AI is designed to break down barriers to stock market investments and promote renewable energy investments in India. With advanced AI analysis, we make complex financial decisions simpler, smarter, and more accessible to all.
6
+
7
+ ## **Empower_AI (Checkout our website)** https://kprit-hackathon-o25h.vercel.app/
8
+
9
+ ## **Empower_AI: powered by intel oneAPI** https://huggingface.co/spaces/muskangoyal06/Investo_AI (Deployed on hugging face)
10
+
11
+ ## **The Problem We're Solving**
12
+
13
+ India has a low participation rate in stock market investments, with only 3% of the population involved, far behind countries like the USA and China.
14
+ This is due to:
15
+
16
+ - Perceived complexity of stock markets.
17
+ - Limited awareness of investment options.
18
+ - Apprehension towards market volatility.
19
+
20
+ At the same time, India's renewable energy sector is in dire need of more investment to meet environmental and energy demands, but faces challenges such as:
21
+
22
+ - Regulatory uncertainties.
23
+ - Financial constraints.
24
+
25
+ ## **Our Solution & Key Features**
26
+
27
+ ### 🌡 **Sentiment Analysis**
28
+ Empower_AI uses public sentiment to guide investors through market mood shifts that can impact stock prices.
29
+
30
+ ### 📈 **Technical & Fundamental Analysis**
31
+ - **Technical Analysis**: Uses historical data to predict stock price movements.
32
+ - **Fundamental Analysis**: Evaluates revenue, profit, and market capitalization for an informed approach.
33
+
34
+ ### 📊 **Recommendation & Data Visualization**
35
+ Provides clear buy, sell, or hold recommendations, visualized for easy decision-making.
36
+
37
+
38
+ ## **Why Choose Empower_AI?**
39
+
40
+ ### 🔍 **Simplified Data Analysis**
41
+ We turn complex data into actionable insights. Empower yourself to make informed choices without being bogged down by complicated metrics.
42
+
43
+ ### 🎯 **Accuracy**
44
+ Unlike traditional platforms that rely on a few expert opinions, Empower_AI leverages thousands of datasets to deliver more precise recommendations.
45
+
46
+ ### 🌱 **Recognizing the Unrecognized**
47
+ We specialize in uncovering hidden opportunities in renewable energy stocks, identifying promising investments that others might overlook.
48
+
49
+ ## **Tech Stack**
50
+ - **Intel OneAPI AI Analytics Toolkit**: Optimizes machine learning and numerical computations, especially for large datasets and performance-intensive tasks like technical analysis.
51
+ - **One DAAL**: intel data analytics library for analysis of stocks
52
+
53
+ - **Python**: Core programming language used to build the entire backend logic and data handling of the web app.
54
+
55
+ - **Streamlit**: Provides the interactive and user-friendly interface, enabling the creation of a web app dashboard for stock analysis.
56
+
57
+ - **Yahoo Finance API**: Fetches real-time stock market data, such as price history, fundamental data (like P/E ratio, earnings), and other key metrics for analysis.
58
+
59
+ - **Transformers (Hugging Face)**: Powers the app's natural language processing tasks, enabling advanced models to assist with sentiment analysis if needed.
60
+
61
+ - **Pandas**: Used for handling and manipulating stock data, providing efficient ways to clean, analyze, and visualize data.
62
+
63
+ - **NumPy**: Supports mathematical operations, including array manipulation and numerical analysis for technical stock metrics.
64
+
65
+ - **Torch (PyTorch)**: Deep learning framework used for complex machine learning models, allowing for predictions and more advanced computations.
66
+
67
+ - **virtualenv**: Isolates the Python environment, ensuring that all dependencies and packages are managed cleanly, avoiding conflicts.
68
+
69
+
70
+
app.py ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import yfinance as yf
3
+ import requests
4
+ from googleapiclient.discovery import build
5
+ from transformers import pipeline
6
+ import numpy as np
7
+
8
+ # YouTube API setup
9
+ def youtube_api_setup():
10
+ api_key = 'AIzaSyB-pW8FME-a7KMRqwEeQJStTxDPqvQNMm0' # Replace with your YouTube API key
11
+ youtube = build('youtube', 'v3', developerKey=api_key)
12
+ return youtube
13
+
14
+ # Fetch YouTube sentiment
15
+ def fetch_youtube_sentiment(symbol, youtube, sentiment_model):
16
+ search_response = youtube.search().list(q=symbol, part='snippet', maxResults=10).execute()
17
+ video_ids = [item['id']['videoId'] for item in search_response['items'] if 'videoId' in item['id']]
18
+
19
+ comments = []
20
+ for video_id in video_ids:
21
+ comment_response = youtube.commentThreads().list(part='snippet', videoId=video_id, maxResults=50).execute()
22
+ for comment in comment_response['items']:
23
+ comment_text = comment['snippet']['topLevelComment']['snippet']['textOriginal']
24
+ comments.append(comment_text)
25
+
26
+ sentiments = sentiment_model(comments)
27
+ sentiment_scores = [s['label'] for s in sentiments]
28
+ positive = sentiment_scores.count('POSITIVE')
29
+ negative = sentiment_scores.count('NEGATIVE')
30
+ return positive, negative
31
+
32
+ # Moving Average (technical analysis)
33
+ def calculate_moving_average(stock_data, window_size):
34
+ prices = stock_data['Close'].to_numpy()
35
+ moving_avg = np.convolve(prices, np.ones(window_size)/window_size, mode='valid')
36
+ return moving_avg
37
+
38
+ # Fetch stock data using Yahoo Finance
39
+ def fetch_stock_data(symbol):
40
+ stock = yf.Ticker(symbol)
41
+ stock_data = stock.history(period="1y")
42
+ return stock_data
43
+
44
+ # Main app
45
+ def main():
46
+ st.title("Empower_AI: powered by intel ONEapi")
47
+
48
+ # Input for stock symbol
49
+ stock_symbol = st.text_input("Enter Stock Symbol (e.g., AAPL, TSLA):", "AAPL")
50
+
51
+ if st.button("Analyze"):
52
+ # Fetch stock data
53
+ stock_data = fetch_stock_data(stock_symbol)
54
+
55
+ # Display stock data overview
56
+ st.subheader(f"Stock Overview - {stock_symbol}")
57
+ st.write(stock_data.tail())
58
+
59
+ # Sentiment analysis
60
+ sentiment_model = pipeline("sentiment-analysis")
61
+
62
+ # YouTube Sentiment
63
+ st.subheader("YouTube Sentiment Analysis")
64
+ youtube = youtube_api_setup()
65
+ positive_youtube, negative_youtube = fetch_youtube_sentiment(stock_symbol, youtube, sentiment_model)
66
+ st.write(f"Positive Comments: {positive_youtube}, Negative Comments: {negative_youtube}")
67
+
68
+ # Technical analysis (Moving Average)
69
+ st.subheader("Technical Analysis (Moving Average)")
70
+ window_size = st.slider("Select Moving Average Window Size:", 5, 100, 20)
71
+ moving_avg = calculate_moving_average(stock_data, window_size)
72
+ st.line_chart(moving_avg)
73
+
74
+ # Fundamental analysis
75
+ st.subheader("Fundamental Analysis")
76
+ st.write("Market Cap:", stock_data['Close'].iloc[-1] * stock_data['Volume'].mean())
77
+ st.write("Price-to-Earnings Ratio (P/E):", stock_data['Close'].iloc[-1] / (stock_data['Close'].mean()))
78
+
79
+ # Recommendation based on sentiment analysis
80
+ st.subheader("Stock Recommendation")
81
+ total_positive = positive_youtube
82
+ total_negative = negative_youtube
83
+ if total_positive > total_negative:
84
+ st.write(f"Recommendation: **BUY** {stock_symbol}")
85
+ elif total_negative > total_positive:
86
+ st.write(f"Recommendation: **SELL** {stock_symbol}")
87
+ else:
88
+ st.write(f"Recommendation: **HOLD** {stock_symbol}")
89
+
90
+ if __name__ == "__main__":
91
+ main()
92
+
93
+
94
+
environment.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ python --version
2
+ pip install virtualenv
3
+ cd path/to/your/project
4
+ virtualenv venv
5
+ venv\Scripts\activate
6
+ pip install -r requirements.txt
7
+
gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
index.html ADDED
@@ -0,0 +1,282 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>EmpowerAI</title>
8
+ <link rel="stylesheet" href="styles.css">
9
+ <link rel="preconnect" href="https://fonts.googleapis.com">
10
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11
+ <link href="https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500&display=swap"
12
+ rel="stylesheet">
13
+ <link href="https://cdn.jsdelivr.net/npm/remixicon@4.3.0/fonts/remixicon.css" rel="stylesheet" />
14
+ </head>
15
+
16
+ <body>
17
+ <div class="main">
18
+ <div class="header">
19
+ <nav>
20
+ <a href="#" class="logo">EmpowerAI.</a>
21
+ <ul>
22
+ <li>Home</li>
23
+ <li>Services</li>
24
+ <li>About</li>
25
+ <li>What's new?</li>
26
+ </ul>
27
+ <div class="btns">
28
+ <button class="navBtn" id="exploreBtn">Login</button>
29
+ <button class="navBtn" id="exploreBtn">Sign up</button>
30
+ </div>
31
+
32
+
33
+ </nav>
34
+ </div>
35
+ <div class="page1">
36
+ <div class="content1">
37
+ <div class="left1">
38
+ <div>
39
+ <h1><span class="secondSpan">Unlocking investments</span><br><span class="firstSpan">to the
40
+ people</span><br><span class="firstSpan">for the people</span><br><span
41
+ class="firstSpan">by the people</span><br></h1>
42
+ </div>
43
+
44
+ <div class="line"></div>
45
+
46
+ <div class="imgCircles">
47
+ <div class="img">
48
+ <img src="https://images.unsplash.com/photo-1534528741775-53994a69daeb?q=80&w=1364&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
49
+ alt="">
50
+ </div>
51
+ <div class="img over-first">
52
+ <img src="https://images.unsplash.com/photo-1506794778202-cad84cf45f1d?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Nnx8cG9ydHJhaXR8ZW58MHx8MHx8fDA%3D"
53
+ alt="">
54
+ </div>
55
+ <div class="img over-second">
56
+ <img src="https://images.unsplash.com/photo-1544005313-94ddf0286df2?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8NHx8cG9ydHJhaXR8ZW58MHx8MHx8fDA%3D"
57
+ alt="">
58
+ </div>
59
+ <div class="img over-third">
60
+ <img src="https://plus.unsplash.com/premium_photo-1664298528358-790433ba0815?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8OXx8cG9ydHJhaXR8ZW58MHx8MHx8fDA%3D"
61
+ alt="">
62
+ </div>
63
+ <div class="img over-fourth">
64
+ <img src="https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8MTZ8fHBvcnRyYWl0fGVufDB8fDB8fHww"
65
+ alt="">
66
+ </div>
67
+ </div>
68
+
69
+ <div class="line-btm"></div>
70
+
71
+ <div class="link">
72
+ <div class="circle"></div>
73
+ <div class="link-icon">
74
+ <i class="ri-arrow-right-up-line"></i>
75
+ </div>
76
+ <div class="text1">
77
+ <p>Enhance financial literacy and economic growth through greater stock market
78
+ participation, and accelerate India's transition to sustainable energy, ensuring
79
+ long-term environmental and economic stability.</p>
80
+ </div>
81
+ </div>
82
+ </div>
83
+ <div class="right1">
84
+ <img src="images/demo.png" alt="">
85
+ </div>
86
+ </div>
87
+ </div>
88
+ <div class="page2">
89
+ <div class="content2">
90
+ <div class="left2">
91
+ <img src="images/graph_colors.jpg" alt="">
92
+ </div>
93
+ <div class="right2">
94
+ <div class="text2">
95
+ <h1><span class="secondSpan">Why</span> <span class="firstSpan">choose</span> <span
96
+ class="thirdSpan">us?</span></h1>
97
+ <p>Enhance financial literacy and economic growth through greater stock market participation,
98
+ and accelerate India's transition.</p>
99
+ <div class="first-row2">
100
+ <div class="choose-card">
101
+ <div class="link-icon">
102
+ <i class="ri-arrow-right-up-line"></i>
103
+ <h4>Simplified analysis of data</h4>
104
+ </div>
105
+ </div>
106
+ <div class="choose-card">
107
+ <div class="link-icon">
108
+ <i class="ri-arrow-right-up-line"></i>
109
+ <h4>Accuracy</h4>
110
+
111
+ </div>
112
+ </div>
113
+
114
+ <div class="choose-card">
115
+ <div class="link-icon">
116
+ <i class="ri-arrow-right-up-line"></i>
117
+ <h4>Recognizing the unrecognized</h4>
118
+ </div>
119
+ </div>
120
+ </div>
121
+ </div>
122
+ </div>
123
+ </div>
124
+ </div>
125
+ <div class="page3">
126
+ <div class="content3">
127
+ <div class="text3">
128
+ <h1><span class="secondSpan">Explore</span> <span class="firstSpan">the</span> <span
129
+ class="thirdSpan">future</span> <span class="secondSpan">of</span> <span
130
+ class="firstSpan">stocks</span> </h1>
131
+ <p>Enhance financial literacy and economic growth through greater stock market participation, and
132
+ accelerate India's transition to sustainable energy, ensuring long-term environmental and
133
+ economic stability.</p>
134
+ </div>
135
+ <div class="slide-cards">
136
+ <div class="first-row">
137
+ <div class="card">
138
+ <img src="images/healthcare.jpg" alt="">
139
+ <div class="card-hover">
140
+ <h2>Healthcare</h2>
141
+ <a href="healthcare/healthcare.html" target="_blank" class="knowMoreBtn">Know More</a>
142
+ </div>
143
+ </div>
144
+ <div class="card">
145
+ <img src="images/pollutionControl.jpg" alt="">
146
+ <div class="card-hover">
147
+ <h2>Pollution Control</h2>
148
+ <a href="pollutionControl/pollutionControl.html" target="_blank"
149
+ class="knowMoreBtn">Know More</a>
150
+ </div>
151
+ </div>
152
+ <div class="card">
153
+ <img src="images/privateSector.jpg" alt="">
154
+ <div class="card-hover">
155
+ <h2>Private Sector</h2>
156
+ <a href="privateSector/privateSector.html" target="_blank" class="knowMoreBtn">Knows
157
+ More</a>
158
+ </div>
159
+ </div>
160
+ </div>
161
+ <div class="second-row">
162
+ <div class="card">
163
+ <img src="images/recycle.jpg" alt="">
164
+ <div class="card-hover">
165
+ <h2>Recycling</h2>
166
+ <a href="recycling/recycling.html" target="_blank" class="knowMoreBtn">Know More</a>
167
+ </div>
168
+ </div>
169
+ <div class="card">
170
+ <img src="images/renewable-energy.jpg" alt="">
171
+ <div class="card-hover">
172
+ <h2>Renewable Energy</h2>
173
+ <a href="renewableEnergy/renewableEnergy.html" target="_blank" class="knowMoreBtn">Know
174
+ More</a>
175
+ </div>
176
+ </div>
177
+ <div class="card">
178
+ <img src="images/farming.jpg" alt="">
179
+ <div class="card-hover">
180
+ <h2>Farming</h2>
181
+ <a href="farmer/farming.html" target="_blank" class="knowMoreBtn">Know More</a>
182
+ </div>
183
+ </div>
184
+ </div>
185
+ </div>
186
+ </div>
187
+ </div>
188
+ <div class="page4">
189
+ <div class="btnContainer1">
190
+ <p>Lorem ipsum dolor sit amet.</p>
191
+ <div class="tryBtn">
192
+ <a href="https://partyrock.aws/u/muskangoyal/cp2TNnD6I/Empower-AI%3A-Your-Comprehensive-Investment-Companion"
193
+ target="_blank" class="tryItNow">Try it Now</a>
194
+ </div>
195
+ </div>
196
+ <div class="btnContainer2">
197
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi, praesentium.</p>
198
+ <div class="tryBtn">
199
+ <a href="https://huggingface.co/spaces/muskangoyal06/Investo_AI" target="_blank"
200
+ class="tryItNow">Try it Now</a>
201
+ </div>
202
+ </div>
203
+
204
+ </div>
205
+
206
+ <footer>
207
+ <div class="footContent">
208
+ <div class="logo_info">
209
+ <a href="#" class="logo">EmpowerAI.</a>
210
+ <p>Transforming the investment <br>landscape to the people</p>
211
+ <div class="socialLinks">
212
+ <div class="outerCircle">
213
+ <div class="link-icon">
214
+ <i class="ri-facebook-circle-line"></i>
215
+ </div>
216
+ </div>
217
+ <div class="outerCircle">
218
+ <div class="link-icon">
219
+ <i class="ri-twitter-x-line"></i>
220
+ </div>
221
+ </div>
222
+ <div class="outerCircle">
223
+ <div class="link-icon">
224
+ <i class="ri-instagram-line"></i>
225
+ </div>
226
+ </div>
227
+ <div class="outerCircle">
228
+ <div class="link-icon">
229
+ <i class="ri-linkedin-fill"></i>
230
+ </div>
231
+ </div>
232
+ </div>
233
+ <p>© 2024 EmpowerAI.</p>
234
+ </div>
235
+ <div class="info">
236
+ <div class="col1">
237
+ <h2>Products</h2>
238
+ <ul>
239
+ <li>Rainbow Wallet</li>
240
+ <li>IRISplorer</li>
241
+ <li>Endpoints & SDKs</li>
242
+ <li>CLI Client</li>
243
+ </ul>
244
+ </div>
245
+ <div class="col2">
246
+ <h2>Information</h2>
247
+ <ul>
248
+ <li>Market Explore</li>
249
+ <li>Ready Token</li>
250
+ <li>Main Option</li>
251
+ <li>File Checking</li>
252
+ </ul>
253
+ </div>
254
+ <div class="col3">
255
+ <h2>Resources</h2>
256
+ <ul>
257
+ <li>FAQ</li>
258
+ <li>Blog</li>
259
+ <li>Docs</li>
260
+ <li>Press Kit</li>
261
+ </ul>
262
+ </div>
263
+ </div>
264
+ <div class="news-info">
265
+ <h2>Newsletter</h2>
266
+ <div class="inputSearch">
267
+ <input type="email" placeholder="Enter your email">
268
+ <button>Subscribe</button>
269
+ </div>
270
+ <p>Transforming the investment<br>landscape to the people</p>
271
+ </div>
272
+ </div>
273
+ </footer>
274
+ </div>
275
+
276
+
277
+ <script src="script.js"></script>
278
+ </div>
279
+
280
+ </body>
281
+
282
+ </html>
models.py ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from transformers import pipeline
3
+
4
+ model_id = "meta-llama/Llama-3.2-3B-Instruct"
5
+ pipe = pipeline(
6
+ "text-generation",
7
+ model=model_id,
8
+ torch_dtype=torch.bfloat16,
9
+ device_map="auto",
10
+ )
11
+ messages = [
12
+ {"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
13
+ {"role": "user", "content": "Who are you?"},
14
+ ]
15
+ outputs = pipe(
16
+ messages,
17
+ max_new_tokens=256,
18
+ )
19
+ print(outputs[0]["generated_text"][-1])
requirements.txt ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ streamlit==1.26.0
2
+ transformers==4.33.2
3
+ torch==2.0.1
4
+ google-api-python-client==2.93.0
5
+ yfinance==0.2.30
6
+ requests==2.31.0
7
+ numpy==1.24.4
8
+
9
+
script.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ var tryItNow = document.getElementById("tryItNow");
2
+ tryItNow.onclick(() => {
3
+ windows.open("https://partyrock.aws/u/muskangoyal/cp2TNnD6I/Empower-AI%3A-Your-Comprehensive-Investment-Companion", "_blank");
4
+ })
styles.css ADDED
@@ -0,0 +1,655 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ :root {
2
+ --greenyellow: #d3ff5c;
3
+ --black: rgb(32, 36, 37);
4
+ --whitesmoke: rgb(241, 242, 243);
5
+ --buttonclr: rgb(21, 26, 34);
6
+ --textfade: rgb(201, 203, 205);
7
+ --body: rgb(9, 11, 15);
8
+ --navfont: rgb(177, 181, 185);
9
+ }
10
+
11
+ * {
12
+ margin: 0;
13
+ padding: 0;
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ html,
18
+ body,
19
+ .main {
20
+ height: 100%;
21
+ width: 100%;
22
+ background-color: var(--body);
23
+ font-family: "DM Mono", monospace;
24
+ font-weight: 300;
25
+ font-style: normal;
26
+ }
27
+
28
+ nav {
29
+ padding: 0px 120px 0px 120px;
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: space-between;
33
+ height: 90px;
34
+ width: 100%;
35
+ }
36
+
37
+ .logo {
38
+ color: var(--greenyellow);
39
+ text-decoration: none;
40
+ font-size: 1.6em;
41
+ font-weight: 450;
42
+ letter-spacing: 0.1px;
43
+ }
44
+
45
+ .header nav ul {
46
+ list-style-type: none;
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ margin-left: 140px;
51
+ }
52
+
53
+ nav ul li {
54
+ margin-right: 40px;
55
+ color: var(--navfont);
56
+ font-size: 16px;
57
+ }
58
+
59
+ .btns {
60
+ display: flex;
61
+ align-items: center;
62
+ justify-content: flex-end;
63
+ gap: 10px;
64
+ }
65
+
66
+ .navBtn {
67
+ background-color: var(--greenyellow);
68
+ color: var(--navBtn);
69
+ width: 90px;
70
+ height: 40px;
71
+ display: flex;
72
+ align-items: center;
73
+ justify-content: center;
74
+ font-size: 1.2rem;
75
+ letter-spacing: -1px;
76
+ font-weight: 500;
77
+ border-radius: 10px;
78
+ border: none;
79
+ cursor: pointer;
80
+ }
81
+
82
+ .navBtn:hover {
83
+ background-color: var(--black);
84
+ color: var(--greenyellow);
85
+ }
86
+
87
+ .page1 {
88
+ width: 100%;
89
+ height: calc(100% - 90px);
90
+ }
91
+
92
+ .content1 {
93
+ padding: 60px 50px 20px 90px;
94
+ display: flex;
95
+ align-items: center;
96
+ }
97
+
98
+ .left1 h3 {
99
+ font-size: 1.3rem;
100
+ color: rgb(200, 202, 204);
101
+ margin-bottom: 30px;
102
+ width: 70%;
103
+ }
104
+
105
+ .left1 h1 {
106
+ font-size: 3rem;
107
+ line-height: 55px;
108
+ }
109
+
110
+ .left1 h1 .secondSpan {
111
+ background: linear-gradient(to right, rgb(229, 231, 232), rgb(80, 82, 86));
112
+ -webkit-background-clip: text;
113
+ -webkit-text-fill-color: transparent;
114
+ width: fit-content;
115
+ }
116
+
117
+ .left1 h1 .firstSpan {
118
+ color: var(--greenyellow);
119
+ }
120
+
121
+ div.line {
122
+ height: 1px;
123
+ width: 600px;
124
+ background-color: var(--navfont);
125
+ margin-top: 20px;
126
+ }
127
+
128
+ .imgCircles {
129
+ display: flex;
130
+ align-items: center;
131
+ justify-content: flex-start;
132
+ width: 100%;
133
+ height: 70px;
134
+ margin-top: 8px;
135
+ }
136
+
137
+ .img {
138
+ display: flex;
139
+ align-items: center;
140
+ justify-content: flex-start;
141
+ border-radius: 50%;
142
+ height: 70px;
143
+ width: 70px;
144
+ position: relative;
145
+ }
146
+
147
+ .over-first {
148
+ z-index: 1;
149
+ position: absolute;
150
+ left: 10%;
151
+ }
152
+
153
+ .over-second {
154
+ z-index: 1;
155
+ position: absolute;
156
+ left: 13.2%;
157
+ }
158
+
159
+ .over-third {
160
+ z-index: 1;
161
+ position: absolute;
162
+ left: 16.5%;
163
+ }
164
+
165
+ .over-fourth {
166
+ z-index: 1;
167
+ position: absolute;
168
+ left: 19.7%;
169
+ }
170
+
171
+ .img img {
172
+ width: 65px;
173
+ height: 65px;
174
+ object-fit: cover;
175
+ border-radius: 50%;
176
+ padding: 2px;
177
+ }
178
+
179
+ div.line-btm {
180
+ height: 1px;
181
+ width: 600px;
182
+ background-color: var(--navfont);
183
+ margin-top: 11px;
184
+ }
185
+
186
+ .link {
187
+ display: flex;
188
+ align-items: center;
189
+ justify-content: flex-start;
190
+ width: 100%;
191
+ height: 70px;
192
+ margin-top: 8px;
193
+ position: relative;
194
+ }
195
+
196
+ .link .circle {
197
+ border-radius: 50%;
198
+ height: 60px;
199
+ width: 60px;
200
+ border: 2px solid var(--greenyellow);
201
+ }
202
+
203
+ .link .link-icon {
204
+ border-radius: 50%;
205
+ height: 60px;
206
+ width: 60px;
207
+ background-color: var(--greenyellow);
208
+ position: absolute;
209
+ left: 5%;
210
+ z-index: 1;
211
+ display: flex;
212
+ align-items: center;
213
+ justify-content: center;
214
+ }
215
+
216
+ .link-icon i {
217
+ font-size: 2rem;
218
+ font-weight: 200;
219
+ cursor: pointer;
220
+ }
221
+
222
+ .link-icon h4 {
223
+ color: var(--navfont);
224
+ font-size: 1.4rem;
225
+ margin-left: 240px;
226
+ margin-top: 50px;
227
+ width: fit-content;
228
+ }
229
+
230
+ .link .text1 {
231
+ margin-left: 80px;
232
+ font-size: 0.8rem;
233
+ color: var(--navfont);
234
+ width: 500px;
235
+ }
236
+
237
+ .right1 {
238
+ width: 40%;
239
+ height: calc(100% - 90px);
240
+ margin-left: 90px;
241
+ }
242
+
243
+ .right1 img {
244
+ width: 100%;
245
+ height: fit-content;
246
+ }
247
+
248
+ .page2 {
249
+ width: 100%;
250
+ height: 100%;
251
+ }
252
+
253
+ .content2 {
254
+ width: 100%;
255
+ height: 100%;
256
+ display: flex;
257
+ justify-content: space-evenly;
258
+ align-items: center;
259
+ }
260
+
261
+ .left2 {
262
+ width: 50%;
263
+ margin-left: 50px;
264
+ margin-right: 30px;
265
+ }
266
+
267
+ .left2 img {
268
+ width: 100%;
269
+ height: fit-content;
270
+ border-radius: 20px;
271
+ }
272
+
273
+ .right2{
274
+ width: 50%;
275
+ }
276
+
277
+ .text2 h1 {
278
+ font-size: 3rem;
279
+ }
280
+
281
+ .text2 p {
282
+ color: var(--navfont);
283
+ padding-left: 20px;
284
+ border-left: 4px solid #d3ff5c;
285
+ }
286
+
287
+ .first-row2 {
288
+ display: flex;
289
+ align-items: center;
290
+ justify-content: center;
291
+ flex-direction: column;
292
+ margin-top: 15px;
293
+ margin-left: -20px;
294
+ }
295
+
296
+ .choose-card {
297
+ width: 50%;
298
+ height: 120px;
299
+ /* background-color: #fff; */
300
+ margin-right: 10px;
301
+ margin-bottom: 10px;
302
+ position: relative;
303
+ border-radius: 10px;
304
+ border: 1px solid var(--greenyellow);
305
+ padding: 20px;
306
+ }
307
+
308
+ .choose-card .link-icon {
309
+ border-radius: 50%;
310
+ height: 40px;
311
+ width: 40px;
312
+ background-color: var(--greenyellow);
313
+ position: absolute;
314
+ top: 0;
315
+ left: 0;
316
+ display: flex;
317
+ align-items: center;
318
+ justify-content: center;
319
+ margin-top: 10px;
320
+ margin-left: 10px;
321
+ }
322
+
323
+ .choose-card .link-icon i {
324
+ position: absolute;
325
+ left: 12%;
326
+ top: 10%;
327
+ }
328
+
329
+
330
+
331
+ .page3 {
332
+ width: 100%;
333
+ height: 100%;
334
+ }
335
+
336
+ .content3 {
337
+ padding: 40px 50px 20px 90px;
338
+ display: flex;
339
+ align-items: center;
340
+ justify-content: center;
341
+ flex-direction: column;
342
+ }
343
+
344
+ .text3 {
345
+ text-align: center;
346
+ }
347
+
348
+ .firstSpan {
349
+ color: var(--greenyellow);
350
+ }
351
+
352
+ .secondSpan {
353
+ background: linear-gradient(to right, rgb(229, 231, 232), rgb(80, 82, 86));
354
+ -webkit-background-clip: text;
355
+ -webkit-text-fill-color: transparent;
356
+ width: fit-content;
357
+ }
358
+ .thirdSpan {
359
+ background: linear-gradient(to right, rgb(80, 82, 86), rgb(229, 231, 232));
360
+ -webkit-background-clip: text;
361
+ -webkit-text-fill-color: transparent;
362
+ width: fit-content;
363
+ }
364
+
365
+ .text3 p {
366
+ color: var(--navfont);
367
+ width: 550px;
368
+ margin-top: 15px;
369
+ }
370
+
371
+ .first-row {
372
+ display: flex;
373
+ align-items: center;
374
+ justify-content: center;
375
+ margin-top: 15px;
376
+ }
377
+
378
+ .second-row {
379
+ display: flex;
380
+ align-items: center;
381
+ justify-content: center;
382
+ }
383
+
384
+
385
+ .card {
386
+ width: 280px;
387
+ /* Width of the card */
388
+ height: 180px;
389
+ /* Height of the card */
390
+ display: flex;
391
+ justify-content: center;
392
+ align-items: center;
393
+ margin: 10px;
394
+ /* Margin around each card */
395
+ border-radius: 20px;
396
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
397
+ background: linear-gradient(45 deg, rgb(34,38,39), rgb(14,15,19));
398
+ margin-right: 30px;
399
+ margin-bottom: 30px;
400
+ overflow: hidden;
401
+ position: relative;
402
+ }
403
+
404
+ .card img {
405
+ width: 100%;
406
+ height: 100%;
407
+ object-fit: cover;
408
+ border-radius: 10px;
409
+ }
410
+
411
+ .card-hover {
412
+ position: absolute;
413
+ top: 0;
414
+ right: -100%;
415
+ width: 100%;
416
+ height: 100%;
417
+ background-color: #d4ff5c4f;
418
+ border-radius: 10px;
419
+ backdrop-filter: blur(2px);
420
+ display: flex;
421
+ align-items: center;
422
+ justify-content: center;
423
+ flex-direction: column;
424
+ color: rgb(0, 0, 0);
425
+ transition: 1s;
426
+ }
427
+
428
+ .knowMoreBtn {
429
+ color: var(--greenyellow);
430
+ background-color: black;
431
+ width: 110px;
432
+ height: 32px;
433
+ display: flex;
434
+ align-items: center;
435
+ justify-content: center;
436
+ font-size: 1rem;
437
+ letter-spacing: -1px;
438
+ font-weight: 600;
439
+ border-radius: 8px;
440
+ border: none;
441
+ cursor: pointer;
442
+ margin-top: 12px;
443
+ text-decoration: none;
444
+ }
445
+
446
+ .card:hover .card-hover {
447
+ right: 0;
448
+ }
449
+
450
+ .page4 {
451
+ width: 100%;
452
+ height: 70%;
453
+ display: flex;
454
+ justify-content: space-evenly;
455
+ align-items: center;
456
+ }
457
+
458
+ .btnContainer1 {
459
+ margin: 0px 70px 0px 70px;
460
+ display: flex;
461
+ align-items: center;
462
+ flex-direction: column;
463
+ justify-content: center;
464
+ width: 600px;
465
+ height: 150px;
466
+ background-color: cornsilk;
467
+ border-radius: 20px;
468
+ }
469
+
470
+ .page4 p {
471
+ margin: 20px 30px 0px 30px;
472
+ }
473
+
474
+ .btnContainer2 {
475
+ margin: 0px 70px 0px 0px;
476
+ display: flex;
477
+ align-items: center;
478
+ flex-direction: column;
479
+ justify-content: center;
480
+ width: 600px;
481
+ height: 150px;
482
+ border-radius: 20px;
483
+ background-color: #fff;
484
+ }
485
+
486
+
487
+ .tryBtn {
488
+ display: flex;
489
+ align-items: center;
490
+ justify-content: center;
491
+ height: 90px;
492
+ width: 100%;
493
+ }
494
+
495
+ .tryItNow {
496
+ background-color: var(--greenyellow);
497
+ color: var(--black);
498
+ width: 140px;
499
+ height: 40px;
500
+ display: flex;
501
+ align-items: center;
502
+ justify-content: center;
503
+ font-size: 1.2rem;
504
+ letter-spacing: 0px;
505
+ font-weight: 500;
506
+ border-radius: 10px;
507
+ border: none;
508
+ cursor: pointer;
509
+ text-decoration: none;
510
+ }
511
+
512
+ footer {
513
+ width: 100%;
514
+ height: calc(70% - 90px);
515
+ border-top: 2px solid var(--greenyellow);
516
+ }
517
+
518
+ .footContent {
519
+ display: flex;
520
+ align-items: center;
521
+ justify-content: space-between;
522
+ padding: 50px;
523
+ }
524
+
525
+ .logo_info {
526
+ display: flex;
527
+ align-items: center;
528
+ justify-content: center;
529
+ flex-direction: column;
530
+ }
531
+
532
+ .logo_info .logo {
533
+ font-size: 1.6rem;
534
+
535
+ }
536
+
537
+ .logo_info p {
538
+ color: var(--navfont);
539
+ font-size: 0.7rem;
540
+ margin-left: 23px;
541
+ margin-top: 10px;
542
+ margin-bottom: 10px;
543
+
544
+ }
545
+
546
+ .socialLinks {
547
+ display: flex;
548
+ align-items: center;
549
+ justify-content: center;
550
+ }
551
+
552
+ .socialLinks .outerCircle {
553
+ width: 30px;
554
+ height: 30px;
555
+ border-radius: 50%;
556
+ background-color: var(--greenyellow);
557
+ margin-top: 5px;
558
+ margin-bottom: 5px;
559
+ margin-right: 10px;
560
+ display: flex;
561
+ align-items: center;
562
+ justify-content: center;
563
+ }
564
+
565
+ .tryIt {
566
+ text-decoration: none;
567
+ font-size: 1.5rem;
568
+ color: var(--greenyellow)
569
+ }
570
+
571
+ .outerCircle .link-icon i {
572
+ font-size: 18px;
573
+ }
574
+
575
+ .info {
576
+ display: flex;
577
+ align-items: center;
578
+ justify-content: center;
579
+ }
580
+
581
+ .info h2 {
582
+ color: white;
583
+ font-size: 1.3rem;
584
+ letter-spacing: 1px;
585
+ }
586
+
587
+ .info li {
588
+ color: var(--navfont);
589
+ font-size: 0.8rem;
590
+ margin-bottom: 17px;
591
+ width: fit-content;
592
+ }
593
+
594
+ .col1 ul, .col2 ul, .col3 ul {
595
+ list-style-type: none;
596
+ }
597
+
598
+ .col1, .col2, .col3 {
599
+ margin: 50px;
600
+ }
601
+
602
+ .col1 h2, .col2 h2, .col3 h2 {
603
+ margin-bottom: 18px;
604
+ }
605
+
606
+ .news-info {
607
+ display: flex;
608
+ align-items: center;
609
+ justify-content: center;
610
+ flex-direction: column;
611
+ margin-bottom: 70px;
612
+ }
613
+
614
+ .news-info h2 {
615
+ color: white;
616
+ font-size: 1.3rem;
617
+ letter-spacing: 1px;
618
+ margin-bottom: 18px;
619
+ }
620
+
621
+ .inputSearch {
622
+ display: flex;
623
+ align-items: center;
624
+ justify-content: flex-start;
625
+ flex-direction: column;
626
+ display: inline-block;
627
+ position: relative;
628
+ }
629
+
630
+ .inputSearch input {
631
+ width: 250px;
632
+ height: 30px;
633
+ border: none;
634
+ background-color: rgb(21, 26, 34);
635
+ padding: 3px;
636
+ }
637
+
638
+ .inputSearch button {
639
+ position: absolute;
640
+ top: 0;
641
+ right: 0;
642
+ border: none;
643
+ background-color: var(--greenyellow);
644
+ cursor: pointer;
645
+ height: 100%;
646
+ width: 30%;
647
+ }
648
+
649
+ .news-info p {
650
+ color: var(--navfont);
651
+ font-size: 0.7rem;
652
+ margin-left: -60px;
653
+ margin-top: 10px;
654
+ margin-bottom: 10px;
655
+ }