UiPath Documentation
document-understanding
latest
false
Guía de la API de Document Understanding
  • Primeros pasos
    • Información general
    • Límites y cuotas
    • Migrar automatizaciones de la API de Document Understanding v1 a v2
  • Ejemplos de uso de Document Understanding™ Cloud API v1
  • Licencia
  • Solución de problemas
Importante :
La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Crear artefactos para la validación de extracción

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.

Nota:

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.

Importante:

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

  1. Digitaliza el documento.
  2. Extraer datos del documento.
  3. Recupera la taxonomía del proyecto.
  4. Inicia la creación del artefacto.
  5. Sondee hasta que los datos de validación de contenido estén listos.
  6. Crea una tarea de aplicación en Action Center utilizando los datos de validación de contenido.
  7. Completa la validación en la Estación de validación.
  8. Recupera el resultado de la extracción validado.

Requisitos previos

  • Un proyecto de Document Understanding con un modelo de extracción configurado.
  • documentId y extractionResult de una llamada de extracción anterior. Para obtenerlos, sigue la guía Usar las API de digitalización para digitalizar el documento y obtener un documentId y, a continuación, sigue la guía Usar el servicio de extracción para ejecutar la extracción y obtener el extractionResult.
  • 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 deployUnifiedPackage punto 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 proyectoDu.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.
Nota:

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 mismo documentTypeId puede aparecer varias veces si varios extractores de diferentes implementaciones se basan en el mismo tipo de documento. Utiliza el parámetro tag para 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.

Importante:

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:

EstadoSignificado
NotStartedEl trabajo está en cola, pero aún no se está procesando.
RunningLa preparación del artefacto está en curso.
SucceededLos artefactos están listos. Continúa con la creación de la tarea de la aplicación (etapa 6).
FailedError 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"
}
Nota:

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>'
Nota:

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.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado