- Primeros pasos
- Ejemplos de uso de Document Understanding™ Cloud API v1
- Ejecutar llamadas a la API
- Autorizar utilizando una aplicación externa y recuperar los recursos disponibles
- Utilizar las API de detección
- Usar las API de digitalización
- Validación de un resultado de clasificación
- Validación de un resultado de extracción
- Crear artefactos para la validación de extracción
- Usa el Data service de eliminación de documento
- Licencia
- Solución de problemas
Crea artefactos de validación de extracción en Document Understanding utilizando las API de artefactos y luego deja que tu aplicación cree una Tarea de aplicación para la validación humana.
Esta característica está en vista previa.
Utiliza las API de artefactos para preparar artefactos de validación de extracción almacenados en depósitos de almacenamiento de Orchestrator. A continuación, tu aplicación utiliza los artefactos para crear una tarea de aplicación para la validación humana, desvinculando la creación de artefactos de la gestión de tareas y dándote control sobre cuándo, dónde y con qué interfaz de usuario se crea la tarea.
Esta característica no está disponible en Sector público de Automation Cloud, porque la creación de aplicaciones no es compatible allí.
Descripción general del flujo de trabajo
- Digitaliza el documento.
- Extraer datos del documento.
- Recupera la taxonomía del proyecto.
- Inicia la creación del artefacto.
- Sondee hasta que los datos de validación de contenido estén listos.
- Crea una tarea de aplicación en Action Center utilizando los datos de validación de contenido.
- Completa la validación en la Estación de validación.
- Recupera el resultado de la extracción validado.
Requisitos previos
- Un proyecto de Document Understanding con un modelo de extracción configurado.
documentIdyextractionResultde una llamada de extracción anterior. Para obtenerlos, sigue la guía Usar las API de digitalización para digitalizar el documento y obtener undocumentIdy, a continuación, sigue la guía Usar el servicio de extracción para ejecutar la extracción y obtener elextractionResult.- Un depósito de almacenamiento y una ruta de directorio accesibles desde tu tenant.
- Una aplicación para alojar la tarea de validación. Puedes implementar la aplicación mediante programación utilizando el
deployUnifiedPackagepunto final de la API de Apps.
Ámbitos OAuth necesarios
Tu aplicación externa debe incluir los siguientes ámbitos. Para obtener instrucciones sobre la configuración de una aplicación externa, consulta Autenticación y autorización.
| API call | Ámbito requerido |
|---|---|
| Recuperar la taxonomía del proyecto | Du.Digitization.Api, Du.Extraction.Api, Du.Classification.Api o Du.Validation.Api |
| Puntos finales de validación (creación de artefactos, sondeo, resultado) | Du.Validation.Api |
Recuperar la taxonomía del proyecto
Recupera la taxonomía para tu proyecto de Document Understanding. Pasa esta taxonomía al iniciar la creación de los artefactos de validación de extracción.
curl -X 'GET' \
'https://{AutomationCloudURL}/<Organization_Name>/<Tenant_Name>/du_/api/framework/projects/<Project_ID>/taxonomy?api-version=2' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>'
curl -X 'GET' \
'https://{AutomationCloudURL}/<Organization_Name>/<Tenant_Name>/du_/api/framework/projects/<Project_ID>/taxonomy?api-version=2' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>'
Respuesta:
{
"documentTaxonomy": {
"dataContractVersion": "1.2",
"documentTypes": [
{
"documentTypeId": "0b1fde93-997d-f011-b481-000d3a207936",
"group": "",
"category": "",
"name": "invoices",
"optionalUniqueIdentifier": "",
"typeField": {
"fieldId": "invoices.DocumentType",
"fieldName": "Document Type"
},
"fields": [
{
"fieldId": "invoices.invoice-no",
"fieldName": "Invoice Number",
"isMultiValue": false,
"type": "Text",
"components": [],
"setValues": [],
"metadata": [],
"ruleSet": null,
"defaultValue": null,
"dataSource": null
}
]
}
],
"groups": [],
"supportedLanguages": ["en"],
"reportAsExceptionSettings": null
}
}
{
"documentTaxonomy": {
"dataContractVersion": "1.2",
"documentTypes": [
{
"documentTypeId": "0b1fde93-997d-f011-b481-000d3a207936",
"group": "",
"category": "",
"name": "invoices",
"optionalUniqueIdentifier": "",
"typeField": {
"fieldId": "invoices.DocumentType",
"fieldName": "Document Type"
},
"fields": [
{
"fieldId": "invoices.invoice-no",
"fieldName": "Invoice Number",
"isMultiValue": false,
"type": "Text",
"components": [],
"setValues": [],
"metadata": [],
"ruleSet": null,
"defaultValue": null,
"dataSource": null
}
]
}
],
"groups": [],
"supportedLanguages": ["en"],
"reportAsExceptionSettings": null
}
}
Formas alternativas de recuperar la taxonomía
También puedes recuperar la taxonomía utilizando los puntos finales de descubrimiento existentes:
GET /projects/{projectId}/extractors/{extractorId}: devuelve la taxonomía de un extractor específico.GET /projects/{projectId}/tags/{tag}/document-types/{documentTypeId}: devuelve la taxonomía para un tipo de documento específico por etiqueta. El filtrado basado en etiquetas no es compatible con los proyectos clásicos de Document Understanding.
Si pasas una taxonomía con ámbito a un extractor o tipo de documento específico, la característica Cambiar tipo de documento no está disponible para el operador durante la validación en la Estación de validación.
El punto final de la taxonomía principal también admite los parámetros de consulta projectVersion y tag. Ten en cuenta lo siguiente al utilizarlo:
- Proyectos modernos: sin el filtrado
tag, el mismodocumentTypeIdpuede aparecer varias veces si varios extractores de diferentes implementaciones se basan en el mismo tipo de documento. Utiliza el parámetrotagpara limitar los resultados a una implementación específica y evitar duplicados. - Proyectos clásicos: no se admite el filtrado de etiquetas. Si existen varios extractores para el mismo tipo de documento, utiliza el punto final específico del extractor (
/projects/{projectId}/extractors/{extractorId}) en su lugar para evitar la ambigüedad.
Iniciar la creación de artefactos de validación de extracción
Envía una solicitud POST para iniciar la creación de artefactos de validación de extracción. Pasa el objeto documentTaxonomy completo recuperado en la llamada anterior.
Se requiere documentTaxonomy. storageBucketName y folderName son opcionales. Si no especificas folderName, el valor predeterminado es la carpeta Shared.
Las carpetas de depósitos de almacenamiento dentro de tu espacio de trabajo personal no son compatibles.
curl -X 'POST' \
'https://{AutomationCloudURL}/<Organization_Name>/<Tenant_Name>/du_/api/framework/extraction-validation/artifacts/start?api-version=2' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"documentId": "25a03e48-cfe8-ed11-9f75-000d3a4964af",
"extractionResult": {
"documentId": "25a03e48-cfe8-ed11-9f75-000d3a4964af",
"resultsVersion": 0,
"resultsDocument": {
"documentTypeId": "0b1fde93-997d-f011-b481-000d3a207936",
"documentTypeName": "invoices",
"fields": [
{
"fieldId": "invoices.invoice-no",
"fieldName": "Invoice Number",
"type": "Text",
"isMissing": false,
"dataSource": "Automatic",
"values": [
{
"value": "181038",
"confidence": 0.98,
"operatorConfirmed": false
}
]
}
]
}
},
"documentTaxonomy": {
"dataContractVersion": "1.2",
"documentTypes": [
{
"documentTypeId": "0b1fde93-997d-f011-b481-000d3a207936",
"name": "invoices",
"fields": [
{
"fieldId": "invoices.invoice-no",
"fieldName": "Invoice Number",
"type": "Text"
}
]
}
],
"groups": [],
"supportedLanguages": ["en"],
"reportAsExceptionSettings": null
},
"storageBucketName": "du_storage_bucket",
"storageBucketDirectoryPath": "du_storage_bucket"
}'
curl -X 'POST' \
'https://{AutomationCloudURL}/<Organization_Name>/<Tenant_Name>/du_/api/framework/extraction-validation/artifacts/start?api-version=2' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"documentId": "25a03e48-cfe8-ed11-9f75-000d3a4964af",
"extractionResult": {
"documentId": "25a03e48-cfe8-ed11-9f75-000d3a4964af",
"resultsVersion": 0,
"resultsDocument": {
"documentTypeId": "0b1fde93-997d-f011-b481-000d3a207936",
"documentTypeName": "invoices",
"fields": [
{
"fieldId": "invoices.invoice-no",
"fieldName": "Invoice Number",
"type": "Text",
"isMissing": false,
"dataSource": "Automatic",
"values": [
{
"value": "181038",
"confidence": 0.98,
"operatorConfirmed": false
}
]
}
]
}
},
"documentTaxonomy": {
"dataContractVersion": "1.2",
"documentTypes": [
{
"documentTypeId": "0b1fde93-997d-f011-b481-000d3a207936",
"name": "invoices",
"fields": [
{
"fieldId": "invoices.invoice-no",
"fieldName": "Invoice Number",
"type": "Text"
}
]
}
],
"groups": [],
"supportedLanguages": ["en"],
"reportAsExceptionSettings": null
},
"storageBucketName": "du_storage_bucket",
"storageBucketDirectoryPath": "du_storage_bucket"
}'
Respuesta: proporciona operationId y las URL para las siguientes dos llamadas:
{
"operationId": "7c320dfc-a1b2-4c3d-8e9f-000d3a4964af",
"artifactsUrl": "https://{AutomationCloudURL}/<Organization_Name>/<Tenant_Name>/du_/api/framework/extraction-validation/artifacts/content-validation-data/7c320dfc-a1b2-4c3d-8e9f-000d3a4964af?api-version=2",
"resultUrl": "https://{AutomationCloudURL}/<Organization_Name>/<Tenant_Name>/du_/api/framework/extraction-validation/artifacts/validation-result/7c320dfc-a1b2-4c3d-8e9f-000d3a4964af?api-version=2"
}
{
"operationId": "7c320dfc-a1b2-4c3d-8e9f-000d3a4964af",
"artifactsUrl": "https://{AutomationCloudURL}/<Organization_Name>/<Tenant_Name>/du_/api/framework/extraction-validation/artifacts/content-validation-data/7c320dfc-a1b2-4c3d-8e9f-000d3a4964af?api-version=2",
"resultUrl": "https://{AutomationCloudURL}/<Organization_Name>/<Tenant_Name>/du_/api/framework/extraction-validation/artifacts/validation-result/7c320dfc-a1b2-4c3d-8e9f-000d3a4964af?api-version=2"
}
Sondeo de disponibilidad de artefactos
Envía solicitudes GET al artifactsUrl devuelto al iniciar la creación del artefacto, hasta que el estado sea Succeeded o Failed.
curl -X 'GET' \
'https://{AutomationCloudURL}/<Organization_Name>/<Tenant_Name>/du_/api/framework/extraction-validation/artifacts/content-validation-data/<operationId>?api-version=2' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>'
curl -X 'GET' \
'https://{AutomationCloudURL}/<Organization_Name>/<Tenant_Name>/du_/api/framework/extraction-validation/artifacts/content-validation-data/<operationId>?api-version=2' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>'
La respuesta devuelve uno de los cuatro estados:
| Estado | Significado |
|---|---|
NotStarted | El trabajo está en cola, pero aún no se está procesando. |
Running | La preparación del artefacto está en curso. |
Succeeded | Los artefactos están listos. Continúa con la creación de la tarea de la aplicación (etapa 6). |
Failed | Error en la preparación del artefacto. Consulta error.code para obtener más información. |
Respuesta cuando los artefactos están listos:
{
"contentValidationData": {
"bucketName": "du_storage_bucket",
"bucketId": 261151,
"folderId": 810789,
"folderKey": "4c6ff0e2-0a05-4ce1-9508-7102b977bd58",
"documentId": "25a03e48-cfe8-ed11-9f75-000d3a4964af",
"encodedDocumentPath": "du_storage_bucket/7c320dfc-.../encoded.zip",
"textPath": "du_storage_bucket/7c320dfc-.../text.zip",
"documentObjectModelPath": "du_storage_bucket/7c320dfc-.../dom.zip",
"taxonomyPath": "du_storage_bucket/7c320dfc-.../taxonomy.zip",
"automaticExtractionResultsPath": "du_storage_bucket/7c320dfc-.../input_results.zip",
"validatedExtractionResultsPath": "du_storage_bucket/7c320dfc-.../output_results.zip",
"customizationInfoPath": "du_storage_bucket/7c320dfc-.../customization_info.zip"
},
"status": "Succeeded",
"createdAt": "2026-04-28T10:00:00Z",
"lastUpdatedAt": "2026-04-28T10:00:05Z"
}
{
"contentValidationData": {
"bucketName": "du_storage_bucket",
"bucketId": 261151,
"folderId": 810789,
"folderKey": "4c6ff0e2-0a05-4ce1-9508-7102b977bd58",
"documentId": "25a03e48-cfe8-ed11-9f75-000d3a4964af",
"encodedDocumentPath": "du_storage_bucket/7c320dfc-.../encoded.zip",
"textPath": "du_storage_bucket/7c320dfc-.../text.zip",
"documentObjectModelPath": "du_storage_bucket/7c320dfc-.../dom.zip",
"taxonomyPath": "du_storage_bucket/7c320dfc-.../taxonomy.zip",
"automaticExtractionResultsPath": "du_storage_bucket/7c320dfc-.../input_results.zip",
"validatedExtractionResultsPath": "du_storage_bucket/7c320dfc-.../output_results.zip",
"customizationInfoPath": "du_storage_bucket/7c320dfc-.../customization_info.zip"
},
"status": "Succeeded",
"createdAt": "2026-04-28T10:00:00Z",
"lastUpdatedAt": "2026-04-28T10:00:05Z"
}
El contentValidationData objeto contiene las rutas del depósito de almacenamiento de Orchestrator necesarias para abrir el documento en la estación de validación. La Estación de validación utiliza el modo compacto para los flujos de Tareas de aplicación; el modo clásico no está disponible para este flujo.
Respuesta cuando aún se está procesando:
{
"status": "Running",
"createdAt": "2026-04-28T10:00:00Z",
"lastUpdatedAt": "2026-04-28T10:00:02Z"
}
{
"status": "Running",
"createdAt": "2026-04-28T10:00:00Z",
"lastUpdatedAt": "2026-04-28T10:00:02Z"
}
Recuperar el resultado de extracción validado
Llama a este punto final después de que el operador humano haya completado la validación en la estación de validación (etapas 6-7). Envía una solicitud GET al resultUrl devuelto al iniciar la creación del artefacto.
curl -X 'GET' \
'https://{AutomationCloudURL}/<Organization_Name>/<Tenant_Name>/du_/api/framework/extraction-validation/artifacts/validation-result/<operationId>?api-version=2' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>'
curl -X 'GET' \
'https://{AutomationCloudURL}/<Organization_Name>/<Tenant_Name>/du_/api/framework/extraction-validation/artifacts/validation-result/<operationId>?api-version=2' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>'
Si la tarea de Action Center aún no se ha completado (las etapas 6 y 7 aún no se han completado), el punto final devuelve 200 con un resultado vacío:
{
"result": {}
}
{
"result": {}
}
Respuesta cuando se completa la validación:
{
"result": {
"validatedExtractionResults": {
"documentId": "25a03e48-cfe8-ed11-9f75-000d3a4964af",
"resultsVersion": 1,
"resultsDocument": {
"documentTypeId": "0b1fde93-997d-f011-b481-000d3a207936",
"documentTypeName": "invoices",
"fields": [
{
"fieldId": "invoices.invoice-no",
"fieldName": "Invoice Number",
"type": "Text",
"isMissing": false,
"dataSource": "Automatic",
"values": [
{
"value": "181038",
"confidence": 1,
"operatorConfirmed": true
}
],
"operatorConfirmed": true
}
]
}
}
}
}
{
"result": {
"validatedExtractionResults": {
"documentId": "25a03e48-cfe8-ed11-9f75-000d3a4964af",
"resultsVersion": 1,
"resultsDocument": {
"documentTypeId": "0b1fde93-997d-f011-b481-000d3a207936",
"documentTypeName": "invoices",
"fields": [
{
"fieldId": "invoices.invoice-no",
"fieldName": "Invoice Number",
"type": "Text",
"isMissing": false,
"dataSource": "Automatic",
"values": [
{
"value": "181038",
"confidence": 1,
"operatorConfirmed": true
}
],
"operatorConfirmed": true
}
]
}
}
}
}
Resultado
Una respuesta 200 que contiene validatedExtractionResults confirma que la validación de la extracción está completa. El marcador operatorConfirmed: true en cada campo indica que el resultado ha sido validado.
- Descripción general del flujo de trabajo
- Requisitos previos
- Ámbitos OAuth necesarios
- Recuperar la taxonomía del proyecto
- Formas alternativas de recuperar la taxonomía
- Iniciar la creación de artefactos de validación de extracción
- Sondeo de disponibilidad de artefactos
- Recuperar el resultado de extracción validado
- Resultado