Ashoka74 commited on
Commit
4bfeafe
·
verified ·
1 Parent(s): 70f1c51

Add JSON modif on unparsed files

Browse files
Files changed (1) hide show
  1. app.py +43 -2
app.py CHANGED
@@ -1268,12 +1268,53 @@ def main():
1268
  st.dataframe(filtered_data)
1269
  except Exception as e:
1270
  st.error(f"An error occurred while reading the file: {e}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1271
 
1272
  # Parsed data
1273
  parsed_tickbox = st.checkbox('Parsed Data')
1274
  if parsed_tickbox:
1275
- parsed_responses = filter_dataframe(parsed)
1276
- st.session_state['parsed_responses'] = parsed_responses
 
 
 
 
1277
  col1, col2 = st.columns(2)
1278
  st.dataframe(parsed_responses)
1279
  with col1:
 
1268
  st.dataframe(filtered_data)
1269
  except Exception as e:
1270
  st.error(f"An error occurred while reading the file: {e}")
1271
+ modify_json = st.checkbox('Custom JSON')
1272
+ API_KEY = st.text_input('OpenAI API Key', API_KEY, type='password', help="Enter your OpenAI API key")
1273
+ if not API_KEY:
1274
+ st.warning("Please enter your API key to proceed.")
1275
+ if modify_json:
1276
+ FORMAT_LONG = st.text_area('Custom JSON', FORMAT_LONG, height=500)
1277
+
1278
+ # If the DataFrame is successfully created, allow the user to select a column
1279
+ col_unparsed = st.selectbox("Select column corresponding to text", data.columns)
1280
+
1281
+ if st.button("Process Column"):
1282
+ selected_column_data = filtered_data[col_unparsed].tolist()
1283
+ st.write("Column Data:", selected_column_data)
1284
+ st.session_state.result = selected_column_data
1285
+ if 'parsed_responses' not in st.session_state: # Button to trigger parsing of descriptions
1286
+ with st.status(f"Parsing..", expanded=True) as status:
1287
+ try:
1288
+ st.write("Parsing descriptions...")
1289
+ parser = UAPParser(api_key=API_KEY, model='gpt-3.5-turbo-0125', col=st.session_state.result)
1290
+ #descriptions = unparsed['description'].tolist()
1291
+ descriptions = st.session_state.result
1292
+ format_long = FORMAT_LONG
1293
+ parser.process_descriptions(descriptions, format_long)
1294
+ parsed_responses = parser.parse_responses()
1295
+ try:
1296
+ responses_df = parser.responses_to_df('sightingDetails', parsed_responses)
1297
+ except Exception as e:
1298
+ status.update(label=f"Error parsing: {e}", state="error")
1299
+ responses_df = parser.responses_to_df(parsed_responses)
1300
+ st.dataframe(responses_df)
1301
+ st.session_state['parsed_responses'] = responses_df.copy()
1302
+ status.update(label="Parsing complete", expanded=False)
1303
+ except Exception as e:
1304
+ status.update(label=f"Parsing failed : {e}", state="error")
1305
+ else:
1306
+ # Prompt the user to upload a file if they haven't already
1307
+ st.warning("Please upload a file to proceed.")
1308
 
1309
  # Parsed data
1310
  parsed_tickbox = st.checkbox('Parsed Data')
1311
  if parsed_tickbox:
1312
+ if responses_df:
1313
+ parsed_responses = filter_dataframe(responses_df)
1314
+ st.session_state['parsed_responses'] = parsed_responses
1315
+ else:
1316
+ parsed_responses = filter_dataframe(parsed)
1317
+ st.session_state['parsed_responses'] = parsed_responses
1318
  col1, col2 = st.columns(2)
1319
  st.dataframe(parsed_responses)
1320
  with col1: