Installera och köra containrar
Det här innehållet gäller för: v3.0 (GA)
v3.1 (GA)
Azure AI Document Intelligence är en Azure AI-tjänst som gör att du kan skapa automatiserad databehandlingsprogramvara med hjälp av maskininlärningsteknik. Med Dokumentinformation kan du identifiera och extrahera text, nyckel/värde-par, markeringsmarkeringar, tabelldata med mera från dina dokument. Resultaten levereras som strukturerade data som .. /innehåller relationerna i den ursprungliga filen. Containrar bearbetar endast de data som tillhandahålls till dem och använder endast de resurser som de har behörighet att komma åt. Containrar kan inte bearbeta data från andra regioner.
I den här artikeln kan du lära dig hur du laddar ned, installerar och kör dokumentinformationscontainrar. Med containrar kan du köra dokumentinformationstjänsten i din egen miljö. Containrar är bra för specifika säkerhets- och datastyrningskrav.
Läs-, layout-, ID-dokument-, kvitto- och fakturamodeller stöds av Dokumentinformation v3.1-containrar.
Läs-, layout-, allmänt dokument-, visitkorts- och anpassade modeller stöds av Dokumentinformation v3.0-containrar.
Versionsstöd
Stöd för containrar är för närvarande tillgängligt med dokumentinformationsversion v3.0: 2022-08-31 (GA)
för alla modeller och v3.1 2023-07-31 (GA)
för modeller för läsning, layout, ID-dokument, kvitto och faktura:
-
REST-API
v3.0: 2022-08-31 (GA)
-
REST-API
v3.1: 2023-07-31 (GA)
-
Mål för klientbibliotek
REST API v3.0: 2022-08-31 (GA)
-
Mål för klientbibliotek
REST API v3.1: 2023-07-31 (GA)
Förutsättningar
För att komma igång behöver du ett aktivt Azure-konto. Om du inte har någon, kan du skapa ett kostnadsfritt konto.
Du behöver också följande för att använda dokumentinformationscontainrar:
Obligatoriskt | Syfte |
---|---|
Kunskaper om Docker | Du bör ha en grundläggande förståelse för Docker-begrepp, till exempel register, lagringsplatser, containrar och containeravbildningar, samt kunskaper om grundläggande docker terminologi och kommandon. |
Docker Engine installerat |
|
Dokumentinformationsresurs | En Azure AI-dokumentinformation med en tjänst eller en resurs med flera tjänster i Azure Portal. Om du vill använda containrarna måste du ha den associerade nyckeln och slutpunkts-URI:n. Båda värdena är tillgängliga på sidan Azure Portal Dokumentinformationsnycklar och Slutpunkt:
|
Valfritt | Syfte |
---|---|
Azure CLI (kommandoradsgränssnitt) | Med Azure CLI kan du använda en uppsättning onlinekommandon för att skapa och hantera Azure-resurser. Den är tillgänglig för installation i Windows-, macOS- och Linux-miljöer och kan köras i en Docker-container och Azure Cloud Shell. |
Krav för värddator
Värden är en x64-baserad dator som kör Docker-containern. Det kan vara en dator lokalt eller en Docker-värdtjänst i Azure, till exempel:
- Azure Kubernetes Service.
- Azure Container Instances.
- Ett Kubernetes-kluster som distribuerats till Azure Stack. Mer information finns i Distribuera Kubernetes till Azure Stack.
Kommentar
Observera att Studio-containern inte kan distribueras och köras i Azure Kubernetes Service. Studiocontainern stöds bara för att köras på den lokala datorn.
Krav och rekommendationer för containrar
Nödvändiga stödcontainrar
I följande tabell visas en eller flera stödcontainrar för varje dokumentinformationscontainer som du laddar ned. Mer information finns i avsnittet Fakturering .
Funktionscontainer | Stödcontainrar |
---|---|
Läs | Krävs inte |
Layout | Krävs inte |
Visitkort | Läs |
Allmänt dokument | Layout |
Faktura | Layout |
Kvitto | Läsa eller layout |
ID-dokument | Läs |
Anpassad mall | Layout |
Rekommenderade processorkärnor och minne
Kommentar
De lägsta och rekommenderade värdena baseras på Docker-gränser och inte på värddatorresurserna.
Dokumentinformationscontainrar
Container | Lägsta | Rekommenderas |
---|---|---|
Read |
8 kärnor, 10 GB minne |
8 kärnor, 24 GB minne |
Layout |
8 kärnor, 16 GB minne |
8 kärnor, 24 GB minne |
Business Card |
8 kärnor, 16 GB minne |
8 kärnor, 24 GB minne |
General Document |
8 kärnor, 12 GB minne |
8 kärnor, 24 GB minne |
ID Document |
8 kärnor, 8 GB minne |
8 kärnor, 24 GB minne |
Invoice |
8 kärnor, 16 GB minne |
8 kärnor, 24 GB minne |
Receipt |
8 kärnor, 11 GB minne |
8 kärnor, 24 GB minne |
Custom Template |
8 kärnor, 16 GB minne |
8 kärnor, 24 GB minne |
- Varje kärna måste vara minst 2,6 gigahertz (GHz) eller snabbare.
- Kärna och minne motsvarar
--cpus
inställningarna och--memory
som används som en del avdocker compose
kommandot ellerdocker run
.
Dricks
Du kan använda kommandot docker images för att visa en lista över dina nedladdade containeravbildningar. Följande kommando visar till exempel ID, lagringsplats och tagg för varje nedladdad containeravbildning, formaterad som en tabell:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Kör containern med kommandot docker-compose up
Ersätt värdena {ENDPOINT_URI} och {API_KEY} med resursens slutpunkts-URI och nyckeln från Azure-resurssidan.
Kontrollera att värdet
EULA
är inställt på att acceptera.Värdena
EULA
,Billing
ochApiKey
måste anges. Annars kan containern inte starta.
Viktigt!
Nycklarna används för att komma åt dokumentinformationsresursen. Dela inte dina nycklar. Lagra dem på ett säkert sätt, till exempel med hjälp av Azure Key Vault. Vi rekommenderar också att du återskapar nycklarna regelbundet. Endast en nyckel krävs för att göra ett API-anrop. När du återskapar den första nyckeln kan du använda den andra nyckeln för fortsatt åtkomst till tjänsten.
Följande kodexempel är ett fristående docker compose
exempel för att köra containern Document Intelligence Layout. Med docker compose
använder du en YAML-fil för att konfigurera programmets tjänster.
docker-compose up
Med kommandot skapar och startar du sedan alla tjänster från konfigurationen. Ange {FORM_RECOGNIZER_ENDPOINT_URI} och {FORM_RECOGNIZER_KEY} värden för din layoutcontainerinstans.
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 kan du starta tjänsten med kommandot docker compose :
docker-compose up
Skapa en docker compose-fil
Namnge den här filen docker-compose.yml
Följande kodexempel är ett fristående
docker compose
exempel för att köra containrar för dokumentinformationslayout, Studio och anpassad mall tillsammans. Meddocker compose
använder du en YAML-fil för att konfigurera programmets tjänster.docker-compose up
Med kommandot skapar och startar du sedan alla tjänster från konfigurationen.
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)
Skapa en docker compose-fil
Namnge den här filen docker-compose.yml
Följande kodexempel är ett fristående
docker compose
exempel för att köra containrar för dokumentinformationslayout, Studio och anpassad mall tillsammans. Meddocker compose
använder du en YAML-fil för att konfigurera programmets tjänster.docker-compose up
Med kommandot skapar och startar du sedan alla tjänster från konfigurationen.
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)
Den anpassade mallcontainern och layoutcontainern kan använda Azure Storage-köer eller i minnesköer. Miljövariablerna Storage:ObjectStore:AzureBlob:ConnectionString
och queue:azure:connectionstring
behöver bara anges om du använder Azure Storage-köer. När du kör lokalt tar du bort dessa variabler.
Kontrollera att tjänsten körs
För att säkerställa att tjänsten är igång. Kör dessa kommandon i ett Ubuntu-gränssnitt.
$cd <folder containing the docker-compose file>
$source .env
$docker-compose up
Anpassade mallcontainrar kräver några olika konfigurationer och stöder andra valfria konfigurationer.
Inställning | Obligatoriskt | Beskrivning |
---|---|---|
EULA |
Ja | Exempel på licensgodkännande: Eula=accept |
Fakturering | Ja | Faktureringsslutpunkts-URI för FR-resursen |
ApiKey | Ja | Slutpunktsnyckeln för FR-resursen |
Kö:Azure:ConnectionString | Nej | Azure Queue anslutningssträng |
Storage:ObjectStore:AzureBlob:ConnectionString | Nej | Azure Blob anslutningssträng |
HealthCheck:MemoryUpperboundInMB | Nej | Minneströskel för att rapportera felfritt till livskraft. Standard: Samma som rekommenderat minne |
StorageTimeToLiveInMinutes | Nej |
TTL varaktighet för att ta bort alla mellanliggande och slutgiltiga filer. Standard: Två dagar, TTL kan ställa in mellan fem minuter och sju dagar |
Uppgift:MaxRunningTimeSpanInMinutes | Nej | Maximal körningstid för behandling av begäran som tidsgräns. Standard: 60 minuter |
HTTP_PROXY_BYPASS_URLS | Nej | Ange URL:er för att kringgå proxyexempel: HTTP_PROXY_BYPASS_URLS = abc.com, xyz.com |
AzureCognitiveServiceReadHost (endast kvitto, IdDocument-containrar) | Ja | Ange Read container uri Example:AzureCognitiveServiceReadHost=http://onprem-frread:5000 |
AzureCognitiveServiceLayoutHost (endast dokument, fakturacontainrar) | Ja | Ange uri för layoutcontainer: Exempel:AzureCognitiveServiceLayoutHost=http://onprem-frlayout:5000 |
Använda Document Intelligence Studio för att träna en modell
Samla in en uppsättning med minst fem former av samma typ. Du använder dessa data för att träna modellen och testa ett formulär. Du kan använda en exempeldatauppsättning (ladda ned och extrahera sample_data.zip).
När du kan bekräfta att containrarna körs öppnar du en webbläsare och navigerar till slutpunkten där du har distribuerat containrarna. Om den här distributionen är din lokala dator är
[http://localhost:5001](http://localhost:5001)
slutpunkten .Välj panelen för den anpassade extraheringsmodellen.
Välj alternativet
Create project
.Ange ett projektnamn och eventuellt en beskrivning
I steget "konfigurera din resurs" anger du slutpunkten till din anpassade mallmodell. Om du har distribuerat containrarna på den lokala datorn använder du den här URL:en
[http://localhost:5000](http://localhost:5000)
.Ange en undermapp för var dina träningsdata finns i filmappen.
Skapa slutligen projektet
Nu bör du skapa ett projekt som är redo för etikettering. Ladda upp dina träningsdata och kom igång med etikettering. Om du inte har använt etiketter tidigare kan du läsa skapa och träna en anpassad modell.
Använda API:et för att träna
Om du planerar att anropa API:erna direkt för att träna en modell kräver tränings-API:et för den anpassade mallmodellen en base64-kodad zip-fil som är innehållet i ditt etikettprojekt. Du kan utelämna PDF- eller bildfilerna och endast skicka JSON-filerna.
När du har fått din datauppsättning märkt och *.ocr.json, *.labels.json och fields.json filer som lagts till i en zip använder du PowerShell-kommandona för att generera den base64-kodade strängen.
$bytes = [System.IO.File]::ReadAllBytes("<your_zip_file>.zip")
$b64String = [System.Convert]::ToBase64String($bytes, [System.Base64FormattingOptions]::None)
Använd byggmodell-API:et för att publicera begäran.
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"
}
}
Verifiera att tjänsten körs
Det finns flera sätt att verifiera att containern körs:
Containern tillhandahåller en startsida på
\
som en visuell validering som containern körs på.Du kan öppna din favoritwebbläsare och gå till den externa IP-adressen och den exponerade porten för containern i fråga. Använd url:erna för den angivna begäran för att verifiera att containern körs. Url:erna för begärande i listan är
http://localhost:5000
, men din specifika container kan variera. Tänk på att du navigerar till containerns externa IP-adress och exponerade port.Begärans-URL Syfte http:// localhost:5000/ Containern tillhandahåller en startsida. http:// localhost:5000/ready Den här begäran begärs med GET och ger en verifiering av att containern är redo att acceptera en fråga mot modellen. Den här begäran kan användas för Kubernetes liveness- och beredskapsavsökningar. http:// localhost:5000/status Begärd med GET verifierar den här begäran om api-nyckeln som används för att starta containern är giltig utan att orsaka en slutpunktsfråga. Den här begäran kan användas för Kubernetes liveness- och beredskapsavsökningar. http:// localhost:5000/swagger Containern tillhandahåller en fullständig uppsättning dokumentation för slutpunkterna samt en Prova-funktion. Med den här funktionen kan du ange inställningarna i ett webbaserat HTML-formulär och göra frågan utan att behöva skriva någon kod. När frågan har returnerats tillhandahålls ett exempel på ETT CURL-kommando för att demonstrera nödvändiga HTTP-huvuden och brödtextformat.
Stoppa containrarna
Om du vill stoppa containrarna använder du följande kommando:
docker-compose down
Fakturering
Dokumentinformationscontainrarna skickar faktureringsinformation till Azure med hjälp av en dokumentinformationsresurs på ditt Azure-konto.
Frågor till containern faktureras på prisnivån för den Azure-resurs som används för API Key
:et . Fakturering beräknas för varje containerinstans som används för att bearbeta dokument och bilder.
Om du får följande fel: Containern är inte i ett giltigt tillstånd. Prenumerationsverifieringen misslyckades med statusen "OutOfQuota"-API-nyckeln är inte kvoterad. Det är en indikator på att dina containrar inte kommunicerar med faktureringsslutpunkten.
Ansluta till Azure
Containern behöver faktureringsargumentvärdena för att köras. Med de här värdena kan containern ansluta till faktureringsslutpunkten. Containern rapporterar användning var 10:e till 15:e minut. Om containern inte ansluter till Azure inom den tillåtna tidsperioden fortsätter containern att köras, men hanterar inte frågor förrän faktureringsslutpunkten har återställts. Anslutningen görs 10 gånger med samma tidsintervall på 10 till 15 minuter. Om den inte kan ansluta till faktureringsslutpunkten inom de 10 försöken slutar containern att hantera begäranden. Se vanliga frågor och svar om Azure AI-container för ett exempel på den information som skickas till Microsoft för fakturering.
Faktureringsargument
Kommandot docker-compose up startar containern när alla tre av följande alternativ har giltiga värden:
Alternativ | Description |
---|---|
ApiKey |
Nyckeln för azure AI-tjänstresursen som används för att spåra faktureringsinformation. Värdet för det här alternativet måste anges till en nyckel för den etablerade resursen som anges i Billing . |
Billing |
Slutpunkten för azure AI-tjänstresursen som används för att spåra faktureringsinformation. Värdet för det här alternativet måste anges till slutpunkts-URI:n för en etablerad Azure-resurs. |
Eula |
Anger att du har godkänt licensen för containern. Värdet för det här alternativet måste vara inställt på att acceptera. |
Mer information om de här alternativen finns i Konfigurera containrar.
Sammanfattning
Det var allt! I den här artikeln har du lärt dig begrepp och arbetsflöden för att ladda ned, installera och köra dokumentinformationscontainrar. Sammanfattningsvis:
- Dokumentinformation tillhandahåller sju Linux-containrar för Docker.
- Containeravbildningar laddas ned från mcr.
- Containeravbildningar körs i Docker.
- Faktureringsinformationen måste anges när du instansierar en container.
Viktigt!
Azure AI-containrar är inte licensierade att köras utan att vara anslutna till Azure för mätning. Kunder måste göra det möjligt för containrarna att kommunicera faktureringsinformation med mätningstjänsten hela tiden. Azure AI-containrar skickar inte kunddata (till exempel den bild eller text som analyseras) till Microsoft.