Delen via


Containers in niet-verbonden (offline) omgevingen

Document Intelligence biedt geen ondersteuning voor containers voor v4.0. Ondersteuning voor containers is momenteel beschikbaar met documentinformatieversie 2022-08-31 (GA) voor alle modellen en 2023-07-31 (GA) voor documentmodellen lezen, indeling, factuur, ontvangstbewijs en id-document:

✔️ Zie Document Intelligence v3.0-containers in niet-verbonden omgevingen of Document Intelligence v3.1-containers in niet-verbonden omgevingen voor ondersteunde versies van containerdocumentatie.

Deze inhoud is van toepassing op:vinkjev3.0 (GA)vinkjev3.1 (GA)

Wat zijn niet-verbonden containers?

Azure AI-containers bieden u de flexibiliteit om enkele Document Intelligence-services lokaal in containers uit te voeren. Verbonden containers worden lokaal uitgevoerd in uw omgeving en verzenden gebruiksgegevens naar de cloud voor facturering. Niet-verbonden containers zijn bedoeld voor scenario's waarbij er geen verbinding met de cloud nodig is om de containers uit te voeren.

Met Azure AI Document Intelligence-containers kunt u Document Intelligence-API's gebruiken met de voordelen van containerisatie. Niet-verbonden containers worden aangeboden via prijscategorieën voor toezeggingscategorieën tegen een gereduceerd tarief in vergelijking met prijzen voor betalen per gebruik. Met prijscategorieën voor toezeggingen kunt u documentinformatiefuncties gebruiken voor een vaste vergoeding, tegen een voorspelbare totale kosten, op basis van de behoeften van uw workload.

Aan de slag

Voordat u probeert een Docker-container uit te voeren in een offlineomgeving, moet u ervoor zorgen dat u bekend bent met de volgende vereisten om de container te downloaden en te gebruiken:

  • Vereisten en aanbevelingen voor hostcomputers.
  • De Docker-opdracht pull om de container te downloaden.
  • Controleren of een container wordt uitgevoerd.
  • Query's verzenden naar het eindpunt van de container zodra deze wordt uitgevoerd.

Toegang aanvragen voor het gebruik van containers in niet-verbonden omgevingen

Voordat u Document Intelligence-containers kunt gebruiken in niet-verbonden omgevingen, moet u eerst een aanvraagformulier invullen en indienen en een toezeggingsplan aanschaffen.

Een nieuwe resource maken in Azure Portal

Begin met het inrichten van een nieuwe resource in de portal.

  • Zorg ervoor dat u de optie voor prijscategorie Commitment tier disconnected containers DC0 selecteert

  • Selecteer de juiste prijscategorie uit ten minste één van de aangepaste, gelezen of vooraf gedefinieerde toezeggingslagen

    Schermopname van de configuratie van de niet-verbonden laag in Azure Portal.

Container Minimaal Aanbevolen Toezeggingsplan
Read 8 kernen, 10 GB geheugen 8 kerngeheugens, 24 GB geheugen OCR (Lezen)
Layout 8 kerngeheugens, 16 GB geheugen 8 kerngeheugens, 24 GB geheugen Vooraf gebouwd
Business Card 8 kerngeheugens, 16 GB geheugen 8 kerngeheugens, 24 GB geheugen Vooraf gebouwd
General Document 8 kernen, 12 GB geheugen 8 kerngeheugens, 24 GB geheugen Vooraf gebouwd
ID Document 8 kernen, 8 GB geheugen 8 kerngeheugens, 24 GB geheugen Vooraf gebouwd
Invoice 8 kerngeheugens, 16 GB geheugen 8 kerngeheugens, 24 GB geheugen Vooraf gebouwd
Receipt 8 kerngeheugens, 11 GB geheugen 8 kerngeheugens, 24 GB geheugen Vooraf gebouwd
Custom Template 8 kerngeheugens, 16 GB geheugen 8 kerngeheugens, 24 GB geheugen Aangepaste API

Vereiste parameters verzamelen

Er zijn drie vereiste parameters voor de containers van alle Azure AI-services:

  • De gebruiksrechtovereenkomst (EULA) moet aanwezig zijn met een waarde van accepteren.
  • De eindpunt-URL voor uw resource vanuit Azure Portal.
  • De API-sleutel voor uw resource vanuit Azure Portal.

Zowel de eindpunt-URL als de API-sleutel zijn nodig wanneer u de container voor het eerst uitvoert om deze te configureren voor niet-verbonden gebruik. U vindt de sleutel en het eindpunt op de pagina Sleutel en eindpunt voor uw resource in Azure Portal:

Schermopname van azure Portal-sleutels en eindpuntpagina.

Belangrijk

U gebruikt uw sleutel en eindpunt alleen om de container te configureren voor uitvoering in een niet-verbonden omgeving. Nadat u de container hebt geconfigureerd, hebt u de sleutel- en eindpuntwaarden niet nodig om API-aanvragen te verzenden. Sla ze veilig op, bijvoorbeeld met behulp van Azure Key Vault. Er is slechts één sleutel nodig voor dit proces.

