Quickstart: Azure AI Content Understanding REST API's
Begin met het gebruik van de nieuwste preview-versie van de Azure AI Content Understanding REST API (2024-12-01-preview).
Azure AI Content Understanding is een nieuwe op AI gebaseerde Azure AI-service waarmee bestanden van elke modaliteit (documenten, afbeeldingen, video's en audio) worden geanalyseerd en gestructureerde uitvoer wordt geëxtraheerd in door de gebruiker gedefinieerde veldindelingen.
Integreer de Content Understanding-service eenvoudig in uw werkstromen en toepassingen door onze REST API's aan te roepen.
In deze quickstart wordt u begeleid bij het gebruik van de REST API voor Inhoudskennis om een aangepaste analyse te maken en inhoud en velden te extraheren uit uw invoer.
Vereisten
U hebt een actief Azure-abonnement nodig om aan de slag te gaan. Als u geen Azure-account hebt, kunt u een gratis abonnement maken.
Zodra u uw Azure-abonnement hebt, maakt u een Azure AI Services-resource in Azure Portal. Met deze resource voor meerdere services hebt u toegang tot meerdere Azure AI-services met één set referenties.
Deze resource wordt vermeld onder Azure AI-services → Azure AI-services in de portal.
Belangrijk
Azure biedt meer dan één resourcetype met de naam Azure AI-services. Zorg ervoor dat u de service selecteert die wordt vermeld onder Azure AI-services → Azure AI-services, zoals weergegeven in de volgende afbeelding. Zie Een Azure AI Services-resource maken voor meer informatie.
In deze quickstart gebruiken we het opdrachtregelprogramma cURL. Als deze niet is geïnstalleerd, kunt u een versie voor uw ontwikkelomgeving downloaden:
Een aangepaste analyse maken
Als u een aangepaste analyse wilt maken, moet u een veldschema definiëren waarin de gestructureerde gegevens worden beschreven die u wilt extraheren. In het volgende voorbeeld definiëren we een schema voor het extraheren van basisinformatie uit een factuurdocument.
Maak eerst een JSON-bestand met de naam request_body.json
met de volgende inhoud:
{
"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"
}
}
}
}
}
}
}
Voordat u de volgende cURL
opdrachten uitvoert, moet u de volgende wijzigingen aanbrengen in de HTTP-aanvraag:
- Vervang
{endpoint}
en door het eindpunt en{key}
de sleutelwaarden van uw Azure PORTAL Azure AI Services-exemplaar. - Vervang door
{analyzerId}
de naam van de nieuwe analyse en maak, zoalsmyInvoice
.
PUT-aanvraag
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
PUT-antwoord
Het antwoord 201 (Created
) bevat een Operation-Location
header met een URL die u kunt gebruiken om de status van deze asynchrone aanmaakbewerking bij te houden.
201 Created
Operation-Location: {endpoint}/contentunderstanding/analyzers/{analyzerId}/operations/{operationId}?api-version=2024-12-01-preview
Na voltooiing wordt een HTTP GET op de URL geretourneerd "status": "succeeded"
.
curl -i -X GET "{endpoint}/contentunderstanding/analyzers/{analyzerId}/operations/{operationId}?api-version=2024-12-01-preview" \
-H "Ocp-Apim-Subscription-Key: {key}"
Een bestand analyseren
U kunt bestanden analyseren met behulp van de aangepaste analyse die u hebt gemaakt om de velden te extraheren die in het schema zijn gedefinieerd.
Voordat u de cURL-opdracht uitvoert, moet u de volgende wijzigingen aanbrengen in de HTTP-aanvraag:
- Vervang
{endpoint}
en door het eindpunt en{key}
de sleutelwaarden van uw Azure PORTAL Azure AI Services-exemplaar. - Vervang door
{analyzerId}
de naam van de aangepaste analyse die u eerder hebt gemaakt. - Vervang
{fileUrl}
door een openbaar toegankelijke URL van het bestand dat u wilt analyseren, zoals een pad naar een Azure Storage-blob met een SAS (Shared Access Signature) of de voorbeeld-URLhttps://github.com/Azure-Samples/cognitive-services-REST-api-samples/raw/master/curl/form-recognizer/rest-api/invoice.pdf
.
POST-aanvraag
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}\"}"
POST-antwoord
Het antwoord 202 (Accepted
) bevat een Operation-Location
header met een URL die u kunt gebruiken om de status van deze asynchrone analysebewerking bij te houden.
202 Accepted
Operation-Location: {endpoint}/contentunderstanding/analyzers/{analyzerId}/results/{resultId}?api-version=2024-12-01-preview
Analyseresultaat ophalen
Gebruik de resultId
Operation-Location
header die wordt geretourneerd door het vorige POST
antwoord en haal het resultaat van de analyse op.
- Vervang
{endpoint}
en door het eindpunt en{key}
de sleutelwaarden van uw Azure PORTAL Azure AI Services-exemplaar. - Vervang door
{analyzerId}
de naam van de aangepaste analyse die u eerder hebt gemaakt. - Vervang
{resultId}
door deresultId
geretourneerde waarde van dePOST
aanvraag.
GET-aanvraag
curl -i -X GET "{endpoint}/contentunderstanding/analyzers/{analyzerId}/results/{resultId}?api-version=2024-12-01-preview" \
-H "Ocp-Apim-Subscription-Key: {key}"
GET-antwoord
Het JSON-antwoord 200 (OK
) bevat een status
veld dat de status van de bewerking aangeeft. Als de bewerking niet is voltooid, is running
of status
notStarted
. In dergelijke gevallen moet u de API opnieuw aanroepen, handmatig of via een script. Wacht een interval van één seconde of meer tussen aanroepen.
Voorbeeldrespons
{
"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 }
}, ...
]
}
]
}
}
Volgende stappen
- In deze quickstart hebt u geleerd hoe u de REST API aanroept om een aangepaste analyse te maken. Probeer de Azure AI Foundry-portal voor een gebruikerservaring.