Spaces:
Running
Running
phyloforfun
commited on
Commit
•
4d14f52
1
Parent(s):
b8abf64
Major update. Support for 15 LLMs, World Flora Online taxonomy validation, geolocation, 2 OCR methods, significant UI changes, stability improvements, consistent JSON parsing
Browse files
app.py
CHANGED
@@ -242,14 +242,14 @@ def use_test_image():
|
|
242 |
st.session_state['input_list_small'].append(file_path_small)
|
243 |
|
244 |
|
245 |
-
def create_download_button_yaml(file_path, selected_yaml_file):
|
246 |
file_label = f"Download {selected_yaml_file}"
|
247 |
with open(file_path, 'rb') as f:
|
248 |
st.download_button(
|
249 |
label=file_label,
|
250 |
data=f,
|
251 |
file_name=os.path.basename(file_path),
|
252 |
-
mime='application/x-yaml',use_container_width=True,key=
|
253 |
)
|
254 |
|
255 |
|
@@ -1015,7 +1015,7 @@ def save_prompt_yaml(filename, col):
|
|
1015 |
upload_to_drive(filepath, filename) # added
|
1016 |
|
1017 |
with col: # added
|
1018 |
-
create_download_button_yaml(filepath, filename) # added
|
1019 |
|
1020 |
def check_unique_mapping_assignments():
|
1021 |
print(st.session_state['assigned_columns'])
|
@@ -1147,7 +1147,7 @@ def build_LLM_prompt_config():
|
|
1147 |
download_file_path = os.path.join(dir_prompt, st.session_state['selected_yaml_file'] )
|
1148 |
# Create the download button
|
1149 |
st.write('##')
|
1150 |
-
create_download_button_yaml(download_file_path, st.session_state['selected_yaml_file']
|
1151 |
|
1152 |
# Prompt Author Information
|
1153 |
st.write("---")
|
@@ -1435,23 +1435,23 @@ def build_LLM_prompt_config():
|
|
1435 |
|
1436 |
|
1437 |
|
1438 |
-
st.write('---')
|
1439 |
-
st.header("Save and Download Custom Prompt")
|
1440 |
-
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.***')
|
1441 |
-
col_left_save, col_right_save, _ = st.columns([2,2,8])
|
1442 |
-
with col_left_save:
|
1443 |
-
|
1444 |
-
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
|
1456 |
# with col_prompt_main_right:
|
1457 |
# st.subheader('All Prompt Components')
|
@@ -1751,6 +1751,7 @@ def content_header():
|
|
1751 |
path_api_cost=os.path.join(st.session_state.dir_home,'api_cost','api_cost.yaml'),
|
1752 |
is_hf = st.session_state['is_hf'],
|
1753 |
is_real_run=True)
|
|
|
1754 |
except Exception as e:
|
1755 |
with col_run_4:
|
1756 |
st.error(f"Transcription failed. Error: {e}")
|
@@ -1770,7 +1771,6 @@ def content_header():
|
|
1770 |
else:
|
1771 |
with col_run_4:
|
1772 |
st.info(f":money_with_wings: This run cost :heavy_dollar_sign:{total_cost:.4f}")
|
1773 |
-
st.balloons()
|
1774 |
if st.session_state['zip_filepath']:
|
1775 |
create_download_button(st.session_state['zip_filepath'], col_run_1)
|
1776 |
else:
|
@@ -2089,7 +2089,7 @@ def content_collage_overlay():
|
|
2089 |
raise
|
2090 |
|
2091 |
st.write("Supplement Google Vision OCR with trOCR (handwriting OCR) using `microsoft/trocr-base-handwritten`. This option requires Google Vision API and a GPU.")
|
2092 |
-
do_use_trOCR = st.checkbox("Enable trOCR", value=st.session_state.config['leafmachine']['project']['do_use_trOCR']
|
2093 |
st.session_state.config['leafmachine']['project']['do_use_trOCR'] = do_use_trOCR
|
2094 |
|
2095 |
|
@@ -2407,13 +2407,13 @@ def main():
|
|
2407 |
content_prompt_and_llm_version()
|
2408 |
with col4:
|
2409 |
content_api_check()
|
2410 |
-
content_llm_cost()
|
2411 |
content_collage_overlay()
|
|
|
2412 |
content_processing_options()
|
2413 |
content_less_used()
|
2414 |
-
|
2415 |
-
|
2416 |
-
|
2417 |
|
2418 |
|
2419 |
|
|
|
242 |
st.session_state['input_list_small'].append(file_path_small)
|
243 |
|
244 |
|
245 |
+
def create_download_button_yaml(file_path, selected_yaml_file, key_val):
|
246 |
file_label = f"Download {selected_yaml_file}"
|
247 |
with open(file_path, 'rb') as f:
|
248 |
st.download_button(
|
249 |
label=file_label,
|
250 |
data=f,
|
251 |
file_name=os.path.basename(file_path),
|
252 |
+
mime='application/x-yaml',use_container_width=True,key=key_val,
|
253 |
)
|
254 |
|
255 |
|
|
|
1015 |
upload_to_drive(filepath, filename) # added
|
1016 |
|
1017 |
with col: # added
|
1018 |
+
create_download_button_yaml(filepath, filename,key_val=2456237465) # added
|
1019 |
|
1020 |
def check_unique_mapping_assignments():
|
1021 |
print(st.session_state['assigned_columns'])
|
|
|
1147 |
download_file_path = os.path.join(dir_prompt, st.session_state['selected_yaml_file'] )
|
1148 |
# Create the download button
|
1149 |
st.write('##')
|
1150 |
+
create_download_button_yaml(download_file_path, st.session_state['selected_yaml_file'],key_val=345798)
|
1151 |
|
1152 |
# Prompt Author Information
|
1153 |
st.write("---")
|
|
|
1435 |
|
1436 |
|
1437 |
|
1438 |
+
# st.write('---')
|
1439 |
+
# st.header("Save and Download Custom Prompt")
|
1440 |
+
# 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.***')
|
1441 |
+
# col_left_save, col_right_save, _ = st.columns([2,2,8])
|
1442 |
+
# with col_left_save:
|
1443 |
+
# # Button to save the new YAML file
|
1444 |
+
# if st.button('Save YAML', type='primary',key=3450798):
|
1445 |
+
# if st.session_state['prompt_name']:
|
1446 |
+
# if check_unique_mapping_assignments():
|
1447 |
+
# if check_prompt_yaml_filename(st.session_state['prompt_name']):
|
1448 |
+
# save_prompt_yaml(st.session_state['prompt_name'], col_right_save)
|
1449 |
+
# else:
|
1450 |
+
# st.error("File name can only contain letters, numbers, underscores, and dashes. Cannot contain spaces.")
|
1451 |
+
# else:
|
1452 |
+
# st.error("Mapping contains an error. Make sure that each column is assigned to only ***one*** category.")
|
1453 |
+
# else:
|
1454 |
+
# st.error("Please enter a filename.")
|
1455 |
|
1456 |
# with col_prompt_main_right:
|
1457 |
# st.subheader('All Prompt Components')
|
|
|
1751 |
path_api_cost=os.path.join(st.session_state.dir_home,'api_cost','api_cost.yaml'),
|
1752 |
is_hf = st.session_state['is_hf'],
|
1753 |
is_real_run=True)
|
1754 |
+
st.balloons()
|
1755 |
except Exception as e:
|
1756 |
with col_run_4:
|
1757 |
st.error(f"Transcription failed. Error: {e}")
|
|
|
1771 |
else:
|
1772 |
with col_run_4:
|
1773 |
st.info(f":money_with_wings: This run cost :heavy_dollar_sign:{total_cost:.4f}")
|
|
|
1774 |
if st.session_state['zip_filepath']:
|
1775 |
create_download_button(st.session_state['zip_filepath'], col_run_1)
|
1776 |
else:
|
|
|
2089 |
raise
|
2090 |
|
2091 |
st.write("Supplement Google Vision OCR with trOCR (handwriting OCR) using `microsoft/trocr-base-handwritten`. This option requires Google Vision API and a GPU.")
|
2092 |
+
do_use_trOCR = st.checkbox("Enable trOCR", value=st.session_state.config['leafmachine']['project']['do_use_trOCR'])#,disabled=st.session_state['lacks_GPU'])
|
2093 |
st.session_state.config['leafmachine']['project']['do_use_trOCR'] = do_use_trOCR
|
2094 |
|
2095 |
|
|
|
2407 |
content_prompt_and_llm_version()
|
2408 |
with col4:
|
2409 |
content_api_check()
|
|
|
2410 |
content_collage_overlay()
|
2411 |
+
content_llm_cost()
|
2412 |
content_processing_options()
|
2413 |
content_less_used()
|
2414 |
+
with st.expander("View additional settings"):
|
2415 |
+
content_archival_components()
|
2416 |
+
content_space_saver()
|
2417 |
|
2418 |
|
2419 |
|