hertogateis commited on
Commit
0cb6df9
·
verified ·
1 Parent(s): f9bc1b8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +1 -73
app.py CHANGED
@@ -190,76 +190,4 @@ st.success(f"""
190
 
191
 
192
 
193
-
194
-
195
- # Display raw result for debugging purposes
196
- st.markdown("<p style='font-family:sans-serif;font-size: 0.9rem;'> Raw Result: </p>", unsafe_allow_html=True)
197
- st.success(raw_answer)
198
-
199
- # Processing the raw_answer
200
- processed_answer = raw_answer['answer'].replace(';', ' ') # Clean the answer text
201
- row_idx = raw_answer['coordinates'][0][0] # Row index from TAPAS
202
- col_idx = raw_answer['coordinates'][0][1] # Column index from TAPAS
203
- column_name = df.columns[col_idx] # Column name from the DataFrame
204
- row_data = df.iloc[row_idx].to_dict() # Row data corresponding to the row index
205
-
206
- # Handle different types of answers (e.g., 'SUM', 'MAX', 'MIN', 'AVG', etc.)
207
- if 'SUM' in processed_answer:
208
- summary_type = 'sum'
209
- numeric_value = df_numeric[column_name].sum()
210
- elif 'MAX' in processed_answer:
211
- summary_type = 'maximum'
212
- numeric_value = df_numeric[column_name].max()
213
- elif 'MIN' in processed_answer:
214
- summary_type = 'minimum'
215
- numeric_value = df_numeric[column_name].min()
216
- elif 'AVG' in processed_answer or 'AVERAGE' in processed_answer:
217
- summary_type = 'average'
218
- numeric_value = df_numeric[column_name].mean()
219
- elif 'COUNT' in processed_answer:
220
- summary_type = 'count'
221
- numeric_value = df_numeric[column_name].count()
222
- elif 'MEDIAN' in processed_answer:
223
- summary_type = 'median'
224
- numeric_value = df_numeric[column_name].median()
225
- elif 'STD' in processed_answer or 'STANDARD DEVIATION' in processed_answer:
226
- summary_type = 'std_dev'
227
- numeric_value = df_numeric[column_name].std()
228
- else:
229
- summary_type = 'value'
230
- numeric_value = processed_answer # In case of a general answer
231
-
232
- # Build a natural language response based on the aggregation type
233
- if summary_type == 'sum':
234
- natural_language_answer = f"The total {column_name} is {numeric_value}."
235
- elif summary_type == 'maximum':
236
- natural_language_answer = f"The highest {column_name} is {numeric_value}, recorded for '{row_data.get('Name', 'Unknown')}'."
237
- elif summary_type == 'minimum':
238
- natural_language_answer = f"The lowest {column_name} is {numeric_value}, recorded for '{row_data.get('Name', 'Unknown')}'."
239
- elif summary_type == 'average':
240
- natural_language_answer = f"The average {column_name} is {numeric_value}."
241
- elif summary_type == 'count':
242
- natural_language_answer = f"The number of entries in {column_name} is {numeric_value}."
243
- elif summary_type == 'median':
244
- natural_language_answer = f"The median {column_name} is {numeric_value}."
245
- elif summary_type == 'std_dev':
246
- natural_language_answer = f"The standard deviation of {column_name} is {numeric_value}."
247
- else:
248
- natural_language_answer = f"The {column_name} value is {numeric_value} for '{row_data.get('Name', 'Unknown')}'."
249
-
250
- # Display the final natural language answer
251
- st.markdown("<p style='font-family:sans-serif;font-size: 0.9rem;'> Analysis Results: </p>", unsafe_allow_html=True)
252
- st.success(f"""
253
- • Answer: {natural_language_answer}
254
-
255
- Data Location:
256
- • Row: {row_idx + 1}
257
- • Column: {column_name}
258
-
259
- Additional Context:
260
- • Full Row Data: {row_data}
261
- • Query Asked: "{question}"
262
- """)
263
-
264
- except Exception as e:
265
- st.warning("Please retype your question and make sure to use the column name and cell value correctly.")
 
190
 
191
 
192
 
193
+