oc-chat_pdf/chats/streamlit_tools.py

49 lines
1.6 KiB
Python

import streamlit as st
import os
# @st.cache_data
def import_file() -> str:
List_of_files: list = []
# Cargar el archivo pdf
archivo = st.file_uploader("Arrastra o ingresa tu archivo .pdf", type=[".pdf"])
nombre_archivo: str = ""
# Verificar si se ha cargado un archivo
if archivo is not None:
nombre_archivo = archivo.name
# Agregamos el nombre a la lista de archvios para luego podr verificarlos
List_of_files.append(nombre_archivo)
st.success(
f"El numero de archivos en la lista de archivos es de: {len(List_of_files)}"
)
# Abrir un archivo en modo escritura binaria ('wb') para guardar el archivo de audio
with open(f"documents/pdfs/{nombre_archivo}", "wb") as new_file:
# Leer los datos del archivo cargado y escribirlos en el nuevo archivo
new_file.write(archivo.read())
st.success(f"Se carga el archivo con nombre: {nombre_archivo}")
# Verificamos que en la lista solo haya un archivo, de lo contrario, limpiamos la session_state
if (
"archivo_anterior" in st.session_state
and st.session_state.archivo_anterior != nombre_archivo
):
st.session_state.clear()
st.session_state.archivo_anterior = nombre_archivo
return nombre_archivo
# Define la función para borrar el caché
def clear_cache():
cache_path = os.path.join(st.__path__[0], "static", "cache")
for root, dirs, files in os.walk(cache_path):
for file in files:
os.remove(os.path.join(root, file))
st.success("Cache limpio exitosamente.")