Batchanalys för dokumentinformation
Med BATCH-analys-API:et kan du massbearbeta flera dokument med hjälp av en asynkron begäran. I stället för att behöva skicka dokument individuellt och spåra flera begärande-ID:t kan du analysera en samling dokument som fakturor, en serie lånedokument eller en grupp anpassade dokument samtidigt. Batch-API:et stöder läsning av dokument från Azure Blob Storage och skrivning av resultaten till bloblagring.
- För att kunna använda batchanalys behöver du ett Azure Blob Storage-konto med specifika containrar för både källdokumenten och de bearbetade utdata.
- När du har slutfört batchåtgärdsresultatet visas alla enskilda dokument som bearbetas med deras status, till exempel
succeeded
,skipped
ellerfailed
. - Förhandsversionen av Batch API är tillgänglig via betala per användning-priser.
Vägledning för batchanalys
Det maximala antalet dokument som bearbetas per enskild batchanalysbegäran (inklusive överhoppade dokument) är 10 000.
Åtgärdsresultat behålls i 24 timmar efter slutförande. Dokumenten och resultaten finns i det angivna lagringskontot, men åtgärdsstatusen är inte längre tillgänglig 24 timmar efter slutförandet.
Är du redo att börja?
Förutsättningar
Du behöver en aktiv Azure-prenumeration. Om du inte har en Azure-prenumeration kan du skapa en kostnadsfritt.
När du har din Azure-prenumeration har du en dokumentinformationsinstans i Azure Portal. Du kan använda den kostnadsfria prisnivån (
F0
) för att prova tjänsten.När resursen har distribuerats väljer du Gå till resurs och hämtar nyckeln och slutpunkten.
- Du behöver nyckeln och slutpunkten från resursen för att ansluta ditt program till dokumentinformationstjänsten. Du klistrar in nyckeln och slutpunkten i koden senare i snabbstarten. Du hittar dessa värden på sidan Azure Portal nycklar och slutpunkt.
Ett Azure Blob Storage-konto. Du skapar containrar i ditt Azure Blob Storage-konto för käll- och resultatfilerna:
- Källcontainer. I den här containern laddar du upp dina filer för analys (krävs).
- Resultatcontainer. I den här containern lagras dina bearbetade filer (valfritt).
Du kan ange samma Azure Blob Storage-container för källdokument och bearbetade dokument. Men för att minimera potentiella chanser att oavsiktligt skriva över data rekommenderar vi att du väljer separata containrar.
Auktorisering av lagringscontainer
Du kan välja något av följande alternativ för att auktorisera åtkomst till dokumentresursen.
✔️ Hanterad identitet. En hanterad identitet är ett huvudnamn för tjänsten som skapar en Microsoft Entra-identitet och specifika behörigheter för en Azure-hanterad resurs. Med hanterade identiteter kan du köra ditt dokumentinformationsprogram utan att behöva bädda in autentiseringsuppgifter i koden. Hanterade identiteter är ett säkrare sätt att bevilja åtkomst till lagringsdata och ersätta kravet på att du ska inkludera signaturtoken för delad åtkomst (SAS) med dina käll- och resultat-URL:er.
Mer information finns i Hanterade identiteter för Dokumentinformation.
Viktigt!
- När du använder hanterade identiteter ska du inte inkludera en SAS-token-URL med dina HTTP-begäranden– dina begäranden misslyckas. Att använda hanterade identiteter ersätter kravet på att du ska inkludera signaturtoken för delad åtkomst (SAS).
✔️ Signatur för delad åtkomst (SAS). En signatur för delad åtkomst är en URL som ger begränsad åtkomst under en angiven tidsperiod till din dokumentinformationstjänst. Om du vill använda den här metoden måste du skapa SAS-token (Signatur för delad åtkomst) för dina käll- och resultatcontainrar. Käll- och resultatcontainrarna måste innehålla en SAS-token (Signatur för delad åtkomst) som läggs till som en frågesträng. Token kan tilldelas till din container eller specifika blobar.
- Källcontainern eller bloben måste ange läs-, skriv-, list- och borttagningsåtkomst.
- Din resultatcontainer eller blob måste ange skriv-, list- och borttagningsåtkomst .
Mer information finns i Skapa SAS-token.
Anropa batchanalys-API:et
- Ange url:en för Azure Blob Storage-containern för källdokumentuppsättningen i objekten
azureBlobSource
ellerazureBlobFileListSource
.
Ange indatafilerna
Batch-API:et stöder två alternativ för att ange vilka filer som ska bearbetas. Om du behöver alla filer i en container eller mapp som bearbetas och antalet filer är mindre än gränsen på 1 0000 för en enskild batchbegäran använder du containern azureBlobSource
.
Om du har specifika filer i containern eller mappen att bearbeta eller om antalet filer som ska bearbetas överskrider maxgränsen för en enskild batch använder du azureBlobFileListSource
. Dela upp datamängden i flera batchar och lägg till en fil med listan över filer som ska bearbetas i ett JSONL-format i rotmappen i containern. Ett exempel på fillisteformatet är.
{"file": "Adatum Corporation.pdf"}
{"file": "Best For You Organics Company.pdf"}
Ange resultatplatsen
Ange url:en för Azure Blob Storage-containern för batchanalysresultatet med hjälp av resultContainerUrl
. För att undvika oavsiktlig överskrivning rekommenderar vi att du använder separata containrar för källdokument och bearbetade dokument.
Ange den overwriteExisting
booleska egenskapen till false om du inte vill att några befintliga resultat med samma filnamn ska skrivas över. Den här inställningen påverkar inte faktureringen och förhindrar bara att resultat skrivs över när indatafilen har bearbetats.
resultPrefix
Ange till namnrymd för resultatet från den här körningen av batch-API:et.
- Om du planerar att använda samma container för både indata och utdata anger du
resultContainerUrl
ochresultPrefix
matchar dina indataazureBlobSource
. - När du använder samma container kan du inkludera fältet
overwriteExisting
för att bestämma om du vill skriva över några filer med analysresultatfilerna.
Skapa och kör POST-begäran
Innan du kör POST-begäran ersätter du {your-source-container-SAS-URL} och {your-result-container-SAS-URL} med värdena från dina Azure Blob Storage-containerinstanser.
Följande exempel visar hur du azureBlobSource
lägger till egenskapen i begäran:
Tillåt endast en eller azureBlobSource
azureBlobFileListSource
.
POST /documentModels/{modelId}:analyzeBatch
{
"azureBlobSource": {
"containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer?mySasToken",
"prefix": "trainingDocs/"
},
"resultContainerUrl": "https://myStorageAccount.blob.core.windows.net/myOutputContainer?mySasToken",
"resultPrefix": "layoutresult/",
"overwriteExisting": true
}
Följande exempel visar hur du azureBlobFileListSource
lägger till egenskapen i begäran:
POST /documentModels/{modelId}:analyzeBatch
{
"azureBlobFileListSource": {
"containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer?mySasToken",
"fileList": "myFileList.jsonl"
},
"resultContainerUrl": "https://myStorageAccount.blob.core.windows.net/myOutputContainer?mySasToken",
"resultPrefix": "customresult/",
"overwriteExisting": true
}
Lyckat svar
202 Accepted
Operation-Location: /documentModels/{modelId}/analyzeBatchResults/{resultId}
Hämta api-resultat för batchanalys
När batch-API-åtgärden har körts kan du hämta batchanalysresultatet med hjälp av åtgärdenGET
. Den här åtgärden hämtar information om åtgärdsstatus, procent för slutförande av åtgärden och skapande av åtgärder och uppdateringsdatum/tid.
GET /documentModels/{modelId}/analyzeBatchResults/{resultId}
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"
...
}
Tolka statusmeddelanden
För varje dokument en uppsättning tilldelas en status, antingen succeeded
, failed
eller skipped
. För varje dokument finns det två URL:er som tillhandahålls för att verifiera resultatet: sourceUrl
, som är källbloblagringscontainern för det lyckade indatadokumentet och resultUrl
, som skapas genom att kombinera resultContainerUrl
ochresultPrefix
skapa den relativa sökvägen för källfilen och .ocr.json
.
Status
notStarted
ellerrunning
. Batchanalysåtgärden initieras inte eller slutförs inte. Vänta tills åtgärden har slutförts för alla dokument.Status
completed
. Batchanalysåtgärden är klar.Status
failed
. Batchåtgärden misslyckades. Det här svaret inträffar vanligtvis om det finns övergripande problem med begäran. Fel på enskilda filer returneras i batchrapportsvaret, även om alla filer misslyckades. Lagringsfel stoppar till exempel inte batchåtgärden som helhet, så att du kan komma åt partiella resultat via batchrapportens svar.
Endast filer som har status succeeded
har egenskapen resultUrl
genererad i svaret. Detta gör det möjligt för modellträning att identifiera filnamn som slutar med .ocr.json
och identifiera dem som de enda filer som kan användas för träning.
Exempel på ett succeeded
statussvar:
[
"result": {
"succeededCount": 0,
"failedCount": 2,
"skippedCount": 2,
"details": [
{
"sourceUrl": "https://{your-source-container}/myContainer/trainingDocs/file2.jpg",
"status": "failed",
"error": {
"code": "InvalidArgument",
"message": "Invalid argument.",
"innererror": {
"code": "InvalidSasToken",
"message": "The shared access signature (SAS) is invalid: {details}"
}
}
}
]
}
]
...
Exempel på ett failed
statussvar:
- Det här felet returneras endast om det finns fel i den övergripande batchbegäran.
- När batchanalysåtgärden har startats påverkar inte statusen för enskilda dokumentåtgärder statusen för det övergripande batchjobbet, även om alla filer har statusen
failed
.
[
"result": {
"succeededCount": 0,
"failedCount": 2,
"skippedCount": 2,
"details": [
"sourceUrl": "https://{your-source-container}/myContainer/trainingDocs/file2.jpg",
"status": "failed",
"error": {
"code": "InvalidArgument",
"message": "Invalid argument.",
"innererror": {
"code": "InvalidSasToken",
"message": "The shared access signature (SAS) is invalid: {details}"
}
}
]
}
]
...
Exempel på skipped
statussvar:
[
"result": {
"succeededCount": 3,
"failedCount": 0,
"skippedCount": 2,
"details": [
...
"sourceUrl": "https://myStorageAccount.blob.core.windows.net/myContainer/trainingDocs/file4.jpg",
"status": "skipped",
"error": {
"code": "OutputExists",
"message": "Analysis skipped because result file {path} already exists."
}
]
}
]
...
Batchanalysresultaten hjälper dig att identifiera vilka filer som analyseras och validera analysresultaten genom att jämföra filen i resultUrl
med utdatafilen i resultContainerUrl
.
Kommentar
Analysresultat returneras inte för enskilda filer förrän hela batchanalysen för dokumentuppsättningen har slutförts. Om du vill spåra detaljerade framsteg utöver percentCompleted
kan du övervaka *.ocr.json
filer när de skrivs resultContainerUrl
till .