Automatización de la clasificación de documentos en Azure
En este artículo se describe una arquitectura que puede usar para procesar varios documentos. La arquitectura usa la función Durable Functions de Azure Functions para implementar canalizaciones. Las canalizaciones procesan documentos a través de Azure AI Document Intelligence para la división de documentos, el reconocimiento de entidades con nombre (NER) y la clasificación. El contenido del documento y los metadatos se usan para el procesamiento de lenguaje natural basado en lenguaje natural (NLP) de generación aumentada de recuperación (RAG).
Arquitectura
Descargue un archivo Visio de esta arquitectura.
Flujo de trabajo
Un usuario carga el archivo de un documento en una aplicación web. El archivo contiene varios documentos incrustados de varios tipos, como archivos PDF o formato de archivo de imagen de varias páginas (TIFF). El archivo de los documentos se almacena en Azure Blob Storage (1a). Para iniciar el procesamiento de canalizaciones, la aplicación web agrega un mensaje de comando a una cola de Azure Service Bus (1b).
El mensaje del comando activa la orquestación de Durable Functions. El mensaje contiene metadatos que identifican la ubicación en Blob Storage del archivo de documentos que se va a procesar. Cada instancia de Durable Functions procesa solo un archivo de documentos.
La función de actividad analyze llama a la API de Documento de inteligencia de Azure AI, que pasa la ubicación de almacenamiento del archivo de documentos que se va a procesar. La función analyze lee e identifica cada documento dentro del archivo de documentos. Esta función devuelve el nombre, el tipo, los intervalos de páginas y el contenido de cada documento incrustado en el entorno de orquestación.
La función de actividad metadata store guarda la información del tipo de documento, la ubicación y del intervalo de páginas de cada documento en un almacén de Azure Cosmos DB.
La de inserción función de actividad usa kernel semántico para fragmentar cada documento y crear incrustaciones para cada fragmento. Las incrustaciones y el contenido asociado se envían a Azure AI Search y se almacenan en un índice habilitado para vectores. También se agrega un identificador de correlación al documento de búsqueda para que se puedan buscar coincidencias de los resultados de la búsqueda con los metadatos del documento correspondientes de Azure Cosmos DB.
El kernel semántico recupera las incrustaciones del almacén de vectores de búsqueda de IA para NLP.
Los usuarios pueden chatear con sus datos mediante NLP. Esta conversación se basa en los datos con base recuperados del almacén de vectores. Para buscar registros de documentos que están en Azure Cosmos DB, los usuarios usan identificadores de correlación incluidos en el conjunto de resultados de búsqueda. Los registros incluyen vínculos al archivo de documentos original en Blob Storage.
Componentes
Durable Functions es una función de Azure Functions que permite usar funciones con estado en un entorno de proceso sin servidor. En esta arquitectura, un mensaje de una cola de Service Bus desencadena una instancia de Durable Functions. A continuación, esta instancia inicia y organiza la canalización de procesamiento de documentos.
Azure Cosmos DB es una base de datos de varios modelos distribuida globalmente que puede usar en las soluciones para escalar el rendimiento y la capacidad de almacenamiento en cualquier número de regiones geográficas. Los Acuerdos de Nivel de Servicio (SLA) integrales garantizan el rendimiento, la latencia, la disponibilidad y la coherencia. Esta arquitectura usa Azure Cosmos DB como almacén de metadatos de la información de clasificación de documentos.
Azure Storage es un conjunto de servicios en la nube seguros y escalables de forma masiva para datos, aplicaciones y cargas de trabajo. Incluye Blob Storage, Azure Files, Azure Table Storage y Azure Queue Storage. Esta arquitectura usa Blob Storage para almacenar los archivos de documentos que carga el usuario y que procesa la canalización de Durable Functions.
Service Bus es un agente de mensajes de empresa totalmente administrado con colas de mensajes y temas de publicación y suscripción. Esta arquitectura usa Service Bus para desencadenar instancias de Durable Functions.
Azure App Service aporta una plataforma de trabajo para compilar, implementar y escalar aplicaciones web. La función Web Apps de Azure App Service es una herramienta basada en HTTP que sirve para hospedar aplicaciones web, API REST y back-ends móviles. Utilice Web Apps para desarrollar en .NET, .NET Core, Java, Ruby, Node.js, PHP o Python. Las aplicaciones se pueden ejecutar y escalar fácilmente en entornos basados en Windows y basados en Linux. En esta arquitectura, los usuarios interactúan con el sistema de procesamiento de documentos a través de una aplicación web hospedada en App Service.
La inteligencia de documentos es un servicio que puede usar para extraer información de los documentos, formularios e imágenes. Esta arquitectura usa La inteligencia de documentos para analizar los archivos de documento y extraer los documentos incrustados junto con el contenido y la información de metadatos.
Ai Search proporciona una experiencia de búsqueda enriquecida para contenido privado, diverso en aplicaciones web, móviles y empresariales. Esta arquitectura usa el almacenamiento de vectores de búsqueda de IA para indexar incrustaciones del contenido del documento extraído y la información de metadatos para que los usuarios puedan buscar y recuperar documentos mediante NLP.
kernel semántico es un marco que puede usar para integrar modelos de lenguaje grandes (LLM) en las aplicaciones. Esta arquitectura usa kernel semántico para crear incrustaciones para el contenido del documento y la información de metadatos, que se almacenan en la búsqueda de IA.
azure OpenAI Service proporciona acceso a los modelos eficaces de OpenAI. Esta arquitectura usa Azure OpenAI para proporcionar una interfaz de lenguaje natural para que los usuarios interactúen con el sistema de procesamiento de documentos.
Alternativas
Para facilitar la distribución global, esta solución almacena los metadatos en Azure Cosmos DB. Azure SQL Database es otra opción para el almacenamiento persistente de los metadatos y la información de los documentos.
Para desencadenar instancias de Durable Functions, puede usar otras plataformas de mensajería, como Azure Event Grid.
El kernel semántico es una de las varias opciones para crear incrustaciones. También puede usar azure Machine Learning o servicios de Azure AI para crear incrustaciones.
Para proporcionar una interfaz de lenguaje natural para los usuarios, puede usar otros modelos de lenguaje en Azure AI Foundry. La plataforma admite varios modelos de diferentes proveedores, como Mistral, Meta, Cohere y Hugging Face.
Detalles del escenario
En esta arquitectura, las canalizaciones identifican los documentos de un archivo de documentos, los clasifican por tipo y almacenan la información para usarla en el procesamiento posterior.
Muchas empresas necesitan administrar y procesar documentos que examinan de forma masiva y que contienen varios tipos de documentos diferentes, como archivos PDF o imágenes TIFF de varias páginas. Estos documentos se pueden originar fuera de la organización y la empresa receptora no controla el formato.
Debido a estas restricciones, las organizaciones deben crear sus propias soluciones de análisis de documentos que pueden incluir tecnología personalizada y procesos manuales. Por ejemplo, alguien podría separar manualmente cada uno de los tipos de documentos y agregar criterios de clasificación en cada documento.
Muchas de estas soluciones personalizadas se basan en el patrón de flujo de trabajo de la máquina de estados. Las soluciones usan sistemas de base de datos para conservar el estado del flujo de trabajo y utilizan servicios de inspección que comprueban los estados que necesitan procesar. Si se mantienen y mejoran estas soluciones, se puede aumentar la complejidad y la eficacia.
Las organizaciones necesitan soluciones fiables, escalables y resistentes para procesar y administrar la identificación y clasificación de los documentos en los tipos de documentos de la organización. Esta solución puede procesar millones de documentos al día con observabilidad total del éxito o error de la canalización de procesamiento.
NLP permite a los usuarios interactuar con el sistema de forma conversacional. Los usuarios pueden formular preguntas sobre los documentos y recibir respuestas basadas en el contenido de los documentos.
Posibles casos de uso
Puede usar esta solución para:
Títulos de informe. Muchas organismos gubernamentales y autoridades locales gestionan los registros en papel que no tienen un formato digital. Una solución automatizada eficaz puede generar un archivo que contenga todos los documentos necesarios para atender una solicitud de documento.
Administrar registros de mantenimiento. Es posible que tenga que escanear y enviar registros en papel, como registros de mantenimiento de aeronaves, locomotoras y maquinaria, a organizaciones externas.
Permisos de procesos. Los departamentos de permisos de ciudades y provincias siguen conservando documentos en papel que se generan para los informes de inspección de permisos. Puede hacer una fotografía de varios documentos de inspección e identificar, clasificar y buscar automáticamente en estos registros.
Analice planosgramas. Las empresas minoristas y de bienes de consumo administran el inventario y el cumplimiento a través del análisis del planograma de la estantería de la tienda. Puede tomar una foto de un estante de la tienda y extraer información de etiquetas de diferentes productos para identificar, clasificar y cuantificar automáticamente la información del producto.
Consideraciones
Estas consideraciones implementan los pilares del Azure Well-Architected Framework, que es un conjunto de principios rectores que puede utilizar para mejorar la calidad de una carga de trabajo. Para obtener más información, consulte Well-Architected Framework.
Confiabilidad
La confiabilidad ayuda a garantizar que la aplicación pueda cumplir los compromisos que realice para sus clientes. Para obtener más información, consulte Lista de comprobación de revisión de diseño para confiabilidad.
Una carga de trabajo fiable destaca por su resistencia y disponibilidad. La resistencia es la capacidad de un sistema de recuperarse de los errores y seguir funcionando. El objetivo de la resistencia es devolver la aplicación a un estado plenamente operativo después de un error. La disponibilidad se calcula según la posibilidad de que los usuarios accedan a su carga de trabajo cuando lo necesiten.
Para garantizar la confiabilidad y disponibilidad en los puntos de conexión de Azure OpenAI, considere la posibilidad de usar una puerta de enlace de API generativa para varias implementaciones o instancias de Azure OpenAI. El equilibrador de carga de back-end admite el equilibrio de carga basado en round robin, ponderado y prioritario. Esta característica ofrece flexibilidad para definir una estrategia de distribución de carga de Azure OpenAI que cumpla sus requisitos específicos.
Para más información sobre la confiabilidad en los componentes de la solución, consulte Información del Acuerdo de Nivel de Servicio para los servicios en línea de Azure.
Optimización de costos
La optimización de costos se centra en formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la optimización de costes.
Los costos más significativos de esta arquitectura son el uso de tokens del modelo de Azure OpenAI, el procesamiento de imágenes de Document Intelligence y los requisitos de capacidad de índice en AI Search.
Cómo optimizar costes:
Use las unidades de rendimiento aprovisionadas (PTU) y las reservas de servicio para ahorrar costos predecibles de inteligencia artificial en lugar del consumo basado en tokens.
Planifique las implementaciones regionales y la programación de escalado vertical de las operaciones en AI Search.
Use los precios del plan de compromiso para Document Intelligence para administrar los costos predecibles.
Use directivas de ciclo de vida y capacidad reservada para cambiar el tamaño de las cuentas de almacenamiento.
Use la estrategia de pago por uso para la arquitectura y escale horizontalmente según sea necesario en lugar de invertir en recursos a gran escala al principio. A medida que la solución madura, puede usar reservas de App Service para ayudar a reducir los costos cuando corresponda.
Recuerde que debe tener en cuenta los costes de oportunidad en la arquitectura y llegar a un equilibrio entre la ventaja de la estrategia de realizar el primer movimiento y la de realizar un seguimiento rápido. Para calcular tanto el coste inicial como los costos operativos, use la calculadora de precios.
Fije los presupuestos y controles que establezcan los límites de costes de la solución. Para crear una previsión y las alertas por costes reales, use las alertas de presupuesto.
Eficiencia del rendimiento
La eficiencia del rendimiento hace referencia a la capacidad de escalado de la carga de trabajo para satisfacer las demandas de los usuarios de forma eficaz. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la eficiencia del rendimiento.
Esta solución puede generar pueden cuellos de botella de rendimiento cuando se procesan grandes volúmenes de datos. Para garantizar una eficiencia de rendimiento adecuada para la solución, asegúrese de comprender y planear las opciones de escalado de Azure Functions, el escalado automático de los servicios de IA y la creación de particiones de Azure Cosmos DB.
Las PTU de Azure OpenAI proporcionan un rendimiento y disponibilidad garantizados, junto con implementaciones globales. Estas implementaciones usan la infraestructura global de Azure para enrutar dinámicamente el tráfico de los clientes al centro de datos que tiene la mejor disponibilidad para las solicitudes de inferencia del cliente.
Colaboradores
Microsoft mantiene este artículo. Los colaboradores siguientes escribieron este artículo.
Autor principal:
- Kevin Kraus | Especialista principal de Azure Technical
Otros colaboradores:
- Brian Swiger | Especialista principal de Azure Technical
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.
Pasos siguientes
Artículos de información general:
- ¿Qué es Blob Storage?
- ¿Qué es Service Bus?
- ¿Qué es Durable Functions?
- ¿Qué es Azure AI Foundry?
- ¿Qué es Azure OpenAI?
- ¿Qué es Document Intelligence?
- ¿Qué es ai Search?
- ¿Qué es el almacenamiento de vectores de búsqueda de IA?
- Introducción a App Service
- Introducción a Azure Cosmos DB
Documentación del producto:
- Documentación de Azure sobre todos los productos
- Documentación de Durable Functions
- Documentación de Azure OpenAI
- Documentación de Inteligencia Documental
- Documentación de AI Search
- documentación de Azure AI Foundry
- documentación del kernel semántico de