import gradio as gr import logging from app.logging_config import configure_logging from app.utils.database_handling import list_databases from ui.chatbot_tab import create_chatbot_tab from ui.db_management_tab import create_db_management_tab from ui.document_management_tab import create_document_management_tab from ui.info_tab import create_info_tab # Importa la nuova tab from ui.chunks_viewer_tab import create_chunks_viewer_tab # Aggiungi l'import in cima al file # Configura il logging configure_logging() def main(): """Funzione principale che crea e lancia l'app Gradio.""" logging.info("Avvio applicazione") try: with gr.Blocks() as rag_chatbot: gr.Markdown("# Chatbot basato su RAG") logging.info("Interfaccia Gradio inizializzata") # Prima ottiene tutti i riferimenti chat_refs = create_chatbot_tab() doc_refs = create_document_management_tab() chunks_refs = create_chunks_viewer_tab() # Aggiungi il nuovo tab db_refs = create_db_management_tab # Crea la nuova tab delle informazioni info_refs = create_info_tab() # Crea dizionario completo dei riferimenti dropdowns = { "document": doc_refs, "chat": chat_refs, "info": info_refs, "chunks": chunks_refs # Aggiungi il riferimento } # Crea i tab nell'ordine corretto chat_refs # Tab 4: Chatbot (ultima tab) info_refs doc_refs # Tab 2: Document Management db_refs(dropdowns) chunks_refs # Aggiungi il tab dei chunks # Tab 5: Info (ultima tab) rag_chatbot.launch() except Exception as e: logging.error(f"Errore durante l'avvio: {str(e)}") ###cioa if __name__ == "__main__": main()