awacke1 commited on
Commit
0876d8e
·
verified ·
1 Parent(s): 3434741

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -32
app.py CHANGED
@@ -307,6 +307,45 @@ def process_video(user_name, video_input, user_prompt):
307
  save_data()
308
  return video_response
309
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
310
  # Main function for each column
311
  def main_column(column_name):
312
  st.markdown(f"##### {column_name}")
@@ -316,40 +355,20 @@ def main_column(column_name):
316
  option = st.selectbox(f"Select an option for {column_name}", ("Text", "Image", "Audio", "Video"), key=f"{column_name}_option")
317
 
318
  if option == "Text":
319
- text_input = st.text_input(f"Enter your text for {column_name}:", key=f"{column_name}_text")
320
- if st.button(f"Process Text for {column_name}"):
321
- if text_input:
322
- process_text(st.session_state.current_user['name'], text_input, selected_model, temp_values)
323
- # Clear the input after processing
324
- st.session_state[f"{column_name}_text"] = ""
325
  elif option == "Image":
326
- text_input = st.text_input(f"Enter text prompt to use with Image context for {column_name}:", key=f"{column_name}_image_text")
327
- uploaded_files = st.file_uploader(f"Upload images for {column_name}", type=["png", "jpg", "jpeg"], accept_multiple_files=True, key=f"{column_name}_image_upload")
328
- if st.button(f"Process Image for {column_name}"):
329
- for image_input in uploaded_files:
330
- image_bytes = image_input.read()
331
- process_image(st.session_state.current_user['name'], image_bytes, text_input)
332
- # Clear the inputs after processing
333
- st.session_state[f"{column_name}_image_text"] = ""
334
- st.session_state[f"{column_name}_image_upload"] = None
335
  elif option == "Audio":
336
- text_input = st.text_input(f"Enter text prompt to use with Audio context for {column_name}:", key=f"{column_name}_audio_text")
337
- uploaded_files = st.file_uploader(f"Upload an audio file for {column_name}", type=["mp3", "wav"], accept_multiple_files=True, key=f"{column_name}_audio_upload")
338
- if st.button(f"Process Audio for {column_name}"):
339
- for audio_input in uploaded_files:
340
- process_audio(st.session_state.current_user['name'], audio_input, text_input)
341
- # Clear the inputs after processing
342
- st.session_state[f"{column_name}_audio_text"] = ""
343
- st.session_state[f"{column_name}_audio_upload"] = None
344
  elif option == "Video":
345
- video_input = st.file_uploader(f"Upload a video file for {column_name}", type=["mp4"], key=f"{column_name}_video_upload")
346
- text_input = st.text_input(f"Enter text prompt to use with Video context for {column_name}:", key=f"{column_name}_video_text")
347
- if st.button(f"Process Video for {column_name}"):
348
- if video_input and text_input:
349
- process_video(st.session_state.current_user['name'], video_input, text_input)
350
- # Clear the inputs after processing
351
- st.session_state[f"{column_name}_video_text"] = ""
352
- st.session_state[f"{column_name}_video_upload"] = None
353
 
354
  # Main Streamlit app
355
  st.title("Personalized Real-Time Chat")
@@ -390,4 +409,4 @@ with col2:
390
 
391
  # Run the Streamlit app
392
  if __name__ == "__main__":
393
- st.markdown("\n[by Aaron Wacker](https://huggingface.co/spaces/awacke1/).")
 
307
  save_data()
308
  return video_response
309
 