Een Docker-container downloaden met docker pull

Download de Docker-container die is goedgekeurd voor uitvoering in een niet-verbonden omgeving. Voorbeeld:

Docker pull-opdracht Weergegeven als Notatie
● ● docker pull [image]

docker pull [image]latest
De meest recente containerinstallatiekopieën. ● ● mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.0:latest

mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice-3.0:latest

Voorbeeld van docker pull-opdracht

docker pull mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice:latest

De container configureren die moet worden uitgevoerd in een niet-verbonden omgeving

Niet-verbonden containerinstallatiekopieën zijn hetzelfde als verbonden containers. Het belangrijkste verschil is dat voor de niet-verbonden containers een licentiebestand is vereist. Dit licentiebestand wordt gedownload door de container te starten in een verbonden modus met de parameter downloadLicense ingesteld op true.

Nu uw container is gedownload, moet u de docker run opdracht uitvoeren met de volgende parameter:

  • DownloadLicense=True. Met deze parameter wordt een licentiebestand gedownload waarmee uw Docker-container kan worden uitgevoerd wanneer deze niet is verbonden met internet. Het bevat ook een vervaldatum, waarna het licentiebestand ongeldig is om de container uit te voeren. U kunt het licentiebestand alleen gebruiken in de bijbehorende goedgekeurde container.

Belangrijk

Met docker run de opdracht wordt een sjabloon gegenereerd die u kunt gebruiken om de container uit te voeren. De sjabloon bevat parameters die u nodig hebt voor de gedownloade modellen en het configuratiebestand. Zorg ervoor dat u deze sjabloon opslaat.

In het volgende voorbeeld ziet u de opmaak voor de docker run opdracht die moet worden gebruikt met waarden voor tijdelijke aanduidingen. Vervang deze tijdelijke aanduidingen door uw eigen waarden.

Tijdelijke aanduiding Weergegeven als Opmaak of voorbeeld
{IMAGE} De containerinstallatiekopieën die u wilt gebruiken. mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice
{LICENSE_MOUNT} Het pad waar de licentie is gedownload en gekoppeld. /host/license:/path/to/license/directory
{ENDPOINT_URI} Het eindpunt voor het verifiëren van uw serviceaanvraag. U vindt deze op de pagina Sleutel en eindpunt van uw resource, in Azure Portal. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API_KEY} De sleutel voor uw Document Intelligence-resource. U vindt deze op de pagina Sleutel en eindpunt van uw resource, in Azure Portal. {string}
{CONTAINER_LICENSE_DIRECTORY} Locatie van de licentiemap in het lokale bestandssysteem van de container. /path/to/license/directory

Voorbeeldopdracht docker run


docker run --rm -it -p 5000:5050 \

-v {LICENSE_MOUNT} \

{IMAGE} \

eula=accept \

billing={ENDPOINT_URI} \

apikey={API_KEY} \

DownloadLicense=True \

Mounts:License={CONTAINER_LICENSE_DIRECTORY}

Vervang in de volgende opdracht de tijdelijke aanduidingen voor het mappad, het factureringseindpunt en de API-sleutel om een licentiebestand voor de indelingscontainer te downloaden.

docker run -v {folder path}:/license --env Mounts:License=/license --env DownloadLicense=True --env Eula=accept --env Billing={billing endpoint} --env ApiKey={api key} mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.0:latest

Nadat de container is geconfigureerd, gebruikt u de volgende sectie om de container in uw omgeving uit te voeren met de licentie en de juiste geheugen- en CPU-toewijzingen.

Document Intelligence-containermodellen en -configuratie

Nadat u de container hebt geconfigureerd, worden de waarden voor de gedownloade Document Intelligence-modellen en containerconfiguratie gegenereerd en weergegeven in de containeruitvoer.

De container uitvoeren in een niet-verbonden omgeving

Zodra u het licentiebestand hebt gedownload, kunt u de container uitvoeren in een niet-verbonden omgeving met uw licentie, het juiste geheugen en geschikte CPU-toewijzingen. In het volgende voorbeeld ziet u de opmaak van de docker run opdracht met tijdelijke aanduidingen. Vervang deze waarden voor tijdelijke aanduidingen door uw eigen waarden.

Wanneer de container wordt uitgevoerd, moet het licentiebestand worden gekoppeld aan de container en moet de locatie van de licentiemap in het lokale bestandssysteem van de container worden opgegeven met Mounts:License=. Daarnaast moet een uitvoerkoppeling worden opgegeven, zodat factureringsgebruiksrecords kunnen worden geschreven.

