NECESIDAD DEL CLIENTE
Cualquier empresa, independientemente de su tamaño o sector, debe incluir un sistema de control y seguimiento de documentos. Tradicionalmente se usaba un libro de cuentas que, con el avance de la tecnología, se convirtió en un sistema digital de contabilidad. Sin embargo, a día de hoy, se sigue utilizando el formato papel para ciertos documentos (facturas, tickets, albaranes) que necesitan ser digitalizados para integrar los datos básicos de contabilidad en el ERP (sistema de planificación de recursos empresariales) de la empresa.
Normalmente este procedimiento pasa por una persona revisando la factura o ticket y tecleando uno a uno los diferentes datos relevantes del documento: el coste total, las diferentes bases imponibles, CIFs, IBANs, fechas, etc. Transcribir una factura compleja puede suponer más de 2 minutos a una persona con experiencia. Este trabajo manual y tedioso, involucra mucha carga de personal; bien por el departamento contable de la empresa o bien externalizado a través de una asesoría externa, en ambos casos, dando lugar a ineficiencias, errores y retrasos.
Infoqus, como consultora empresarial experta en sistemas de información y gestión, necesitaba un método más eficiente para el procesamiento de documentos que ofrece a sus clientes. Biyectiva le propuso un sistema basado en Inteligencia Artificial para la extracción automática de campos y líneas de producto en facturas, tickets y albaranes.
RETOS Y DIFICULTADES
La heterogeneidad con la que facturas, tickets o albaranes son generados por las empresas obliga a contar con un sistema inteligente que pueda lidiar de forma robusta con la gran diversidad de formatos de estos documentos. Los sistemas basados en plantillas han demostrado que es impráctico tener que definir plantillas distintas para cada una de las potenciales facturas que una empresa puede recibir. Por tanto, una de las dificultades clave de este proyecto residía en desarrollar una Inteligencia Artificial suficientemente amplia y flexible que pudiese detectar campos en facturas, tickets y albaranes independientemente de su formato.
El diseño de un sistema de estas características requería de un enorme conjunto de datos (o dataset) con el que “entrenar” los sistemas de Procesamiento Natural del Lenguaje. Otro reto fundamental en este proyecto fue construir un conjunto de datos de más de 10000 facturas con anotaciones precisas. Para ello, se hizo imprescindible el desarrollo de una herramienta propia de etiquetado de documentos que agilizara este proceso. El sistema, por supuesto y de forma inexcusable, tenía que ofrecer una precisión en la detección muy alta; suficiente como para garantizar que el sistema realmente fuera confiable. Un objetivo de precisión superior al 90% fue establecido.
También, como requisito fundamental del proyecto debíamos construir un sistema que fuera escalable. El objetivo inicial fue poder procesar más de 3 millones de facturas anuales, con picos muy grandes en los cierres de trimestre (momentos de mayor carga en las asesorías).
SOLUCIONES
Dada la complejidad técnica de este proyecto, se necesitó un análisis del estado del arte en materia de Procesamiento Natural del Lenguaje y técnicas de fusión de datos con visual cues (indicadores extraídos con técnicas de Visión Artificial que apoyan a la extracción semántica de datos).
La necesidad de escalabilidad y robustez hizo descartar desde el principio el uso de servidores in-house, y optamos por una arquitectura cloud completa. Se diseñó la arquitectura del sistema totalmente distribuido, docker-izable y gestionable utilizando Kubernetes. Por supuesto, dada la complejidad de la arquitectura se necesitaba implementar un sistema de logging y monitorización en tiempo real apoyado sobre el stack ELK con un sistema custom de alertas en tiempo real.
Para ofrecer el servicio se optó por una API RESTful que ofreciera interfaces claras y bien documentadas. A este respecto, en el equipo de Biyectiva fuimos conscientes desde el comienzo de la necesidad de un gran esfuerzo de documentación tanto interna (servicios, arquitectura) como externa (uso de la API, gestión de usuarios, etc.) para poder conseguir los objetivos marcados.
RESULTADOS
El sistema, hoy, es utilizado por más de 30 empresas distintas en todo el país; operando, en la actualidad, con una carga media de 1 millón de facturas anuales totales. Estas cifras garantizan que el objetivo de robustez y escalabilidad ha sido alcanzado con éxito. El sistema desarrollado por Biyectiva es capaz de leer desde valores dinerarios como los Totales, las diversas Bases Imponibles, IVAs, etc. hasta números de factura, IBANes. Incluso, es capaz de extraer las líneas de producto de facturas y albaranes para simplficar la contabilización de costes.
Por otro lado, la precisión en la detección de los distintos campos de facturas, tickets y albaranes es superior al 91%, demostrando la fiabilidad de las técnicas de Visión Artificial y NLP.
Para más información, hemos publicado la documentación necesaria aquí:
https://www.biyectiva.com/docs/