Containers installeren en uitvoeren
Deze inhoud is van toepassing op:v3.0 (GA)
v3.1 (GA)
Azure AI Document Intelligence is een Azure AI-service waarmee u geautomatiseerde gegevensverwerkingssoftware kunt bouwen met behulp van machine learning-technologie. Met Document Intelligence kunt u tekst, sleutel-waardeparen, selectiemarkeringen, tabelgegevens en meer uit uw documenten identificeren en extraheren. De resultaten worden geleverd als gestructureerde gegevens die .. /bevat de relaties in het oorspronkelijke bestand. Containers verwerken alleen de gegevens die aan hen worden verstrekt en maken alleen gebruik van de resources die ze mogen openen. Containers kunnen geen gegevens uit andere regio's verwerken.
In dit artikel leert u hoe u Document Intelligence-containers downloadt, installeert en uitvoert. Met containers kunt u de Document Intelligence-service uitvoeren in uw eigen omgeving. Containers zijn ideaal voor specifieke vereisten voor beveiliging en gegevensbeheer.
Lees-, indelings-, id-document-, ontvangst- en factuurmodellen worden ondersteund door Document Intelligence v3.1-containers.
Lees-, indelings-, algemeen document-, visitekaartje- en aangepaste modellen worden ondersteund door Document Intelligence v3.0-containers.
Versieondersteuning
Ondersteuning voor containers is momenteel beschikbaar met documentinformatieversie v3.0: 2022-08-31 (GA)
voor alle modellen en v3.1 2023-07-31 (GA)
voor modellen lezen, indeling, id-document, ontvangstbewijs en factuur:
-
REST API
v3.0: 2022-08-31 (GA)
-
REST API
v3.1: 2023-07-31 (GA)
-
Clientbibliotheken gericht
REST API v3.0: 2022-08-31 (GA)
-
Clientbibliotheken gericht
REST API v3.1: 2023-07-31 (GA)
Vereisten
U hebt een actief Azure-account nodig om aan de slag te gaan. Als u nog geen account hebt, kunt u een gratis account aanmaken.
U hebt ook het volgende nodig om Document Intelligence-containers te gebruiken:
Vereist | Doel |
---|---|
Bekendheid met Docker | U moet basiskennis hebben van Docker-concepten, zoals registers, opslagplaatsen, containers en containerinstallatiekopieën, evenals kennis van basisterminologie docker en opdrachten. |
Docker Engine geïnstalleerd |
|
Document Intelligence-resource | Een Azure AI Document Intelligence-resource met één service of een resource voor meerdere services in Azure Portal. Als u de containers wilt gebruiken, moet u de bijbehorende sleutel en eindpunt-URI hebben. Beide waarden zijn beschikbaar op de pagina Documentinformatiesleutels en Eindpunt in Azure Portal:
|
Optioneel | Doel |
---|---|
Azure CLI (opdrachtregelinterface) | Met de Azure CLI kunt u een set onlineopdrachten gebruiken om Azure-resources te maken en te beheren. Het is beschikbaar om te installeren in Windows-, macOS- en Linux-omgevingen en kan worden uitgevoerd in een Docker-container en Azure Cloud Shell. |
Vereisten voor hostcomputers
De host is een x64-computer waarop de Docker-container wordt uitgevoerd. Het kan een computer op uw locatie of een Docker-hostingservice in Azure zijn, zoals:
- Azure Kubernetes Service.
- Azure Container Instances.
- Een Kubernetes-cluster dat is geïmplementeerd in Azure Stack. Zie Kubernetes implementeren in Azure Stack voor meer informatie.
Notitie
Houd er rekening mee dat de Studio-container niet kan worden geïmplementeerd en uitgevoerd in Azure Kubernetes Service. Studio-container wordt alleen ondersteund voor uitvoering op lokale computer.
Containervereisten en aanbevelingen
Vereiste ondersteunende containers
De volgende tabel bevat een of meer ondersteunende containers voor elke Document Intelligence-container die u downloadt. Zie de sectie Facturering voor meer informatie.
Functiecontainer | Ondersteunende containers |
---|---|
Lezen | Niet vereist |
Indeling | Niet vereist |
Visitekaartje | Lezen |
Algemeen document | Indeling |
Factuur | Indeling |
Kwitantie | Lezen of indeling |
Id-document | Lezen |
Aangepaste sjabloon | Indeling |
Aanbevolen CPU-kernen en geheugen
Notitie
De minimum- en aanbevolen waarden zijn gebaseerd op Docker-limieten en niet op de hostcomputerresources.
Document Intelligence-containers
Container | Minimaal | Aanbevolen |
---|---|---|
Read |
8 kernen, 10 GB geheugen |
8 kerngeheugens, 24 GB geheugen |
Layout |
8 kerngeheugens, 16 GB geheugen |
8 kerngeheugens, 24 GB geheugen |
Business Card |
8 kerngeheugens, 16 GB geheugen |
8 kerngeheugens, 24 GB geheugen |
General Document |
8 kernen, 12 GB geheugen |
8 kerngeheugens, 24 GB geheugen |
ID Document |
8 kernen, 8 GB geheugen |
8 kerngeheugens, 24 GB geheugen |
Invoice |
8 kerngeheugens, 16 GB geheugen |
8 kerngeheugens, 24 GB geheugen |
Receipt |
8 kerngeheugens, 11 GB geheugen |
8 kerngeheugens, 24 GB geheugen |
Custom Template |
8 kerngeheugens, 16 GB geheugen |
8 kerngeheugens, 24 GB geheugen |
- Elke kern moet ten minste 2,6 gigahertz (GHz) of sneller zijn.
- Kern en geheugen komen overeen met de
--cpus
en--memory
instellingen, die worden gebruikt als onderdeel van dedocker compose
ofdocker run
opdracht.
Tip
U kunt de opdracht docker-installatiekopieën gebruiken om uw gedownloade containerinstallatiekopieën weer te geven. De volgende opdracht bevat bijvoorbeeld de id, opslagplaats en tag van elke gedownloade containerinstallatiekopieën, opgemaakt als een tabel:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Voer de container uit met de opdracht docker-compose up
Vervang de waarden {ENDPOINT_URI} en {API_KEY} door de URI van uw resource-eindpunt en de sleutel van de Azure-resourcepagina.
Zorg ervoor dat de
EULA
waarde is ingesteld op accepteren.De
EULA
,Billing
enApiKey
waarden moeten worden opgegeven. Anders kan de container niet worden gestart.
Belangrijk
De sleutels worden gebruikt voor toegang tot uw Document Intelligence-resource. Deel uw sleutels niet. Sla ze veilig op, bijvoorbeeld met behulp van Azure Key Vault. We raden u ook aan om deze sleutels regelmatig opnieuw te genereren. Er is slechts één sleutel nodig om een API-aanroep te maken. Wanneer u de eerste sleutel opnieuw genereert, kunt u de tweede sleutel gebruiken voor verdere toegang tot de service.
Het volgende codevoorbeeld is een zelfstandig docker compose
voorbeeld om de container Document Intelligence Layout uit te voeren. Met docker compose
kunt u een YAML-bestand gebruiken om de services van uw toepassing te configureren. Vervolgens maakt en start u met de docker-compose up
opdracht alle services vanuit uw configuratie. Voer {FORM_RECOGNIZER_ENDPOINT_URI} en {FORM_RECOGNIZER_KEY} waarden in voor de containerinstantie Indeling.
version: "3.9"
services:
azure-form-recognizer-read:
container_name: azure-form-recognizer-read
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/read-3.1
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- apiKey={FORM_RECOGNIZER_KEY}
ports:
- "5000:5000"
networks:
- ocrvnet
networks:
ocrvnet:
driver: bridge
Nu kunt u de service starten met de docker compose-opdracht:
docker-compose up
Een Docker Compose-bestand maken
Geef dit bestand een naam docker-compose.yml
Het volgende codevoorbeeld is een zelfstandig
docker compose
voorbeeld voor het uitvoeren van documentinformatie-indeling, Studio en aangepaste sjablooncontainers. Metdocker compose
kunt u een YAML-bestand gebruiken om de services van uw toepassing te configureren. Vervolgens maakt en start u metdocker-compose up
de opdracht alle services vanuit uw configuratie.
version: '3.3'
services:
nginx:
image: nginx:alpine
container_name: reverseproxy
depends_on:
- layout
- custom-template
volumes:
- ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf
ports:
- "5000:5000"
layout:
container_name: azure-cognitive-service-layout
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.0:latest
environment:
eula: accept
apikey: ${FORM_RECOGNIZER_KEY}
billing: ${FORM_RECOGNIZER_ENDPOINT_URI}
Logging:Console:LogLevel:Default: Information
SharedRootFolder: /share
Mounts:Shared: /share
Mounts:Output: /logs
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /share
- type: bind
source: ${OUTPUT_MOUNT_PATH}
target: /logs
expose:
- "5000"
custom-template:
container_name: azure-cognitive-service-custom-template
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/custom-template-3.0:latest
restart: always
depends_on:
- layout
environment:
AzureCognitiveServiceLayoutHost: http://azure-cognitive-service-layout:5000
eula: accept
apikey: ${FORM_RECOGNIZER_KEY}
billing: ${FORM_RECOGNIZER_ENDPOINT_URI}
Logging:Console:LogLevel:Default: Information
SharedRootFolder: /share
Mounts:Shared: /share
Mounts:Output: /logs
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /share
- type: bind
source: ${OUTPUT_MOUNT_PATH}
target: /logs
expose:
- "5000"
studio:
container_name: form-recognizer-studio
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/studio:3.0
environment:
ONPREM_LOCALFILE_BASEPATH: /onprem_folder
STORAGE_DATABASE_CONNECTION_STRING: /onprem_db/Application.db
volumes:
- type: bind
source: ${FILE_MOUNT_PATH} # path to your local folder
target: /onprem_folder
- type: bind
source: ${DB_MOUNT_PATH} # path to your local folder
target: /onprem_db
ports:
- "5001:5001"
user: "1000:1000" # echo $(id -u):$(id -g)
Een Docker Compose-bestand maken
Geef dit bestand een naam docker-compose.yml
Het volgende codevoorbeeld is een zelfstandig
docker compose
voorbeeld voor het uitvoeren van documentinformatie-indeling, Studio en aangepaste sjablooncontainers. Metdocker compose
kunt u een YAML-bestand gebruiken om de services van uw toepassing te configureren. Vervolgens maakt en start u metdocker-compose up
de opdracht alle services vanuit uw configuratie.
version: '3.3'
services:
nginx:
image: nginx:alpine
container_name: reverseproxy
depends_on:
- layout
- custom-template
volumes:
- ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf
ports:
- "5000:5000"
layout:
container_name: azure-cognitive-service-layout
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.1:latest
environment:
eula: accept
apikey: ${FORM_RECOGNIZER_KEY}
billing: ${FORM_RECOGNIZER_ENDPOINT_URI}
Logging:Console:LogLevel:Default: Information
SharedRootFolder: /share
Mounts:Shared: /share
Mounts:Output: /logs
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /share
- type: bind
source: ${OUTPUT_MOUNT_PATH}
target: /logs
expose:
- "5000"
custom-template:
container_name: azure-cognitive-service-custom-template
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/custom-template-3.1:latest
restart: always
depends_on:
- layout
environment:
AzureCognitiveServiceLayoutHost: http://azure-cognitive-service-layout:5000
eula: accept
apikey: ${FORM_RECOGNIZER_KEY}
billing: ${FORM_RECOGNIZER_ENDPOINT_URI}
Logging:Console:LogLevel:Default: Information
SharedRootFolder: /share
Mounts:Shared: /share
Mounts:Output: /logs
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /share
- type: bind
source: ${OUTPUT_MOUNT_PATH}
target: /logs
expose:
- "5000"
studio:
container_name: form-recognizer-studio
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/studio:3.1
environment:
ONPREM_LOCALFILE_BASEPATH: /onprem_folder
STORAGE_DATABASE_CONNECTION_STRING: /onprem_db/Application.db
volumes:
- type: bind
source: ${FILE_MOUNT_PATH} # path to your local folder
target: /onprem_folder
- type: bind
source: ${DB_MOUNT_PATH} # path to your local folder
target: /onprem_db
ports:
- "5001:5001"
user: "1000:1000" # echo $(id -u):$(id -g)
De aangepaste sjablooncontainer en indelingscontainer kunnen Azure Storage-wachtrijen of in geheugenwachtrijen gebruiken. De Storage:ObjectStore:AzureBlob:ConnectionString
en queue:azure:connectionstring
omgevingsvariabelen hoeven alleen te worden ingesteld als u Azure Storage-wachtrijen gebruikt. Wanneer u lokaal werkt, verwijdert u deze variabelen.
Controleren of de service wordt uitgevoerd
Om ervoor te zorgen dat de service actief is. Voer deze opdrachten uit in een Ubuntu-shell.
$cd <folder containing the docker-compose file>
$source .env
$docker-compose up
Aangepaste sjablooncontainers vereisen enkele verschillende configuraties en ondersteunen andere optionele configuraties.
Instelling | Vereist | Omschrijving |
---|---|---|
EULA |
Ja | Voorbeeld van acceptatie van licentie: Eula=accept |
Billing | Ja | Factureringseindpunt-URI van de FR-resource |
ApiKey | Ja | De eindpuntsleutel van de FR-resource |
Wachtrij:Azure:ConnectionString | Nee | Azure Queue verbindingsreeks |
Opslag:ObjectStore:AzureBlob:ConnectionString | Nee | Azure Blob-verbindingsreeks |
HealthCheck:MemoryUpperboundInMB | Nee | Geheugendrempel voor het rapporteren van een slechte status aan liveness. Standaard: Hetzelfde als aanbevolen geheugen |
StorageTimeToLiveInMinutes | Nee |
TTL duur om alle tussenliggende en uiteindelijke bestanden te verwijderen. Standaard: twee dagen, TTL kan tussen vijf minuten tot zeven dagen worden ingesteld |
Taak:MaxRunningTimeSpanInMinutes | Nee | Maximale uitvoeringstijd voor het behandelen van de aanvraag als time-out. Standaard: 60 minuten |
HTTP_PROXY_BYPASS_URLS | Nee | Geef URL's op voor het omzeilen van proxyvoorbeeld: HTTP_PROXY_BYPASS_URLS = abc.com, xyz.com |
AzureCognitiveServiceReadHost (ontvangstbewijs, alleen IdDocument-containers) | Ja | Geef URI-voorbeeld van leescontainer op: AzureCognitiveServiceReadHost=http://onprem-frread:5000 |
AzureCognitiveServiceLayoutHost (document, alleen factuurcontainers) | Ja | Geef een indelingscontainer-URI-voorbeeld op: AzureCognitiveServiceLayoutHost=http://onprem-frlayout:5000 |
Document Intelligence Studio gebruiken om een model te trainen
Verzamel een set van ten minste vijf formulieren van hetzelfde type. U gebruikt deze gegevens om het model te trainen en een formulier te testen. U kunt een voorbeeldgegevensset gebruiken (sample_data.zip downloaden en extraheren).
Zodra u kunt bevestigen dat de containers worden uitgevoerd, opent u een browser en gaat u naar het eindpunt waar u de containers hebt geïmplementeerd. Als deze implementatie uw lokale computer is, is
[http://localhost:5001](http://localhost:5001)
het eindpunt.Selecteer de tegel van het aangepaste extractiemodel.
Selecteer de
Create project
optie.Geef een projectnaam en desgewenst een beschrijving op
Geef in de stap 'Uw resource configureren' het eindpunt op voor uw aangepaste sjabloonmodel. Als u de containers op uw lokale computer hebt geïmplementeerd, gebruikt u deze URL
[http://localhost:5000](http://localhost:5000)
.Geef een submap op waarin uw trainingsgegevens zich in de map met bestanden bevinden.
Maak ten slotte het project
U moet nu een project hebben gemaakt dat klaar is voor labelen. Upload uw trainingsgegevens en ga aan de slag met labelen. Zie een aangepast model bouwen en trainen als u geen labelen hebt.
De API gebruiken om te trainen
Als u van plan bent om de API's rechtstreeks aan te roepen om een model te trainen, vereist de aangepaste sjabloonmodel train-API een base64 gecodeerd zip-bestand dat de inhoud van uw labelproject is. U kunt de PDF- of afbeeldingsbestanden weglaten en alleen de JSON-bestanden verzenden.
Zodra uw gegevensset is gelabeld en *.ocr.json, *.labels.json en fields.json bestanden aan een zip-bestand zijn toegevoegd, gebruikt u de PowerShell-opdrachten om de met Base64 gecodeerde tekenreeks te genereren.
$bytes = [System.IO.File]::ReadAllBytes("<your_zip_file>.zip")
$b64String = [System.Convert]::ToBase64String($bytes, [System.Base64FormattingOptions]::None)
Gebruik de api voor het buildmodel om de aanvraag te posten.
POST http://localhost:5000/formrecognizer/documentModels:build?api-version=2023-07-31
{
"modelId": "mymodel",
"description": "test model",
"buildMode": "template",
"base64Source": "<Your base64 encoded string>",
"tags": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
Controleer of de service wordt uitgevoerd
Er zijn verschillende manieren om te controleren of de container wordt uitgevoerd:
De container biedt een startpagina op
\
als een visuele validatie die door de container wordt uitgevoerd.U kunt uw favoriete webbrowser openen en naar het externe IP-adres en de weergegeven poort van de betreffende container navigeren. Gebruik de vermelde aanvraag-URL's om te controleren of de container wordt uitgevoerd. De vermelde voorbeeldaanvraag-URL's zijn
http://localhost:5000
, maar uw specifieke container kan variëren. Houd er rekening mee dat u naar het externe IP-adres en de weergegeven poort van uw container navigeert.Aanvraag-URL Doel http:// localhost:5000/ De container bevat een startpagina. http:// localhost:5000/ready Aangevraagd met GET biedt deze aanvraag een verificatie dat de container gereed is voor het accepteren van een query voor het model. Deze aanvraag kan worden gebruikt voor Kubernetes-liveness- en gereedheidstests. http:// localhost:5000/status Aangevraagd met GET, wordt met deze aanvraag gecontroleerd of de API-sleutel die wordt gebruikt om de container te starten geldig is zonder een eindpuntquery te veroorzaken. Deze aanvraag kan worden gebruikt voor Kubernetes-liveness- en gereedheidstests. http:// localhost:5000/swagger De container bevat een volledige set met documentatie voor de eindpunten en een functie Uitproberen. Met deze functie kunt u uw instellingen invoeren in een HTML-webformulier en de query maken zonder dat u code hoeft te schrijven. Nadat de query is geretourneerd, wordt een voorbeeld van een CURL-opdracht gegeven om de vereiste HTTP-headers en hoofdtekstindeling te demonstreren.
De containers stoppen
Gebruik de volgende opdracht om de containers te stoppen:
docker-compose down
Billing
De Document Intelligence-containers verzenden factureringsgegevens naar Azure met behulp van een Document Intelligence-resource in uw Azure-account.
Query's naar de container worden gefactureerd in de prijscategorie van de Azure-resource die wordt gebruikt voor de API Key
. Facturering wordt berekend voor elke containerinstantie die wordt gebruikt voor het verwerken van uw documenten en afbeeldingen.
Als u de volgende fout krijgt: Container heeft geen geldige status. De abonnementsvalidatie is mislukt met de status OutOfQuota API-sleutel is buiten het quotum. Het is een indicator dat uw containers niet communiceren met het factureringseindpunt.
Verbinding maken met Azure
De container moet de waarden voor factureringsargumenten uitvoeren. Met deze waarden kan de container verbinding maken met het factureringseindpunt. De container rapporteert ongeveer om de 10 tot 15 minuten het gebruik. Als de container niet binnen het toegestane tijdvenster verbinding maakt met Azure, blijft de container actief, maar voert deze geen query's uit totdat het factureringseindpunt is hersteld. De verbinding wordt 10 keer geprobeerd met hetzelfde tijdsinterval van 10 tot 15 minuten. Als er geen verbinding kan worden gemaakt met het factureringseindpunt binnen de 10 pogingen, stopt de container met het verwerken van aanvragen. Zie de veelgestelde vragen over de Azure AI-container voor een voorbeeld van de informatie die naar Microsoft is verzonden voor facturering.
Factureringsargumenten
Met de opdracht docker compose up wordt de container gestart wanneer alle drie de volgende opties geldige waarden bevatten:
Optie | Omschrijving |
---|---|
ApiKey |
De sleutel van de Azure AI-servicesresource die wordt gebruikt om factureringsgegevens bij te houden. De waarde van deze optie moet worden ingesteld op een sleutel voor de ingerichte resource die is opgegeven in Billing . |
Billing |
Het eindpunt van de Azure AI-servicesresource die wordt gebruikt om factureringsgegevens bij te houden. De waarde van deze optie moet worden ingesteld op de eindpunt-URI van een ingerichte Azure-resource. |
Eula |
Geeft aan dat u de licentie voor de container hebt geaccepteerd. De waarde van deze optie moet worden ingesteld op accepteren. |
Zie Containers configureren voor meer informatie over deze opties.
Samenvatting
Dat is het! In dit artikel hebt u concepten en werkstromen geleerd voor het downloaden, installeren en uitvoeren van Document Intelligence-containers. Samengevat:
- Document Intelligence biedt zeven Linux-containers voor Docker.
- Containerinstallatiekopieën worden gedownload van mcr.
- Containerinstallatiekopieën worden uitgevoerd in Docker.
- De factureringsgegevens moeten worden opgegeven wanneer u een container instantieert.
Belangrijk
Azure AI-containers worden niet gelicentieerd om te worden uitgevoerd zonder dat ze zijn verbonden met Azure voor meting. Klanten moeten ervoor zorgen dat de containers altijd factureringsgegevens kunnen communiceren met de meterservice. Azure AI-containers verzenden geen klantgegevens (bijvoorbeeld de afbeelding of tekst die wordt geanalyseerd) naar Microsoft.