Spaces:
Running
Running
import streamlit as st | |
import logging | |
from ..database.database_oldFromV2 import manage_file_contents, delete_file, get_user_files | |
from ..utils.widget_utils import generate_unique_key | |
logger = logging.getLogger(__name__) | |
def display_semantic_interface(lang_code, nlp_models, t): | |
st.subheader(t['semantic_title']) | |
text_input = st.text_area( | |
t['warning_message'], | |
height=150, | |
key=generate_unique_key("semantic", "text_area") | |
) | |
if st.button( | |
t['results_title'], | |
key=generate_unique_key("semantic", "analyze_button") | |
): | |
if text_input: | |
# Aquí iría tu lógica de análisis morfosintáctico | |
# Por ahora, solo mostraremos un mensaje de placeholder | |
st.info(t['analysis_placeholder']) | |
else: | |
st.warning(t['no_text_warning']) | |
''' | |
def display_semantic_interface(lang_code, nlp_models, t): | |
st.title("Semantic Analysis") | |
tab1, tab2 = st.tabs(["File Management", "Analysis"]) | |
with tab1: | |
display_file_management(lang_code, t) | |
with tab2: | |
# Aquí irá el código para el análisis semántico (lo implementaremos después) | |
st.write("Semantic analysis section will be implemented here.") | |
def display_file_management(lang_code, t): | |
st.header("File Management") | |
# File Upload Section | |
st.subheader("Upload New File") | |
uploaded_file = st.file_uploader( | |
"Choose a file to upload", | |
type=['txt', 'pdf', 'docx', 'doc', 'odt'], | |
key=generate_unique_key('semantic', 'file_uploader') | |
) | |
if uploaded_file is not None: | |
file_contents = uploaded_file.getvalue().decode('utf-8') | |
if manage_file_contents(st.session_state.username, uploaded_file.name, file_contents, 'semantic'): | |
st.success(f"File {uploaded_file.name} uploaded and saved successfully") | |
else: | |
st.error("Error uploading file") | |
st.markdown("---") | |
# File Management Section | |
st.subheader("Manage Uploaded Files") | |
user_files = get_user_files(st.session_state.username, 'semantic') | |
if user_files: | |
for file in user_files: | |
col1, col2 = st.columns([3, 1]) | |
with col1: | |
st.write(file['file_name']) | |
with col2: | |
if st.button("Delete", key=f"delete_{file['file_name']}", help=f"Delete {file['file_name']}"): | |
try: | |
logger.info(f"Attempting to delete file: {file['file_name']} for user: {st.session_state.username}") | |
if delete_file(st.session_state.username, file['file_name'], 'semantic'): | |
st.success(f"File {file['file_name']} deleted successfully") | |
logger.info(f"File {file['file_name']} deleted successfully for user: {st.session_state.username}") | |
st.rerun() | |
else: | |
st.error(f"Error deleting file {file['file_name']}") | |
logger.error(f"Failed to delete file {file['file_name']} for user: {st.session_state.username}") | |
except Exception as e: | |
st.error(f"An error occurred while deleting file {file['file_name']}: {str(e)}") | |
logger.exception(f"Exception occurred while deleting file {file['file_name']} for user: {st.session_state.username}") | |
else: | |
st.info("No files uploaded yet.") | |
if __name__ == "__main__": | |
# This is just for testing purposes | |
class MockTranslation(dict): | |
def __getitem__(self, key): | |
return key | |
display_semantic_interface('en', {}, MockTranslation()) | |
''' |