import streamlit as st from utilitis import Draw, Add_Results, Change_Image from PIL import Image import time def check_if_changed(original_values, updated_values): for key, value in original_values.items(): if updated_values[key] != value: return True return False st.title("Bienvenue à Textra Web App") st.markdown("### Drag and Drop votre facture ici:") st.write("(PNG, JPG, JPEG)") uploaded_file = st.file_uploader("Ou selectioner une image:", type=["png", "jpg", "jpeg"], accept_multiple_files=False) if uploaded_file is not None: image_initiale = Image.open(uploaded_file) image_initiale = image_initiale.convert("RGB") @st.cache_data def process_image(uploaded_file): image = Image.open(uploaded_file) image = image.convert("RGB") return Draw(image) # Process the image and retrieve results image, Results = process_image(uploaded_file) Change_Image(image,image_initiale) st.sidebar.title('Results') # Define text inputs with initial values text_fourni = st.sidebar.text_input("Fournisseur", value=Results["Fournisseur"]) text_InvDate = st.sidebar.text_input("Date Facture", value=Results["Date Facture"]) text_InvNum = st.sidebar.text_input("Numéro de facture", value=Results["Numéro de facture"]) text_TT = st.sidebar.text_input("Total HT", value=Results["Total HT"]) text_TTC = st.sidebar.text_input("TTC", value=Results["Total TTC"]) text_TVA = st.sidebar.text_input("TVA", value=Results["TVA"]) st.write("Predicted Text:", text_fourni, text_InvDate, text_InvNum, text_TT, text_TVA, text_TTC) New_results = { "Fournisseur": text_fourni, "Date Facture": text_InvDate, "Numéro de facture": text_InvNum, "Total HT": text_TT, "TVA": text_TVA, "Total TTC": text_TTC } # Check if any input has been changed if check_if_changed(Results,New_results): st.write(check_if_changed(Results,New_results)) # Add a button to save changes if st.sidebar.button("Sauvegarder"): # Get updated values from text inputs updated_results = New_results success_message = st.sidebar.empty() success_message.success("Les résultats ont été sauvegardés avec succès !") time.sleep(1) success_message.empty()