Tijdelijke aanduiding Weergegeven als Opmaak of voorbeeld
{IMAGE} De containerinstallatiekopieën die u wilt gebruiken. mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice
{MEMORY_SIZE} De juiste grootte van het geheugen dat moet worden toegewezen voor uw container. 4g
{NUMBER_CPUS} Het juiste aantal CPU's dat moet worden toegewezen voor uw container. 4
{LICENSE_MOUNT} Het pad waar de licentie zich bevindt en is gekoppeld. /host/license:/path/to/license/directory
{OUTPUT_PATH} Het uitvoerpad voor het vastleggen van gebruiksrecords. /host/output:/path/to/output/directory
{CONTAINER_LICENSE_DIRECTORY} Locatie van de licentiemap in het lokale bestandssysteem van de container. /path/to/license/directory
{CONTAINER_OUTPUT_DIRECTORY} Locatie van de uitvoermap in het lokale bestandssysteem van de container. /path/to/output/directory

Voorbeeldopdracht docker run

docker run --rm -it -p 5000:5050 --memory {MEMORY_SIZE} --cpus {NUMBER_CPUS} \

-v {LICENSE_MOUNT} \

-v {OUTPUT_PATH} \

{IMAGE} \

eula=accept \

Mounts:License={CONTAINER_LICENSE_DIRECTORY}

Mounts:Output={CONTAINER_OUTPUT_DIRECTORY}

Het starten van een niet-verbonden container is vergelijkbaar met het starten van een verbonden container. Voor niet-verbonden containers is een toegevoegde licentieparameter vereist. Hier volgt een voorbeeldbestand docker-compose.yml voor het starten van een aangepaste container in de niet-verbonden modus. Voeg de omgevingsvariabele CUSTOM_LICENSE_MOUNT_PATH toe met een waarde die is ingesteld op de map met het gedownloade licentiebestand en de OUTPUT_MOUNT_PATH omgevingsvariabele met een waarde die is ingesteld op de map met de gebruikslogboeken.

version: '3.3'
services:
 nginx:
  image: nginx:alpine
  container_name: reverseproxy
  volumes:
    - ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf
  ports:
    - "5000:5050"
 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
    Mounts:License: /license
  volumes:
    - type: bind
      source: ${SHARED_MOUNT_PATH}
      target: /share
    - type: bind
      source: ${OUTPUT_MOUNT_PATH}
      target: /logs
    - type: bind
      source: ${LAYOUT_LICENSE_MOUNT_PATH}
      target: /license
  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
    Mounts:License: /license
  volumes:
    - type: bind
      source: ${SHARED_MOUNT_PATH}
      target: /share
    - type: bind
      source: ${OUTPUT_MOUNT_PATH}
      target: /logs
    - type: bind
      source: ${CUSTOM_LICENSE_MOUNT_PATH}
      target: /license
  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)

Andere parameters en opdrachten

Hier volgen nog enkele parameters en opdrachten die u nodig hebt om de container uit te voeren.

Gebruiksrecords

Wanneer u Docker-containers in een niet-verbonden omgeving gebruikt, schrijft de container gebruiksrecords naar een volume waar ze na verloop van tijd worden verzameld. U kunt ook een REST API-eindpunt aanroepen om een rapport over servicegebruik te genereren.

Argumenten voor het opslaan van logboeken

Wanneer deze wordt uitgevoerd in een niet-verbonden omgeving, moet er een uitvoerkoppeling beschikbaar zijn voor de container om gebruikslogboeken op te slaan. U moet bijvoorbeeld het volgende voorbeeld opnemen -v /host/output:{OUTPUT_PATH} en Mounts:Output={OUTPUT_PATH} vervangen door {OUTPUT_PATH} het pad waar de logboeken worden opgeslagen:

docker run -v /host/output:{OUTPUT_PATH} ... <image> ... Mounts:Output={OUTPUT_PATH}

Records ophalen met behulp van de containereindpunten

De container biedt twee eindpunten voor het retourneren van records over het gebruik ervan.

Alle records ophalen

Het volgende eindpunt bevat een rapport met een overzicht van het gebruik dat is verzameld in de gekoppelde factureringsrecordmap.

https://<service>/records/usage-logs/

Voorbeeld van HTTPS-eindpunt

http://localhost:5000/records/usage-logs

Het eindpunt voor gebruikslogboek retourneert een JSON-antwoord dat vergelijkbaar is met het volgende voorbeeld:

{
  "apiType": "string",
  "serviceName": "string",
  "meters": [
    {
      "name": "string",
      "quantity": 256345435
    }
  ]
}

Records ophalen voor een specifieke maand

Het volgende eindpunt bevat een rapport waarin het gebruik van een specifieke maand en een bepaald jaar wordt samengevat.

https://<service>/records/usage-logs/{MONTH}/{YEAR}

Dit eindpunt voor gebruikslogboeken retourneert een JSON-antwoord dat vergelijkbaar is met het volgende voorbeeld:

{
  "apiType": "string",
  "serviceName": "string",
  "meters": [
    {
      "name": "string",
      "quantity": 56097
    }
  ]
}

Probleemoplossing

Voer de container uit met een uitvoerkoppeling en logboekregistratie ingeschakeld. Met deze instellingen kan de container logboekbestanden genereren die handig zijn voor het oplossen van problemen die optreden tijdens het starten of uitvoeren van de container.

Tip

Zie Veelgestelde vragen over niet-verbonden containers voor meer informatie en richtlijnen voor probleemoplossing.

Volgende stappen