Akshayram1 commited on
Commit
dde818b
·
verified ·
1 Parent(s): 75b3cda

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +108 -120
app.py CHANGED
@@ -15,138 +15,126 @@ chat = None
15
 
16
  # Generation configuration and safety settings
17
  generation_config = {
18
- "temperature": 0.9,
19
- "top_p": 0.5,
20
- "top_k": 5,
21
- "max_output_tokens": 1000,
22
  }
23
 
24
  safety_settings = [
25
- {
26
- "category": "HARM_CATEGORY_HARASSMENT",
27
- "threshold": "BLOCK_MEDIUM_AND_ABOVE"
28
- },
29
- {
30
- "category": "HARM_CATEGORY_HATE_SPEECH",
31
- "threshold": "BLOCK_MEDIUM_AND_ABOVE"
32
- },
33
- {
34
- "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
35
- "threshold": "BLOCK_MEDIUM_AND_ABOVE"
36
- },
37
- {
38
- "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
39
- "threshold": "BLOCK_MEDIUM_AND_ABOVE"
40
- },
41
  ]
42
 
43
  # Function to handle text summary requests
44
  def text_summary(text, isNew=False):
45
- global chat
46
-
47
- if isNew or chat is None: # Start a new chat session
48
- model = genai.GenerativeModel(
49
- model_name="gemini-pro",
50
- generation_config=generation_config,
51
- safety_settings=safety_settings
52
- )
53
- chat = model.start_chat()
54
- chat.send_message("""
55
- Act as a financial advisor and generate financial summaries in a structured and tabular format. Follow these guidelines strictly:
56
-
57
- - Start each section with a clear title in <strong> tags.
58
- - For key metrics, use a table with two columns: one for the metric name and one for its value.
59
- - Use bullet points only for listing risks and growth prospects.
60
- - Ensure each section is clearly separated with line breaks.
61
- - Do not use bold or italic formatting (, *), except for the specified HTML tags.
62
-
63
- Example format:
64
-
65
- <strong>Company Overview</strong><br/>
66
- <p>Company Name: {Company Name}</p>
67
- <p>Description: {Company Description}</p>
68
- <br/><br/>
69
-
70
- <strong>Stock Performance</strong><br/>
71
- <p>Apple Inc. (AAPL) is a highly valued stock...</p>
72
- <br/><br/>
73
-
74
- <strong>Key Metrics</strong><br/>
75
- <table>
76
- <tr>
77
- <th>Metric</th>
78
- <th>Value</th>
79
- </tr>
80
- <tr>
81
- <td>Market Capitalization</td>
82
- <td>$2.7 trillion</td>
83
- </tr>
84
- <tr>
85
- <td>Stock Price</td>
86
- <td>$170 per share</td>
87
- </tr>
88
- <tr>
89
- <td>EPS (TTM)</td>
90
- <td>$6.15</td>
91
- </tr>
92
- <tr>
93
- <td>P/E Ratio</td>
94
- <td>24.34</td>
95
- </tr>
96
- </table>
97
- <br/><br/>
98
-
99
- <strong>Growth Prospects</strong><br/>
100
- <ul>
101
- <li>iPhone sales growth in emerging markets.</li>
102
- <li>Expansion of services revenue.</li>
103
- <li>Increased demand for wearable devices.</li>
104
- <li>Development of AR/VR technologies.</li>
105
- </ul>
106
- <br/><br/>
107
-
108
- <strong>Risks</strong><br/>
109
- <ul>
110
- <li>Competition from other technology companies.</li>
111
- <li>Dependence on iPhone sales.</li>
112
- <li>Economic downturns.</li>
113
- <li>Supply chain disruptions and geopolitical risks.</li>
114
- </ul>
115
- <br/><br/>
116
-
117
- <strong>Overall</strong><br/>
118
- <p>Apple Inc. is a financially strong company with a history of innovation...</p>
119
- <br/><br/>
120
- """)
121
-
122
- # Send message and return response
123
- response = chat.send_message(text)
124
- return response.text
125
 
126
  # Streamlit UI
127
  st.title("Financial Summary Chatbot")
128
- st.write("Welcome to the Financial Summary Chatbot! Enter your text below to get a financial summary.")
129
 
130
  # Input area for user text
131
- user_input = st.text_area("Enter your text here:", "")
132
 
133
  # Button to submit the text
134
- if st.button("Get Summary"):
135
- if user_input.strip():
136
- summary = text_summary(user_input, isNew=True) # Start a new session each time
137
- st.write("### Summary:")
138
- st.markdown(summary, unsafe_allow_html=True)
139
- else:
140
- st.warning("Please enter some text to summarize.")
141
-
142
- # Chatbot UI
143
- st.write("### Chatbot")
144
- st.write("Type a message to get a response from the chatbot.")
145
- chat_input = st.text_area("Type a message:", "")
146
  if st.button("Send"):
