# app.py import gradio as gr import logging from app.logging_config import configure_logging from app.functions.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.new_features_tab import create_new_features_tab # 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 doc_refs = create_document_management_tab() chat_refs = create_chatbot_tab() # Crea dizionario completo dei riferimenti dropdowns = { "document": doc_refs, "chat": chat_refs } # Crea i tab nell'ordine corretto create_db_management_tab(dropdowns) # Tab 1: DB Management doc_refs # Tab 2: Document Management create_new_features_tab() # Tab 3: Features chat_refs # Tab 4: Chatbot (ultima tab) rag_chatbot.launch() except Exception as e: logging.error(f"Errore durante l'avvio: {str(e)}") if __name__ == "__main__": main()