Anonimizar Documentos, Almacenar la Información y Acceder Vía Web Services
Budget: $250 – $750 USD
Proyecto para Anonimizar Documentos, Almacenar la Información y Acceder Vía Web Services
1. Tipos de Documentos de Entrada:
• El sistema deberá aceptar y procesar los siguientes tipos de documentos:
• Imágenes (especificar formatos aceptados, por ejemplo, JPG, PNG, etc.).
• PDF.
• Documentos de Word (.docx).
• Archivos de texto plano (.txt).
2. Detección y Anonimización de Datos Sensibles:
• Implementar la detección de datos sensibles (nombres, direcciones, números de identificación, etc.) y su anonimización utilizando SpaCy u otra tecnología que ofrezca mejor rendimiento y precisión. La solución debe ser capaz de manejar varios tipos de datos sensibles y debe ser fácilmente configurable para nuevas categorías de datos si es necesario.
3. Almacenamiento en Elasticsearch:
• Toda la información procesada de los documentos deberá ser almacenada en Elasticsearch con los siguientes campos:
• Número de Identificación: Proporcionado a través del API en cada petición.
• Nombre del Documento Fuente: Incluyendo la extensión.
• Ruta del Documento Fuente: Para poder acceder al archivo original.
• Fecha de Anonimización: Para rastrear cuándo se procesó el documento.
• Texto Anonimizado: El texto resultante después de la anonimización.
• Tipo de Asunto (opcional): Campo para categorizar el tipo de asunto del documento.
• Resumen (opcional): Un resumen del contenido del documento.
• La combinación del número de identificación y el nombre del archivo hará único cada registro en Elasticsearch.
4. Procesamiento de Múltiples Documentos:
• El sistema deberá soportar el procesamiento de hasta 10 documentos en una sola petición. Una única solicitud al API puede incluir los nombres y rutas de hasta 10 archivos, los cuales deberán ser procesados y almacenados como registros separados en Elasticsearch pero vinculados por el mismo número de identificación.
5. API en Flask:
• Crear una API RESTful en Flask que ofrezca las siguientes funcionalidades:
• Iniciar la Anonimización: Deberá permitir la anonimización de hasta 10 archivos especificados en una sola petición. Los campos de tipo de asunto y resumen serán opcionales en esta función, permitiendo que, si ya se tienen estos datos, se puedan incluir directamente.
• Consulta de Datos: Deberá incluir endpoints para consultar documentos anonimizados almacenados en Elasticsearch.
• La API debe ser accesible desde aplicaciones externas, especialmente desde una aplicación PHP.
• Incluir un ejemplo de integración con PHP para demostrar la capacidad de la API, asegurando que se puede interactuar con ella de manera efectiva desde otros entornos.
Comentarios Adicionales:
• Gestión de Peticiones: Asegúrate de que la API maneje correctamente peticiones con múltiples archivos, procesando cada uno de manera independiente pero manteniendo el vínculo con el número de identificación proporcionado.
• Identificación Única: Implementa mecanismos para asegurar que la combinación de número de identificación y nombre de archivo se almacena de manera única en Elasticsearch, previniendo duplicados y errores de integración.
1. Tipos de Documentos de Entrada:
• El sistema deberá aceptar y procesar los siguientes tipos de documentos:
• Imágenes (especificar formatos aceptados, por ejemplo, JPG, PNG, etc.).
• PDF.
• Documentos de Word (.docx).
• Archivos de texto plano (.txt).
2. Detección y Anonimización de Datos Sensibles:
• Implementar la detección de datos sensibles (nombres, direcciones, números de identificación, etc.) y su anonimización utilizando SpaCy u otra tecnología que ofrezca mejor rendimiento y precisión. La solución debe ser capaz de manejar varios tipos de datos sensibles y debe ser fácilmente configurable para nuevas categorías de datos si es necesario.
3. Almacenamiento en Elasticsearch:
• Toda la información procesada de los documentos deberá ser almacenada en Elasticsearch con los siguientes campos:
• Número de Identificación: Proporcionado a través del API en cada petición.
• Nombre del Documento Fuente: Incluyendo la extensión.
• Ruta del Documento Fuente: Para poder acceder al archivo original.
• Fecha de Anonimización: Para rastrear cuándo se procesó el documento.
• Texto Anonimizado: El texto resultante después de la anonimización.
• Tipo de Asunto (opcional): Campo para categorizar el tipo de asunto del documento.
• Resumen (opcional): Un resumen del contenido del documento.
• La combinación del número de identificación y el nombre del archivo hará único cada registro en Elasticsearch.
4. Procesamiento de Múltiples Documentos:
• El sistema deberá soportar el procesamiento de hasta 10 documentos en una sola petición. Una única solicitud al API puede incluir los nombres y rutas de hasta 10 archivos, los cuales deberán ser procesados y almacenados como registros separados en Elasticsearch pero vinculados por el mismo número de identificación.
5. API en Flask:
• Crear una API RESTful en Flask que ofrezca las siguientes funcionalidades:
• Iniciar la Anonimización: Deberá permitir la anonimización de hasta 10 archivos especificados en una sola petición. Los campos de tipo de asunto y resumen serán opcionales en esta función, permitiendo que, si ya se tienen estos datos, se puedan incluir directamente.
• Consulta de Datos: Deberá incluir endpoints para consultar documentos anonimizados almacenados en Elasticsearch.
• La API debe ser accesible desde aplicaciones externas, especialmente desde una aplicación PHP.
• Incluir un ejemplo de integración con PHP para demostrar la capacidad de la API, asegurando que se puede interactuar con ella de manera efectiva desde otros entornos.
Comentarios Adicionales:
• Gestión de Peticiones: Asegúrate de que la API maneje correctamente peticiones con múltiples archivos, procesando cada uno de manera independiente pero manteniendo el vínculo con el número de identificación proporcionado.
• Identificación Única: Implementa mecanismos para asegurar que la combinación de número de identificación y nombre de archivo se almacena de manera única en Elasticsearch, previniendo duplicados y errores de integración.