Edurag_beta / app.py
Nugh75's picture
Creazione function e database_hundling
b2638ec
raw
history blame
1.99 kB
# 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.document_view_tab import create_document_view_tab
from ui.new_features_tab import create_new_features_tab
# Configura il logging
configure_logging()
def update_all_dropdowns():
"""
Aggiorna tutti i dropdown in tutte le tab.
Nel tuo scenario, hai 6 dropdown totali (2 nella tab DB, 2 nella tab Documenti,
eventualmente 1 nella tab Chatbot, 1 in altre tab, ecc.).
Se ne hai di più o di meno, modifica il numero nel range.
"""
databases = list_databases()
# Imposta la prima voce selezionata (value) solo se la lista non è vuota
# e aggiorna le "choices" di tutti i dropdown.
return [gr.update(choices=databases, value=databases[0] if databases else None) for _ in range(6)]
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")
# Crea i vari tab dell'interfaccia
create_chatbot_tab()
create_db_management_tab(update_all_dropdowns) # Passiamo la callback
create_document_management_tab(update_all_dropdowns) # Passiamo la callback
create_document_view_tab()
create_new_features_tab()
logging.info("Tab dell'interfaccia creati con successo")
# Avvia l'app
logging.info("Avvio server Gradio")
rag_chatbot.launch()
except Exception as e:
logging.error(f"Errore durante l'avvio: {str(e)}", exc_info=True)
if __name__ == "__main__":
main()