GCP Document AI y Node-RED

El servicio Document AI de Google le permite procesar documentos y analizar su contenido en datos estructurados y legibles por máquina. Cuando pensamos en documentos aquí, piense en documentos escaneados en lugar de documentos de Google o Word que ya tienen contenido estructurado. En su lugar, piense en documentos que puedan tener valores escritos a mano o mecanografiados. Los ejemplos de documentos de esta clase pueden incluir:

  • Declaraciones de ganancias W2
  • 1099 declaraciones de ingresos
  • Su licencia de conducir o pasaporte.
  • El formulario de medicamentos actuales que completa cuando visita a un nuevo médico

El producto / servicio Document AI se describe en detalle aquí . El servicio está destinado a ser utilizado dentro de sus propias aplicaciones llamando a las API expuestas y documentadas. Estas API están disponibles a través de llamadas REST y a través de una variedad de bibliotecas cliente de lenguaje de programación.

Completamente separado de Document AI está el proyecto de código abierto llamado Node-RED que proporciona un entorno de ensamblaje de dibujo visual de código muy bajo para conectar bloques de construcción componibles de funciones discretas en soluciones. Node-RED ha existido durante muchos años y continúa creciendo en popularidad. Dentro de un entorno Node-RED, uno puede conectar visualmente los componentes que se invocan cuando llega una solicitud entrante. Node-RED es altamente extensible, lo que significa que a medida que estén disponibles nuevas tecnologías, se pueden integrar como nuevos bloques de construcción adicionales para su uso dentro de Node-RED. Estos nuevos bloques de construcción (llamados Nodos) están disponibles para su inclusión desde un repositorio que se puede buscar desde dentro del entorno Node-RED. Hay un paquete de nodos que están dedicados a la integración de GCP. En este paquete se incluye soporte para:

  • Pub / Sub
  • BigQuery
  • Almacenamiento en la nube
  • Inicio sesión
  • Firestore
  • IoT
  • otros …

Con Document AI de GCP como un nuevo servicio, se ha agregado a la lista un nuevo nodo que admite Document AI.

El nodo toma los datos del documento como entrada y luego invoca el servicio GCP Document AI. El resultado de esta llamada son los datos analizados que luego están inmediatamente disponibles para su procesamiento por los nodos descendentes. A continuación, se muestra un diagrama simplificado en el que recibimos un mensaje de Pub / Sub (que contiene un documento original), lo pasamos a Document AI y luego insertamos los resultados analizados en una tabla de BigQuery.

Ahora veamos más detalles del nuevo nodo Document AI. No voy a explicar Node-RED o los conceptos generales de GCP asumiendo que puede estudiarlos en otros lugares. Los enlaces de referencia se incluyen en las referencias al final.

La entrada al nodo Document AI espera que los datos se encuentren en el msg.payload entrante. Dado que estamos pasando datos binarios, la carga útil debe ser una cadena codificada en base64. Normalmente, esto es lo que se pasa a través de una solicitud REST que se utiliza para iniciar un flujo Node-RED ... sin embargo, Node-RED tiene capacidades para convertir datos binarios (como los que se leen de un objeto GCS) en su forma base64 equivalente. Actualmente, Document AI admite formatos de datos PDF, GIF y TIFF. Necesitamos decirle a Document AI el formato de los datos. Podemos hacer esto de dos formas. La primera es establecer el campo msg.mimeType en el tipo Mime de los datos. Este sería uno de:

  • Solicitud PDF
  • imagen / gif
  • imagen / tiff

Alternativamente, podemos especificar un tipo de datos fijo en las propiedades de configuración del nodo.

Msg.mimeType tiene prioridad sobre el tipo de mime configurado.

Cuando se invoca Document AI, primero debemos haber configurado un procesador Document AI. Cuando hacemos eso, se nos proporciona un valor de ID de procesador. El triple de ID de proyecto, ID de procesador y ubicación donde queremos que se ejecute la AI del documento debe proporcionarse en los parámetros correspondientes.

Después de invocar el nodo Document AI, el resultado se encontrará en la nueva salida msg.payload del nodo. Este es un objeto que corresponde a la estructura de datos de Document AI descrita aquí . Cada uno de los campos devueltos por el documento AI puede ser procesado directamente por los nodos descendentes en el flujo de Nodo-RED.

Cuando se define un procesador de AI de documentos, podemos declarar explícitamente que es un tipo de procesador de formularios. Document AI luego analizará explícitamente los campos de formulario que encuentre en pares de nombre / valor. Esto es extremadamente inteligente del servicio, pero el consumo de datos no es el más fácil. Lo que obtenemos es una lista de estructuras de datos que nos dan los índices de inicio / finalización en el texto sin formato del documento analizado correspondiente a cada nombre y valor de un campo. Normalmente, todavía se requiere trabajo para usar esos valores. Una opción seleccionable en el nodo Documento AI se llama "Extraer campos de formulario". Cuando se selecciona esta opción, cualquier campo de formulario en el documento analizado se procesa y se agrega una nueva matriz de pares de nombre / valor en msg.payload.formFields. Piense en esto como una función de asistencia.

A continuación, se muestra un video que ilustra el uso del nodo Document AI dentro de Node-RED:

Referencias


GCP Document AI y Node-RED se publicaron originalmente en Google Cloud - Community on Medium, donde las personas continúan la conversación destacando y respondiendo a esta historia.