Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met de batchanalyse-API kunt u maximaal 10.000 documenten bulksgewijs verwerken met één aanvraag. In plaats van documenten één voor één te analyseren en hun respectieve aanvraag-id's bij te houden, kunt u tegelijkertijd een verzameling documenten analyseren, zoals facturen, leningpapieren of aangepaste documenten. De invoerdocumenten moeten worden opgeslagen in een Azure Blob Storage-container. Zodra de documenten zijn verwerkt, schrijft de API de resultaten naar een opgegeven opslagcontainer.
Limieten voor batchanalyse
- Het maximum aantal documentbestanden dat zich in één batchaanvraag kan bevinden, is 10.000.
- Resultaten van batchbewerking worden 24 uur na voltooiing bewaard. De status van de batchbewerking is 24 uur nadat de batchverwerking is voltooid, niet meer beschikbaar. De invoerdocumenten en de respectieve resultaatbestanden blijven aanwezig in de opgegeven opslagcontainers.
Vereisten
Een actief Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u er gratis een maken.
Een Document Intelligence Azure-resource: zodra u uw Azure-abonnement hebt, maakt u een Document Intelligence-resource in Azure Portal. U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen. Nadat uw resource is geïmplementeerd, selecteert u 'Ga naar resource' om uw sleutel en eindpunt op te halen. U hebt de resourcesleutel en het eindpunt nodig om uw toepassing te verbinden met de Document Intelligence-service. U kunt deze waarden ook vinden op de pagina Sleutels en eindpunt in Azure Portal.
Een Azure Blob Storage-account. Maak twee containers in uw Azure Blob Storage-account voor uw bron- en resultaatbestanden:
- Broncontainer: In deze container uploadt u documentbestanden voor analyse.
- Resultaatcontainer: In deze container worden de resultaten van de batchanalyse-API opgeslagen.
Autorisatie van opslagcontainers
Als u wilt toestaan dat de API documenten verwerkt en resultaten schrijft in uw Azure Storage-containers, moet u een van de volgende twee opties gebruiken:
✔️ Beheerde identiteit. Een beheerde identiteit is een service-principal waarmee een Microsoft Entra-identiteit en specifieke machtigingen voor een door Azure beheerde resource worden gemaakt. Met beheerde identiteiten kunt u uw Document Intelligence-toepassing uitvoeren zonder referenties in te sluiten in uw code, een veiligere manier om toegang te verlenen tot opslaggegevens zonder toegangstokens (SAS) in uw code op te slaan.
Bekijk beheerde identiteiten voor Document Intelligence voor meer informatie over het inschakelen van een beheerde identiteit voor uw resource en het verlenen van toegang tot uw opslagcontainer.
Belangrijk
Wanneer u beheerde identiteiten gebruikt, moet u geen SAS-token-URL met uw HTTP-aanvragen opnemen. Als u beheerde identiteiten gebruikt, wordt de vereiste voor het opnemen van sas-tokens (Shared Access Signature) vervangen.
✔️ Shared Access Signature (SAS). Een handtekening voor gedeelde toegang is een URL die beperkte toegang verleent tot uw opslagcontainer. Als u deze methode wilt gebruiken, maakt u SAS-tokens (Shared Access Signature) voor uw bron- en resultaatcontainers. Ga naar de opslagcontainer in Azure Portal en selecteer Gedeelde toegangstokens om een SAS-token en -URL te genereren.
- Uw broncontainer of blob moet lees-, schrijf-, lijst- en verwijdermachtigingen aanwijzen.
- Uw resultaatcontainer of blob moet schrijf-, lijst- en verwijdermachtigingen aanwijzen.
Raadpleeg SAS-tokens maken voor meer informatie over het genereren van SAS-tokens en hoe ze werken.
De batchanalyse-API aanroepen
1. Geef de invoerbestanden op
De batch-API ondersteunt twee opties voor het opgeven van de bestanden die moeten worden verwerkt.
Als u alle bestanden in een container of map wilt verwerken en het aantal bestanden kleiner is dan de limiet van 10000, gebruikt u het
azureBlobSourceobject in uw aanvraag.POST {endpoint}/documentintelligence/documentModels/{modelId}:analyzeBatch?api-version=2024-11-30 { "azureBlobSource": { "containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer?mySasToken" }, { "resultContainerUrl": "https://myStorageAccount.blob.core.windows.net/myOutputContainer?mySasToken", "resultPrefix": "trainingDocsResult/" }Als u niet alle bestanden in een container of map wilt verwerken, maar liever specifieke bestanden in die container of map, gebruikt u het
azureBlobFileListSourceobject. Voor deze bewerking is een JSONL-bestand met een bestandslijst vereist dat de bestanden bevat die moeten worden verwerkt. Sla het JSONL-bestand op in de hoofdmap van de container. Hier volgt een voorbeeld van een JSONL-bestand met twee vermelde bestanden:{"file": "Adatum Corporation.pdf"} {"file": "Best For You Organics Company.pdf"}
Gebruik een bestand met JSONL de volgende voorwaarden:
- Wanneer u specifieke bestanden moet verwerken in plaats van alle bestanden in een container;
- Wanneer het totale aantal bestanden in de invoercontainer of map de verwerkingslimiet van 10.000 bestandsbatches overschrijdt;
- Wanneer u meer controle wilt over welke bestanden in elke batchaanvraag worden verwerkt;
POST {endpoint}/documentintelligence/documentModels/{modelId}:analyzeBatch?api-version=2024-11-30
{
"azureBlobFileListSource": {
"containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer?mySasToken",
"fileList": "myFileList.jsonl"
...
},
...
}
Een container-URL of een SAS-URL voor containers is vereist in beide opties. Gebruik container-URL als u beheerde identiteit gebruikt voor toegang tot uw opslagcontainer. Als u Shared Access Signature (SAS) gebruikt, gebruikt u een SAS-URL.
2. Geef de locatie van de resultaten op
Geef de URL van de Azure Blob Storage-container (of SAS-URL voor containers) op waar u de resultaten wilt opslaan met behulp van
resultContainerURLde parameter. U wordt aangeraden afzonderlijke containers voor bron en resultaten te gebruiken om onbedoeld overschrijven te voorkomen.Stel de
overwriteExistingbooleaanse eigenschap in opFalseen voorkom dat bestaande resultaten voor hetzelfde document worden overschreven. Als u bestaande resultaten wilt overschrijven, stelt u de Booleaanse waarde in opTrue. U wordt nog steeds gefactureerd voor het verwerken van het document, zelfs als bestaande resultaten niet worden overschreven.Hiermee
resultPrefixkunt u resultaten groeperen en opslaan in een specifieke containermap.
3. De POST-aanvraag bouwen en uitvoeren
Vergeet niet om de volgende voorbeeldcontainer-URL-waarden te vervangen door echte waarden uit uw Azure Blob Storage-containers.
In dit voorbeeld ziet u een POST-aanvraag met azureBlobSource invoer
POST {endpoint}/documentintelligence/documentModels/{modelId}:analyzeBatch?api-version=2024-11-30
{
"azureBlobSource": {
"containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer?mySasToken",
"prefix": "inputDocs/"
},
{
"resultContainerUrl": "https://myStorageAccount.blob.core.windows.net/myOutputContainer?mySasToken",
"resultPrefix": "batchResults/",
"overwriteExisting": true
}
In dit voorbeeld ziet u een POST-aanvraag met azureBlobFileListSource en invoer van een bestandslijst
POST {endpoint}/documentintelligence/documentModels/{modelId}:analyzeBatch?api-version=2024-11-30
{
"azureBlobFileListSource": {
"containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer?mySasToken",
"fileList": "myFileList.jsonl"
},
{
"resultContainerUrl": "https://myStorageAccount.blob.core.windows.net/myOutputContainer?mySasToken",
"resultPrefix": "batchResults/",
"overwriteExisting": true
}
Hier volgt een voorbeeld van een geslaagd antwoord
202 Accepted
Operation-Location: /documentintelligence/documentModels/{modelId}/analyzeBatchResults/{resultId}?api-version=2024-11-30
4. API-resultaten ophalen
Gebruik de GET bewerking om batchanalyseresultaten op te halen nadat de POST-bewerking is uitgevoerd. De GET-bewerking haalt statusinformatie, batchvoltooiingspercentage en het maken en bijwerken van de datum/tijd van de bewerking op. Deze informatie wordt slechts 24 uur bewaard nadat de batchanalyse is voltooid.
GET {endpoint}/documentintelligence/documentModels/{modelId}/analyzeBatchResults/{resultId}?api-version=2024-11-30
200 OK
{
"status": "running", // notStarted, running, completed, failed
"percentCompleted": 67, // Estimated based on the number of processed documents
"createdDateTime": "2021-09-24T13:00:46Z",
"lastUpdatedDateTime": "2021-09-24T13:00:49Z"
...
}
5. Statusberichten interpreteren
Voor elk verwerkt document wordt een status toegewezen, ofwel succeeded, failedrunning, notStartedof skipped. Er wordt een bron-URL, de bron-blobopslagcontainer voor het invoerdocument, opgegeven.
Status
notStartedofrunning. De batchanalysebewerking wordt niet gestart of is niet voltooid. Wacht totdat de bewerking is voltooid voor alle documenten.Status
completed. De batchanalysebewerking is voltooid.Status
succeeded. De batchbewerking is voltooid en het invoerdocument is verwerkt. De resultaten zijn beschikbaar opresultUrl, dat wordt gemaakt door combinatieresultContainerUrl,resultPrefix, eninput filename.ocr.jsonextensie. Alleen bestanden die zijn geslaagd, hebben de eigenschapresultUrl.Voorbeeld van een
succeededstatusantwoord:{ "resultId": "myresultId-", "status": "succeeded", "percentCompleted": 100, "createdDateTime": "2025-01-01T00:00:000", "lastUpdatedDateTime": "2025-01-01T00:00:000", "result": { "succeededCount": 10,000, "failedCount": 0, "skippedCount": 0, "details": [ { "sourceUrl": "https://{your-source-container}/inputFolder/document1.pdf", "resultUrl": "https://{your-result-container}/resultsFolder/document1.pdf.ocr.json", "status": "succeeded" }, ... { "sourceUrl": "https://{your-source-container}/inputFolder/document10000.pdf", "resultUrl": "https://{your-result-container}/resultsFolder/document10000.pdf.ocr.json", "status": "succeeded" } ] } }Status
failed. Deze fout wordt alleen geretourneerd als er fouten zijn in de algehele batchaanvraag. Zodra de batchanalysebewerking is gestart, heeft de afzonderlijke documentbewerkingsstatus geen invloed op de status van de algehele batchtaak, zelfs als alle bestanden de statusfailedhebben.Voorbeeld van een
failedstatusantwoord:[ "result": { "succeededCount": 0, "failedCount": 2, "skippedCount": 0, "details": [ "sourceUrl": "https://{your-source-container}/inputFolder/document1.jpg", "status": "failed", "error": { "code": "InvalidArgument", "message": "Invalid argument.", "innererror": { "code": "InvalidSasToken", "message": "The shared access signature (SAS) is invalid: {details}" } } ] } ] ...Status
skipped: Deze status treedt meestal op wanneer uitvoer voor het document al aanwezig is in de opgegeven uitvoermap en deoverwriteExistingbooleaanse eigenschap is ingesteld opfalse.Voorbeeld van
skippedstatusantwoord:[ "result": { "succeededCount": 3, "failedCount": 0, "skippedCount": 2, "details": [ ... "sourceUrl": "https://{your-source-container}/inputFolder/document1.pdf", "status": "skipped", "error": { "code": "OutputExists", "message": "Analysis skipped because result file https://{your-result-container}/resultsFolder/document1.pdf.ocr.json already exists." } ] } ] ...Notitie
Analyseresultaten worden pas geretourneerd voor afzonderlijke bestanden als de analyse voor de hele batch is voltooid. Als u gedetailleerde voortgang verder
percentCompletedwilt bijhouden, kunt u bestanden bewaken*.ocr.jsonterwijl ze in hetresultContainerUrlbestand worden geschreven.