Inicio rápido: API de REST de Comprensión del contenido de Azure AI
Iniciar a usar la versión preliminar más reciente de la API de REST de Comprensión del contenido de Azure AI (2024-12-01-versión preliminar).
La comprensión de contenidos de Azure AI es un nuevo Servicio de Azure AIasado en IA generativa que analiza archivos de cualquier modalidad (documentos, imágenes, vídeos y audio) y extrae resultados estructurados en formatos de campo definidos por el usuario.
Integre el servicio de comprensión de contenidos en sus flujos de trabajo y aplicaciones fácilmente mediante una llamada a nuestras API de REST.
Este inicio rápido le guía a través del uso de la API de REST de Comprensión de Contenidos para crear un analizador personalizado y extraer contenido y campos de la entrada.
Requisitos previos
Para empezar, necesita Una suscripción de Azure activa. Si no tiene una cuenta de Azure, puede crear una suscripción gratuita.
Una vez que tenga la suscripción de Azure, cree un Recurso de Servicios de Azure AI en Azure Portal. Este recurso de varios servicios permite el acceso a varios servicios de Azure AI con un único conjunto de credenciales.
Este recurso aparece en Servicios de Azure AI → Servicios de Azure AI en el portal.
Importante
Azure proporciona más de un tipo de recurso denominado servicios de Azure AI. Asegúrese de seleccionar la que aparece en Servicios de Azure AI → Servicios de Azure AI, tal como se muestra en la imagen siguiente. Para más información, vea Creación de un recurso de Servicios de Azure AI.
En este inicio rápido, usamos la herramienta de línea de comandos cURL. Si no está instalado, puede descargar una versión para el entorno de desarrollo:
Creación de un analizador personalizado
Para crear un analizador personalizado, debe definir un esquema de campo que describa los datos estructurados que desea extraer. En el ejemplo siguiente, definimos un esquema para extraer información básica de un documento de factura.
En primer lugar, cree un archivo JSON denominado request_body.json
con el siguiente contenido:
{
"description": "Sample invoice analyzer",
"scenario": "document",
"config": {
"returnDetails": true
},
"fieldSchema": {
"fields": {
"VendorName": {
"type": "string",
"method": "extract",
"description": "Vendor issuing the invoice"
},
"Items": {
"type": "array",
"method": "extract",
"items": {
"type": "object",
"properties": {
"Description": {
"type": "string",
"method": "extract",
"description": "Description of the item"
},
"Amount": {
"type": "number",
"method": "extract",
"description": "Amount of the item"
}
}
}
}
}
}
}
Antes de ejecutar los siguientes comandos de cURL
, realice los siguientes cambios en la solicitud HTTP:
- Reemplace
{endpoint}
y{key}
por los valores de punto de conexión y clave de la instancia de Servicios de Azure AI de Azure Portal. - Reemplace
{analyzerId}
por el nombre del nuevo analizador y cree, comomyInvoice
.
Solicitud PUT
curl -i -X PUT "{endpoint}/contentunderstanding/analyzers/{analyzerId}?api-version=2024-12-01-preview" \
-H "Ocp-Apim-Subscription-Key: {key}" \
-H "Content-Type: application/json" \
-d @request_body.json
Respuesta PUT
La respuesta 201 (Created
) incluye un encabezado Operation-Location
que contiene una dirección URL que puede usar para realizar un seguimiento del estado de esta operación de creación asincrónica.
201 Created
Operation-Location: {endpoint}/contentunderstanding/analyzers/{analyzerId}/operations/{operationId}?api-version=2024-12-01-preview
Tras finalizar, la realización de un HTTP GET en la dirección URL devuelve "status": "succeeded"
.
curl -i -X GET "{endpoint}/contentunderstanding/analyzers/{analyzerId}/operations/{operationId}?api-version=2024-12-01-preview" \
-H "Ocp-Apim-Subscription-Key: {key}"
Análisis de un archivo
Puede analizar archivos mediante el analizador personalizado que creó para extraer los campos definidos en el esquema.
Antes de ejecutar el comando cURL, realice los cambios siguientes en la solicitud HTTP:
- Reemplace
{endpoint}
y{key}
por los valores de punto de conexión y clave de la instancia de Servicios de Azure AI de Azure Portal. - Reemplace
{analyzerId}
por el nombre del analizador personalizado creado anteriormente. - Reemplace
{fileUrl}
por una dirección URL de acceso público del archivo que se va a analizar, como una ruta de acceso a un Azure Storage Blob con una firma de acceso compartido (SAS) o la dirección URL de ejemplohttps://github.com/Azure-Samples/cognitive-services-REST-api-samples/raw/master/curl/form-recognizer/rest-api/invoice.pdf
.
Solicitud POST
curl -i -X POST "{endpoint}/contentunderstanding/analyzers/{analyzerId}:analyze?api-version=2024-12-01-preview" \
-H "Ocp-Apim-Subscription-Key: {key}" \
-H "Content-Type: application/json" \
-d "{\"url\":\"{fileUrl}\"}"
Respuesta de POST
La respuesta 202 (Accepted
) incluye un encabezado Operation-Location
que contiene una dirección URL que puede usar para realizar un seguimiento del estado de esta operación de análisis asincrónica.
202 Accepted
Operation-Location: {endpoint}/contentunderstanding/analyzers/{analyzerId}/results/{resultId}?api-version=2024-12-01-preview
Obtención del resultado de análisis
Use el resultId
del encabezado Operation-Location
devuelto por la respuesta POST
anterior y recupere el resultado del análisis.
- Reemplace
{endpoint}
y{key}
por los valores de punto de conexión y clave de la instancia de Servicios de Azure AI de Azure Portal. - Reemplace
{analyzerId}
por el nombre del analizador personalizado creado anteriormente. - Reemplace
{resultId}
por elresultId
devuelto de la solicitud dePOST
.
Solicitud GET
curl -i -X GET "{endpoint}/contentunderstanding/analyzers/{analyzerId}/results/{resultId}?api-version=2024-12-01-preview" \
-H "Ocp-Apim-Subscription-Key: {key}"
Respuesta GET
La respuesta JSON 200 (OK
) incluye un campo status
que indica el estado de la operación. Si la operación no se completa, el valor de status
es running
o notStarted
. En tales casos, debe llamar a la API de nuevo, ya sea manualmente o a través de un script. Espere un intervalo de un segundo o más entre llamadas.
Respuesta de muestra
{
"id": "bcf8c7c7-03ab-4204-b22c-2b34203ef5db",
"status": "Succeeded",
"result": {
"analyzerId": "sample_invoice_analyzer",
"apiVersion": "2024-12-01-preview",
"createdAt": "2024-11-13T07:15:46Z",
"warnings": [],
"contents": [
{
"markdown": "CONTOSO LTD.\n\n\n# INVOICE\n\nContoso Headquarters...",
"fields": {
"VendorName": {
"type": "string",
"valueString": "CONTOSO LTD.",
"spans": [ { "offset": 0, "length": 12 } ],
"confidence": 0.941,
"source": "D(1,0.5729,0.6582,2.3353,0.6582,2.3353,0.8957,0.5729,0.8957)"
},
"Items": {
"type": "array",
"valueArray": [
{
"type": "object",
"valueObject": {
"Description": {
"type": "string",
"valueString": "Consulting Services",
"spans": [ { "offset": 909, "length": 19 } ],
"confidence": 0.971,
"source": "D(1,2.3264,5.673,3.6413,5.673,3.6413,5.8402,2.3264,5.8402)"
},
"Amount": {
"type": "number",
"valueNumber": 60,
"spans": [ { "offset": 995, "length": 6 } ],
"confidence": 0.989,
"source": "D(1,7.4507,5.6684,7.9245,5.6684,7.9245,5.8323,7.4507,5.8323)"
}
}
}, ...
]
}
},
"kind": "document",
"startPageNumber": 1,
"endPageNumber": 1,
"unit": "inch",
"pages": [
{
"pageNumber": 1,
"angle": -0.0039,
"width": 8.5,
"height": 11,
"spans": [ { "offset": 0, "length": 1650 } ],
"words": [
{
"content": "CONTOSO",
"span": { "offset": 0, "length": 7 },
"confidence": 0.997,
"source": "D(1,0.5739,0.6582,1.7446,0.6595,1.7434,0.8952,0.5729,0.8915)"
}, ...
],
"lines": [
{
"content": "CONTOSO LTD.",
"source": "D(1,0.5734,0.6563,2.335,0.6601,2.3345,0.8933,0.5729,0.8895)",
"span": { "offset": 0, "length": 12 }
}, ...
]
}
],
"paragraphs": [
{
"content": "CONTOSO LTD.",
"source": "D(1,0.5734,0.6563,2.335,0.6601,2.3345,0.8933,0.5729,0.8895)",
"span": { "offset": 0, "length": 12 }
}, ...
],
"sections": [
{
"span": { "offset": 0, "length": 1649 },
"elements": [ "/sections/1", "/sections/2" ]
},
{
"span": { "offset": 0, "length": 12 },
"elements": [ "/paragraphs/0" ]
}, ...
],
"tables": [
{
"rowCount": 2,
"columnCount": 6,
"cells": [
{
"kind": "columnHeader",
"rowIndex": 0,
"columnIndex": 0,
"rowSpan": 1,
"columnSpan": 1,
"content": "SALESPERSON",
"source": "D(1,0.5389,4.5514,1.7505,4.5514,1.7505,4.8364,0.5389,4.8364)",
"span": { "offset": 512, "length": 11 },
"elements": [ "/paragraphs/19" ]
}, ...
],
"source": "D(1,0.4885,4.5543,8.0163,4.5539,8.015,5.1207,0.4879,5.1209)",
"span": { "offset": 495, "length": 228 }
}, ...
]
}
]
}
}
Pasos siguientes
- En este inicio rápido, ha aprendido a llamar a la API de REST para crear un analizador personalizado. Para obtener una experiencia de usuario, pruebe Portal de Azure AI Foundry.