ITSAIDI
sad
bb4adf7
raw
history blame
2.42 kB
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')
st.write(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()