Snabbstart: Azure AI Content Understanding REST API:er
Börja använda den senaste förhandsversionen av AZURE AI Content Understanding REST API (2024-12-01-preview).
Azure AI Content Understanding är en ny generativ AI-baserad Azure AI-tjänst som analyserar filer av alla modaliteter (dokument, bilder, videor och ljud) och extraherar strukturerade utdata i användardefinierade fältformat.
Integrera Content Understanding-tjänsten i dina arbetsflöden och program enkelt genom att anropa våra REST-API:er.
Den här snabbstarten vägleder dig genom att använda REST API för innehållstolkning för att skapa en anpassad analysator och extrahera innehåll och fält från dina indata.
Förutsättningar
För att komma igång behöver du en aktiv Azure-prenumeration. Om du inte har något Azure-konto kan du skapa en kostnadsfri prenumeration.
När du har din Azure-prenumeration skapar du en Azure AI Services-resurs i Azure Portal. Den här resursen med flera tjänster ger åtkomst till flera Azure AI-tjänster med en enda uppsättning autentiseringsuppgifter.
Den här resursen visas under Azure AI-tjänster → Azure AI-tjänster i portalen.
Viktigt!
Azure tillhandahåller mer än en resurstyp med namnet Azure AI-tjänster. Se till att du väljer den som visas under Azure AI-tjänster → Azure AI-tjänster enligt beskrivningen i följande bild. Mer information finns i Skapa en Azure AI Services-resurs.
I den här snabbstarten använder vi kommandoradsverktyget cURL. Om den inte är installerad kan du ladda ned en version för utvecklingsmiljön:
Skapa ett anpassat analysverktyg
Om du vill skapa en anpassad analysator måste du definiera ett fältschema som beskriver de strukturerade data som du vill extrahera. I följande exempel definierar vi ett schema för att extrahera grundläggande information från ett fakturadokument.
Skapa först en JSON-fil med namnet request_body.json
med följande innehåll:
{
"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"
}
}
}
}
}
}
}
Innan du kör följande cURL
kommandon gör du följande ändringar i HTTP-begäran:
- Ersätt
{endpoint}
och{key}
med slutpunkts- och nyckelvärdena från din Azure Portal Azure AI Services-instans. - Ersätt
{analyzerId}
med namnet på den nya analysatorn och skapa, till exempelmyInvoice
.
PUT-begäran
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-svar
Svaret från 201 (Created
) innehåller en Operation-Location
rubrik som innehåller en URL som du kan använda för att spåra statusen för den här asynkrona skapandeåtgärden.
201 Created
Operation-Location: {endpoint}/contentunderstanding/analyzers/{analyzerId}/operations/{operationId}?api-version=2024-12-01-preview
När det är klart returnerar "status": "succeeded"
en HTTP GET på URL:en .
curl -i -X GET "{endpoint}/contentunderstanding/analyzers/{analyzerId}/operations/{operationId}?api-version=2024-12-01-preview" \
-H "Ocp-Apim-Subscription-Key: {key}"
Analysera en fil
Du kan analysera filer med hjälp av den anpassade analysatorn som du skapade för att extrahera fälten som definierats i schemat.
Innan du kör cURL-kommandot gör du följande ändringar i HTTP-begäran:
- Ersätt
{endpoint}
och{key}
med slutpunkts- och nyckelvärdena från din Azure Portal Azure AI Services-instans. - Ersätt
{analyzerId}
med namnet på den anpassade analysatorn som skapades tidigare. - Ersätt
{fileUrl}
med en offentligt tillgänglig URL för filen som ska analyseras, till exempel en sökväg till en Azure Storage Blob med en signatur för delad åtkomst (SAS) eller exempel-URL:enhttps://github.com/Azure-Samples/cognitive-services-REST-api-samples/raw/master/curl/form-recognizer/rest-api/invoice.pdf
.
POST-begäran
curl -i -X POST "{endpoint}/contentunderstanding/analyzers/{analyzerId}:analyze?stringEncoding=codePoint&api-version=2024-12-01-preview" \
-H "Ocp-Apim-Subscription-Key: {key}" \
-H "Content-Type: application/json" \
-d "{\"url\":\"{fileUrl}\"}"
POST responseH
Svaret 202 (Accepted
) innehåller en Operation-Location
rubrik som innehåller en URL som du kan använda för att spåra statusen för den här asynkrona analysåtgärden.
202 Accepted
Operation-Location: {endpoint}/contentunderstanding/analyzers/{analyzerId}/results/{resultId}?api-version=2024-12-01-preview
Hämta analysresultat
resultId
Använd från -huvudet som Operation-Location
returnerades av föregående POST
svar och hämta resultatet av analysen.
- Ersätt
{endpoint}
och{key}
med slutpunkts- och nyckelvärdena från din Azure Portal Azure AI Services-instans. - Ersätt
{analyzerId}
med namnet på den anpassade analysatorn som skapades tidigare. - Ersätt
{resultId}
med denresultId
som returneras frånPOST
begäran.
GET-begäranden
curl -i -X GET "{endpoint}/contentunderstanding/analyzers/{analyzerId}/results/{resultId}?api-version=2024-12-01-preview" \
-H "Ocp-Apim-Subscription-Key: {key}"
GET-svar
JSON-svaret 200 (OK
) innehåller ett status
fält som anger åtgärdens status. Om åtgärden inte är slutförd är running
värdet status
för eller notStarted
. I sådana fall bör du anropa API:et igen, antingen manuellt eller via ett skript. Vänta ett intervall på en sekund eller mer mellan anrop.
Exempelsvar
{
"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 }
}, ...
]
}
]
}
}