Hola, Hoy te quiero contar de un servicio de AWS que me ha gustado mucho luego de usarlo en el trabajo por algún tiempo. En el proyecto en el que trabajo necesitábamos crear un pipeline de ingestión de documentos PDF para hacer OCR (Optical Character Recognition) es decir obtener el texto de los documentos, muchos de estos documentos son escaneados. Y luego generar un PDF con el texto extraído encima del documento original para poder seleccionar el texto. También usamos este texto para insertar en un índice para realizar búsquedas. Para esto hay que coordinar algunos servicios de AWS, entre ellos para hacer OCR usamos textract que recibe como entrada un PDF o imagen y genera un archivo JSON con toda la información de texto encontrado y en que posición en la página. Para generar un PDF con texto usamos una librería en pyhon PyMuPDF para tomar el resultado de textract y escribir el nuevo PDF. Y una función para crear los registros a insertar en OpenSearch. Y adicionalmente hay que tomar en cuenta que las llamadas API de textract son asíncronas, es decir que hacemos la llamada e inmediatamente nos devuelve un id con el cual se tiene que verificar el resultado después de un tiempo. Y cuando esté completo se puede descargar el resultado. Para orquestar todo este trabajo usamos Step Functions este servicio nos permite definir un flujo de operaciones. Cada parte del flujo se llama Step y se puede también hacer steps paralelos si el flujo lo necesita. Cada paso puede ser por ejemplo una función lambda. U otro flujo. De esta manera creamos algunos lambda que no saben el uno del otro, pero que se coordina su ejecución con los flujos de operaciones. Esto permite que algunos pasos puedan tomar mucho tiempo, y la secuencia puede continuar incluso luego de días. También se puede coordinar con una intervención manual para que una persona tome una decisión y se ejecute un path diferente en el flujo. Si has tenido que crear proyectos similares coméntame cuál fue el enfoque que usaste. |
Soy de Quito Ecuador, he trabajado en el área de desarrollo de software por más de 17 años. He trabajado como empleado y proveedor en empresas de distintos sectores como telecomunicaciones, banca, salud, legal, transporte, recursos humanos y nómina entre otros. Publico semanalmente tips y artículos de interés en el área de desarrollo de software.
Hola, esta semana leí un post que resonó mucho en mí, y pensé en compartirlo. El autor Greg Navis en su blog The Architecture No One Needs habla de aplicaciones de única página o SPA que en teoría deberían ayudar al desarrollo de un producto de software, pero que en general no cumplen lo que prometen y solo aumentan los costos asociados al desarrollo. Obviamente hay casos en los que este tipo de aplicaciones tienen sentido, ya que se requiere muchas interacciones en tiempo real con los...
Hola, hace poco me topé con este titular: "Prison. Bankruptcy. Suicide. How a software glitch and a centuries-old British company ruined lives" Este es el link del artículo https://edition.cnn.com/2024/01/13/business/uk-post-office-fujitsu-horizon-scandal/index.html Como desarrolladores de software al estar en contacto con bugs en software de forma frecuente lo asumimos como propio de la profesión, que siempre trataremos de hacer que funcione bien, pero como humanos no somos perfectos y que...
Hola, Reader. Ha pasado algún tiempo desde mi último mensaje. Espero poder volver a hacerlo semanalmente. Para los nuevos suscriptores generalmente escribo tips acerca del desarrollo de software que sean de utilidad en su día a día. Hoy quiero compartir una nueva herramienta que se ha vuelto mi primera opción el momento de desplegar una aplicación web. Para aplicaciones pequeñas en las que todos los componentes pueden ser instalados en un solo servidor (app, bd, web, etc) y solo se necesita...