310
+ # Callback function for text processing
311
+ def process_text_callback(column_name):
312
+ text_input = st.session_state[f"{column_name}_text"]
313
+ selected_model = st.session_state[f"{column_name}_model"]
314
+ temp_values = st.session_state[f"{column_name}_temp"]
315
+ if text_input:
316
+ process_text(st.session_state.current_user['name'], text_input, selected_model, temp_values)
317
+ st.session_state[f"{column_name}_text"] = "" # Clear the input after processing
318
+
319
+ # Callback function for image processing
320
+ def process_image_callback(column_name):
321
+ text_input = st.session_state[f"{column_name}_image_text"]
322
+ uploaded_files = st.session_state[f"{column_name}_image_upload"]
323
+ if text_input and uploaded_files:
324
+ for image_input in uploaded_files:
325
+ image_bytes = image_input.read()
326
+ process_image(st.session_state.current_user['name'], image_bytes, text_input)
327
+ st.session_state[f"{column_name}_image_text"] = "" # Clear the input after processing
328
+ st.session_state[f"{column_name}_image_upload"] = None # Clear the file uploader
329
+
330
+ # Callback function for audio processing
331
+ def process_audio_callback(column_name):
332
+ text_input = st.session_state[f"{column_name}_audio_text"]
333
+ uploaded_files = st.session_state[f"{column_name}_audio_upload"]
334
+ if uploaded_files:
335
+ for audio_input in uploaded_files:
336
+ process_audio(st.session_state.current_user['name'], audio_input, text_input)
337
+ st.session_state[f"{column_name}_audio_text"] = "" # Clear the input after processing
338
+ st.session_state[f"{column_name}_audio_upload"] = None # Clear the file uploader
339
+
340
+ # Callback function for video processing
341
+ def process_video_callback(column_name):
342
+ text_input = st.session_state[f"{column_name}_video_text"]
343
+ video_input = st.session_state[f"{column_name}_video_upload"]
344
+ if video_input and text_input:
345
+ process_video(st.session_state.current_user['name'], video_input, text_input)
346
+ st.session_state[f"{column_name}_video_text"] = "" # Clear the input after processing
347
+ st.session_state[f"{column_name}_video_upload"] = None # Clear the file uploader
348
+
349
  # Main function for each column
350
  def main_column(column_name):
351
  st.markdown(f"##### {column_name}")
 
355
  option = st.selectbox(f"Select an option for {column_name}", ("Text", "Image", "Audio", "Video"), key=f"{column_name}_option")
356
 
357
  if option == "Text":
358
+ st.text_input(f"Enter your text for {column_name}:", key=f"{column_name}_text")
359
+ st.button(f"Process Text for {column_name}", on_click=process_text_callback, args=(column_name,))
 
 
 
 
360
  elif option == "Image":
361
+ st.text_input(f"Enter text prompt to use with Image context for {column_name}:", key=f"{column_name}_image_text")
362
+ st.file_uploader(f"Upload images for {column_name}", type=["png", "jpg", "jpeg"], accept_multiple_files=True, key=f"{column_name}_image_upload")
363
+ st.button(f"Process Image for {column_name}", on_click=process_image_callback, args=(column_name,))
 
 
 
 
 
 
364
  elif option == "Audio":
365
+ st.text_input(f"Enter text prompt to use with Audio context for {column_name}:", key=f"{column_name}_audio_text")
366
+ st.file_uploader(f"Upload an audio file for {column_name}", type=["mp3", "wav"], accept_multiple_files=True, key=f"{column_name}_audio_upload")
367
+ st.button(f"Process Audio for {column_name}", on_click=process_audio_callback, args=(column_name,))
 
 
 
 
 
368
  elif option == "Video":
369
+ st.file_uploader(f"Upload a video file for {column_name}", type=["mp4"], key=f"{column_name}_video_upload")
370
+ st.text_input(f"Enter text prompt to use with Video context for {column_name}:", key=f"{column_name}_video_text")
371
+ st.button(f"Process Video for {column_name}", on_click=process_video_callback, args=(column_name,))
 
 
 
 
 
372
 
373
  # Main Streamlit app
374
  st.title("Personalized Real-Time Chat")
 
409
 
410
  # Run the Streamlit app
411
  if __name__ == "__main__":
412
+ st.markdown("\n[by Aaron Wacker](https://huggingface.co/spaces/awacke1/ChatStreamlitMultiplayer).")