147
- if chat_input.strip():
148
- response = text_summary(chat_input)
149
- st.write("### Response:")
150
- st.markdown(response, unsafe_allow_html=True)
151
- else:
152
- st.warning("Please enter a message to send.")
 
15
 
16
  # Generation configuration and safety settings
17
  generation_config = {
18
+   "temperature": 0.9,
19
+   "top_p": 0.5,
20
+   "top_k": 5,
21
+   "max_output_tokens": 1000,
22
  }
23
 
24
  safety_settings = [
25
+   {
26
+     "category": "HARM_CATEGORY_HARASSMENT",
27
+     "threshold": "BLOCK_MEDIUM_AND_ABOVE"
28
+   },
29
+   {
30
+     "category": "HARM_CATEGORY_HATE_SPEECH",
31
+     "threshold": "BLOCK_MEDIUM_AND_ABOVE"
32
+   },
33
+   {
34
+     "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
35
+     "threshold": "BLOCK_MEDIUM_AND_ABOVE"
36
+   },
37
+   {
38
+     "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
39
+     "threshold": "BLOCK_MEDIUM_AND_ABOVE"
40
+   },
41
  ]
42
 
43
  # Function to handle text summary requests
44
  def text_summary(text, isNew=False):
45
+   global chat
46
+
47
+   if isNew or chat is None: # Start a new chat session
48
+     model = genai.GenerativeModel(
49
+        model_name="gemini-pro",
50
+        generation_config=generation_config,
51
+        safety_settings=safety_settings
52
+     )
53
+     chat = model.start_chat()
54
+     chat.send_message("""
55
+     Act as a financial advisor and generate financial summaries in a structured and tabular format. Follow these guidelines strictly:
56
+
57
+     - Start each section with a clear title in <strong> tags.
58
+     - For key metrics, use a table with two columns: one for the metric name and one for its value.
59
+     - Use bullet points only for listing risks and growth prospects.
60
+     - Ensure each section is clearly separated with line breaks.
61
+     - Do not use bold or italic formatting (, *), except for the specified HTML tags.
62
+
63
+     Example format:
64
+
65
+     <strong>Company Overview</strong><br/>
66
+     <p>Company Name: {Company Name}</p>
67
+     <p>Description: {Company Description}</p>
68
+     <br/><br/>
69
+
70
+     <strong>Stock Performance</strong><br/>
71
+     <p>Apple Inc. (AAPL) is a highly valued stock...</p>
72
+     <br/><br/>
73
+
74
+     <strong>Key Metrics</strong><br/>
75
+     <table>
76
+        <tr>
77
+           <th>Metric</th>
78
+           <th>Value</th>
79
+        </tr>
80
+        <tr>
81
+           <td>Market Capitalization</td>
82
+           <td>$2.7 trillion</td>
83
+        </tr>
84
+        <tr>
85
+           <td>Stock Price</td>
86
+           <td>$170 per share</td>
87
+        </tr>
88
+        <tr>
89
+           <td>EPS (TTM)</td>
90
+           <td>$6.15</td>
91
+        </tr>
92
+        <tr>
93
+           <td>P/E Ratio</td>
94
+           <td>24.34</td>
95
+        </tr>
96
+     </table>
97
+     <br/><br/>
98
+
99
+     <strong>Growth Prospects</strong><br/>
100
+     <ul>
101
+        <li>iPhone sales growth in emerging markets.</li>
102
+        <li>Expansion of services revenue.</li>
103
+        <li>Increased demand for wearable devices.</li>
104
+        <li>Development of AR/VR technologies.</li>
105
+     </ul>
106
+     <br/><br/>
107
+
108
+     <strong>Risks</strong><br/>
109
+     <ul>
110
+        <li>Competition from other technology companies.</li>
111
+        <li>Dependence on iPhone sales.</li>
112
+        <li>Economic downturns.</li>
113
+        <li>Supply chain disruptions and geopolitical risks.</li>
114
+     </ul>
115
+     <br/><br/>
116
+
117
+     <strong>Overall</strong><br/>
118
+     <p>Apple Inc. is a financially strong company with a history of innovation...</p>
119
+     <br/><br/>
120
+     """)
121
+
122
+   # Send message and return response
123
+   response = chat.send_message(text)
124
+   return response.text
125
 
126
  # Streamlit UI
127
  st.title("Financial Summary Chatbot")
128
+ st.write("Welcome to the Financial Summary Chatbot! Type a message to get a response from the chatbot.")
129
 
130
  # Input area for user text
131
+ chat_input = st.text_area("Type a message:", "")
132
 
133
  # Button to submit the text
 
 
 
 
 
 
 
 
 
 
 
 
134
  if st.button("Send"):
135
+   if chat_input.strip():
136
+     response = text_summary(chat_input)
137
+     st.write("### Response:")
138
+     st.markdown(response, unsafe_allow_html=True)
139
+   else:
140
+     st.warning("Please enter a message to send.")