# app.py """ Punto de entrada principal de la aplicación """ from model_loader import ModelManager from invoice_processor import InvoiceProcessor from batch_processor import BatchProcessor, ResultNavigator from interface import GradioInterface def main(): """Función principal para inicializar y lanzar la aplicación.""" print("=" * 60) print("Iniciando aplicación de extracción de datos de facturas") print("=" * 60) # 1. Cargar modelos print("\n[1/4] Cargando modelos...") model_manager = ModelManager(force_cpu=True) # 2. Inicializar procesador de facturas print("\n[2/4] Inicializando procesador de facturas...") invoice_processor = InvoiceProcessor(model_manager) # 3. Inicializar procesador de lotes print("\n[3/4] Inicializando procesador de lotes...") batch_processor = BatchProcessor(invoice_processor) # 4. Construir interfaz print("\n[4/4] Construyendo interfaz Gradio...") gradio_interface = GradioInterface(batch_processor, ResultNavigator) demo = gradio_interface.build_interface() print("\n" + "=" * 60) print("✓ Aplicación lista") print("=" * 60 + "\n") # Lanzar la aplicación demo.launch() if __name__ == "__main__": main()