import os import tempfile import streamlit as st from utils.document import audit_descriptif_pdf def read_and_save_file(): for file in st.session_state["file_uploader"]: with tempfile.NamedTemporaryFile(delete=False) as tf: tf.write(file.getbuffer()) file_path = tf.name if not any(f["name"] == file.name for f in st.session_state["files"]): st.session_state["files"].append({ "name": file.name, "audit": audit_descriptif_pdf(file)["audit"] }) with st.session_state["ingestion_spinner"], st.spinner(f"Chargement {file.name}"): st.session_state["assistant"].ingest(file_path) os.remove(file_path) def page(): st.subheader("Charger vos documents") if "files" not in st.session_state: st.session_state["files"] = [] # Custom CSS to hide default English labels # st.markdown( # """ # # """, # unsafe_allow_html=True # ) # File uploader st.file_uploader( "Télécharger un ou plusieurs documents", type=["pdf"], key="file_uploader", accept_multiple_files=True, on_change=read_and_save_file, ) for file in st.session_state["files"]: st.markdown(f"#### {file['name']}") audit = file["audit"] st.markdown( """
Nombre de pages{}
Nombre d'images{}
Nombre de liens{}
Nombre de tableaux{}
Nombre de tokens{}
Nombre de mots{}
""".format( audit['number_of_pages'], audit['number_of_images'], audit['number_of_links'], audit['number_of_tables'], audit['number_of_tokens'], audit['number_of_words'] ), unsafe_allow_html=True ) st.session_state["ingestion_spinner"] = st.empty() page()