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:
-
REST API
2022-08-31 (GA)
-
REST API
2023-07-31 (GA)
-
Clientbibliotheken gericht
REST API 2022-08-31 (GA)
-
Clientbibliotheken gericht
REST API 2023-07-31 (GA)
✔️ 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:v3.0 (GA)
v3.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
selecteertSelecteer de juiste prijscategorie uit ten minste één van de aangepaste, gelezen of vooraf gedefinieerde toezeggingslagen
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:
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.
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.