Lucas Gagneten
Interfaz mejorada
809b92e
# 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()