|
|
|
|
|
""" |
|
|
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) |
|
|
|
|
|
|
|
|
print("\n[1/4] Cargando modelos...") |
|
|
model_manager = ModelManager(force_cpu=True) |
|
|
|
|
|
|
|
|
print("\n[2/4] Inicializando procesador de facturas...") |
|
|
invoice_processor = InvoiceProcessor(model_manager) |
|
|
|
|
|
|
|
|
print("\n[3/4] Inicializando procesador de lotes...") |
|
|
batch_processor = BatchProcessor(invoice_processor) |
|
|
|
|
|
|
|
|
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") |
|
|
|
|
|
|
|
|
demo.launch() |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
main() |