phyloforfun commited on
Commit
3b75f1a
1 Parent(s): cc9202c

file upload gallery

Browse files
Files changed (1) hide show
  1. app.py +27 -15
app.py CHANGED
@@ -688,7 +688,7 @@ def load_prompt_yaml(filename):
688
  # Placeholder:
689
  st.session_state['assigned_columns'] = list(chain.from_iterable(st.session_state['mapping'].values()))
690
 
691
- def save_prompt_yaml(filename):
692
  yaml_content = {
693
  'instructions': st.session_state['instructions'],
694
  'json_formatting_instructions': st.session_state['json_formatting_instructions'],
@@ -705,6 +705,9 @@ def save_prompt_yaml(filename):
705
 
706
  st.success(f"Prompt saved as '{filename}.yaml'.")
707
 
 
 
 
708
  def check_unique_mapping_assignments():
709
  if len(st.session_state['assigned_columns']) != len(set(st.session_state['assigned_columns'])):
710
  st.error("Each column name must be assigned to only one category.")
@@ -829,33 +832,34 @@ The desired null value is also given. Populate the field with the null value of
829
 
830
  dir_prompt = os.path.join(st.session_state.dir_home, 'custom_prompts')
831
  yaml_files = [f for f in os.listdir(dir_prompt) if f.endswith('.yaml')]
832
- col_upload_yaml, col_upload_btn = st.columns([8,2])
833
  with col_upload_yaml:
834
  # Upload a prompt from your computer
835
  upload_local_prompt_to_server(dir_prompt)
836
 
837
- with col_upload_btn:
838
- st.write('##')
839
- # Button to load the selected prompt
840
- st.button('Load Prompt into Builder', on_click=btn_load_prompt, args=[st.session_state['selected_yaml_file'] , dir_prompt])
841
-
842
- col_select_yaml, col_download_btn = st.columns([8,2])
843
  with col_select_yaml:
844
  # Dropdown for selecting a YAML file
845
  st.session_state['selected_yaml_file'] = st.selectbox('Select a prompt .YAML file to load:', [''] + yaml_files)
846
 
 
 
 
 
 
847
  with col_download_btn:
848
  if st.session_state['selected_yaml_file']:
849
  # Construct the full path to the file
850
  download_file_path = os.path.join(dir_prompt, st.session_state['selected_yaml_file'] )
851
  # Create the download button
 
852
  create_download_button(download_file_path, st.session_state['selected_yaml_file'] )
853
 
854
 
855
  # Define the options for the dropdown
856
  llm_options = ['gpt', 'palm']
857
  # Create the dropdown and set the value to session_state['LLM']
858
- st.session_state['LLM'] = st.selectbox('Set LLM:', llm_options, index=llm_options.index(st.session_state.get('LLM', 'gpt')))
859
 
860
 
861
 
@@ -1048,7 +1052,11 @@ The desired null value is also given. Populate the field with the null value of
1048
  st.json(st.session_state['mapping'])
1049
 
1050
 
1051
- col_left_save, col_right_save = st.columns([6,4])
 
 
 
 
1052
  with col_left_save:
1053
  # Input for new file name
1054
  new_filename = st.text_input("Enter filename to save your prompt as a configuration YAML:",placeholder='my_prompt_name')
@@ -1057,7 +1065,7 @@ The desired null value is also given. Populate the field with the null value of
1057
  if new_filename:
1058
  if check_unique_mapping_assignments():
1059
  if check_prompt_yaml_filename(new_filename):
1060
- save_prompt_yaml(new_filename)
1061
  else:
1062
  st.error("File name can only contain letters, numbers, underscores, and dashes. Cannot contain spaces.")
1063
  else:
@@ -1065,10 +1073,13 @@ The desired null value is also given. Populate the field with the null value of
1065
  else:
1066
  st.error("Please enter a filename.")
1067
 
1068
- if st.button('Exit'):
1069
- st.session_state.proceed_to_build_llm_prompt = False
1070
- st.session_state.proceed_to_main = True
1071
- st.rerun()
 
 
 
1072
  with col_prompt_main_right:
1073
  st.subheader('All Prompt Components')
1074
  st.session_state['prompt_info'] = {
@@ -1518,6 +1529,7 @@ def main():
1518
  if st.button("Build Custom LLM Prompt"):
1519
  st.session_state.proceed_to_build_llm_prompt = True
1520
  st.rerun()
 
1521
 
1522
  with tab_component:
1523
  content_tab_component()
 
688
  # Placeholder:
689
  st.session_state['assigned_columns'] = list(chain.from_iterable(st.session_state['mapping'].values()))
690
 
691
+ def save_prompt_yaml(filename, col_right_save):
692
  yaml_content = {
693
  'instructions': st.session_state['instructions'],
694
  'json_formatting_instructions': st.session_state['json_formatting_instructions'],
 
705
 
706
  st.success(f"Prompt saved as '{filename}.yaml'.")
707
 
708
+ with col_right_save:
709
+ create_download_button(filepath, filename)
710
+
711
  def check_unique_mapping_assignments():
712
  if len(st.session_state['assigned_columns']) != len(set(st.session_state['assigned_columns'])):
713
  st.error("Each column name must be assigned to only one category.")
 
832
 
833
  dir_prompt = os.path.join(st.session_state.dir_home, 'custom_prompts')
834
  yaml_files = [f for f in os.listdir(dir_prompt) if f.endswith('.yaml')]
835
+ col_upload_yaml, col_upload_yaml_2 = st.columns([4,4])
836
  with col_upload_yaml:
837
  # Upload a prompt from your computer
838
  upload_local_prompt_to_server(dir_prompt)
839
 
840
+ col_select_yaml, col_upload_btn, col_download_btn = st.columns([6,2,2])
 
 
 
 
 
841
  with col_select_yaml:
842
  # Dropdown for selecting a YAML file
843
  st.session_state['selected_yaml_file'] = st.selectbox('Select a prompt .YAML file to load:', [''] + yaml_files)
844
 
845
+ with col_upload_btn:
846
+ st.write('##')
847
+ # Button to load the selected prompt
848
+ st.button('Load Selected Prompt into Builder', on_click=btn_load_prompt, args=[st.session_state['selected_yaml_file'] , dir_prompt])
849
+
850
  with col_download_btn:
851
  if st.session_state['selected_yaml_file']:
852
  # Construct the full path to the file
853
  download_file_path = os.path.join(dir_prompt, st.session_state['selected_yaml_file'] )
854
  # Create the download button
855
+ st.write('##')
856
  create_download_button(download_file_path, st.session_state['selected_yaml_file'] )
857
 
858
 
859
  # Define the options for the dropdown
860
  llm_options = ['gpt', 'palm']
861
  # Create the dropdown and set the value to session_state['LLM']
862
+ st.session_state['LLM'] = st.selectbox('Set LLM type:', llm_options, index=llm_options.index(st.session_state.get('LLM', 'gpt')))
863
 
864
 
865
 
 
1052
  st.json(st.session_state['mapping'])
1053
 
1054
 
1055
+ st.write('---')
1056
+ st.header("Save and Download Custom Prompt")
1057
+ st.write('Provide a name for your custom prompt. It can only conatin letters, numbers, and underscores.')
1058
+ st.write('Once you click save, validation checks will verify the formatting and then a download button will appear so that you can ***save a local copy of your custom prompt.***')
1059
+ col_left_save, col_right_save, _ = st.columns([2,2,8])
1060
  with col_left_save:
1061
  # Input for new file name
1062
  new_filename = st.text_input("Enter filename to save your prompt as a configuration YAML:",placeholder='my_prompt_name')
 
1065
  if new_filename:
1066
  if check_unique_mapping_assignments():
1067
  if check_prompt_yaml_filename(new_filename):
1068
+ save_prompt_yaml(new_filename, col_right_save)
1069
  else:
1070
  st.error("File name can only contain letters, numbers, underscores, and dashes. Cannot contain spaces.")
1071
  else:
 
1073
  else:
1074
  st.error("Please enter a filename.")
1075
 
1076
+ st.write('---')
1077
+ st.header("Return to VoucherVision")
1078
+ if st.button('Exit'):
1079
+ st.session_state.proceed_to_build_llm_prompt = False
1080
+ st.session_state.proceed_to_main = True
1081
+ st.rerun()
1082
+
1083
  with col_prompt_main_right:
1084
  st.subheader('All Prompt Components')
1085
  st.session_state['prompt_info'] = {
 
1529
  if st.button("Build Custom LLM Prompt"):
1530
  st.session_state.proceed_to_build_llm_prompt = True
1531
  st.rerun()
1532
+ st.write('When opening the Prompt Builder, it take a moment for the page to refresh.')
1533
 
1534
  with tab_component:
1535
  content_tab_component()