Partager via


Conteneurs dans des environnements déconnectés (hors connexion)

La prise en charge des conteneurs est actuellement disponible seulement avec la version d’Intelligence documentaire 2022-08-31 (GA) pour tous les modèles, et avec la version 2023-07-31 (GA) pour les modèles Lecture, Disposition, Facture, Reçu et Document d’identité :

✔️ Consultez les conteneurs Document Intelligence v3.0 dans des environnements déconnectés pour obtenir la documentation sur les conteneurs pris en charge.

Ce contenu s’applique à : coche v3.0 (GA) coche v3.1 (GA)

Que sont des conteneurs déconnectés ?

Les conteneurs Azure AI vous donnent la possibilité d’exécuter des services Document Intelligence localement dans des conteneurs. Les conteneurs connectés s’exécutent localement dans votre environnement et envoient des informations d’utilisation au cloud à des fins de facturation. Les conteneurs déconnectés sont destinés aux scénarios dans lesquels aucune connectivité avec le cloud n’est nécessaire pour l’exécution des conteneurs.

Les conteneurs Azure AI Document Intelligence vous permettent d’utiliser les API Document Intelligence avec les avantages de la conteneurisation. Les conteneurs déconnectés sont proposés par le biais d'une tarification par tranches d'engagement offerte à un tarif réduit par rapport à la tarification à l'usage. Avec la tarification par tranches d'engagement, vous pouvez vous engager à utiliser les fonctionnalités de Document Intelligence pour un montant fixe, à un coût total prévisible, en fonction des besoins de votre charge de travail.

Bien démarrer

Avant d'essayer d'exécuter un conteneur Docker dans un environnement hors ligne, assurez-vous de connaître les exigences suivantes pour télécharger et utiliser le conteneur avec succès :

  • Spécifications et recommandations relatives à l’ordinateur hôte.
  • Commande Docker pull pour télécharger le conteneur.
  • Comment valider l’exécution d’un conteneur.
  • Comment envoyer des requêtes au point de terminaison du conteneur une fois celui-ci en cours d’exécution.

Demander l’accès à des conteneurs dans des environnements déconnectés

Avant de pouvoir utiliser les conteneurs Document Intelligence dans des environnements déconnectés, vous devez d’abord remplir et envoyer un formulaire de demande, ensuite acheter un plan d’engagement.

Créer une nouvelle ressource dans le portail Azure

Commencez par approvisionner une nouvelle ressource dans le portail.

  • Veillez à sélectionner l’option Commitment tier disconnected containers DC0 Niveau tarifaire

  • Sélectionnez le niveau tarifaire approprié parmi au moins l’un des niveaux d’engagement personnalisés, en lecture ou prédéfinis

    Capture d’écran du niveau déconnecté dans le portail Azure.

Conteneur Minimum Recommandé Plan d’engagement
Read 8 cœurs, 10 Go de mémoire 8 cœurs, 24 Go de mémoire OCR (Lecture)
Layout 8 cœurs, 16 Go de mémoire 8 cœurs, 24 Go de mémoire Prédéfinie
Business Card 8 cœurs, 16 Go de mémoire 8 cœurs, 24 Go de mémoire Prédéfinie
General Document 8 cœurs, 12 Go de mémoire 8 cœurs, 24 Go de mémoire Prédéfinie
ID Document 8 cœurs, 8 Go de mémoire 8 cœurs, 24 Go de mémoire Prédéfinie
Invoice 8 cœurs, 16 Go de mémoire 8 cœurs, 24 Go de mémoire Prédéfinie
Receipt 8 cœurs, 11 Go de mémoire 8 cœurs, 24 Go de mémoire Prédéfinie
Custom Template 8 cœurs, 16 Go de mémoire 8 cœurs, 24 Go de mémoire API personnalisée

Collecter les paramètres obligatoires

Il y a trois paramètres qui sont obligatoires pour tous les conteneurs d’Azure AI services :

  • Le contrat de licence utilisateur final (CLUF) doit être présent et avoir été accepté.
  • URL du point de terminaison de votre ressource à partir du Portail Azure.
  • Clé API pour votre ressource à partir du Portail Azure.

À la fois une URL de point de terminaison et une clé API sont nécessaires quand vous exécutez pour la première fois le conteneur afin de le configurer pour une utilisation déconnectée. Vous trouverez la clé et le point de terminaison dans la page Clé et point de terminaison de votre ressource dans le portail Azure :

Capture d’écran de la page des clés et des points de terminaison du portail Azure

Important

Vous utiliserez uniquement votre clé et votre point de terminaison pour configurer le conteneur à exécuter dans un environnement déconnecté. Une fois le conteneur configuré, vous n’aurez plus besoin des valeurs de clé et de point de terminaison pour envoyer des demandes d’API. Stockez-les en toute sécurité, par exemple, à l’aide de Azure Key Vault. Une seule clé est nécessaire pour ce processus.

Télécharger un conteneur Docker avec docker pull

Téléchargez le conteneur Docker qui a été approuvé pour s’exécuter dans un environnement déconnecté. Par exemple :

Commande Docker pull Valeur Format
● ● ● docker pull [image]

docker pull [image]latest
Image conteneur la plus récente. ● ● ● mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.0:latest

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

Commande Docker pull exemple

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

Configurer le conteneur pour qu’il s’exécute dans un environnement déconnecté

Les images de conteneur déconnectées sont les mêmes que les conteneurs connectés. La principale différence est que les conteneurs déconnectés nécessitent un fichier de licence. Ce fichier de licence est téléchargé en démarrant le conteneur en mode connecté avec le paramètre downloadLicense défini sur true.

Maintenant que votre conteneur est téléchargé, vous devez exécuter la commande docker run avec le paramètre suivant :

  • DownloadLicense=True. Ce paramètre télécharge un fichier de licence qui permet l’exécution de votre conteneur Docker quand il n’est pas connecté à Internet. Il contient également une date d’expiration. Une fois celle-ci écoulée, vous ne pourrez plus utiliser le fichier de licence pour exécuter le conteneur. Vous pouvez uniquement utiliser le fichier de licence dans le conteneur approuvé correspondant.

Important

La commandedocker run génère un modèle que vous pouvez utiliser pour exécuter le conteneur. Le modèle contient les paramètres dont vous avez besoin pour les modèles téléchargés et le fichier de configuration. Veillez à enregistrer ce modèle.

L’exemple suivant illustre la mise en forme de la commande docker run à utiliser avec des valeurs d’espace réservé. Remplacez ces valeurs d’espace réservé par vos propres valeurs.

Espace réservé Valeur Format ou exemple
{IMAGE} L’image conteneur que vous souhaitez utiliser. mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice
{LICENSE_MOUNT} Chemin où la licence est téléchargée, puis montée. /host/license:/path/to/license/directory
{ENDPOINT_URI} Point de terminaison permettant d’authentifier votre demande de service. Cette information est disponible dans le portail Azure, sur la page Key and endpoint (Clé et point de terminaison) de votre ressource. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API_KEY} La clé pour votre ressource Document Intelligence. Cette information est disponible dans le portail Azure, sur la page Key and endpoint (Clé et point de terminaison) de votre ressource. {string}
{CONTAINER_LICENSE_DIRECTORY} Emplacement du dossier de licence sur le système de fichiers local du conteneur. /path/to/license/directory

Exemple dedocker run commande


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}

Dans la commande suivante, remplacez les espaces réservés du chemin du dossier, du point de terminaison de facturation et de la clé API afin de télécharger un fichier de licence pour le conteneur de disposition.

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

Une fois le conteneur configuré, utilisez la section suivante pour exécuter le conteneur dans votre environnement avec la licence, et les allocations de mémoire et de processeur appropriées.

Configuration et modèles de conteneur Document Intelligence

Une fois que vous avez configuré le conteneur, les valeurs des modèles Document Intelligence téléchargés et de la configuration du conteneur sont générées et affichées dans la sortie du conteneur.

Exécuter le conteneur dans un environnement déconnecté

Dès que vous avez téléchargé le fichier de licence, vous pouvez exécuter le conteneur dans un environnement déconnecté avec votre licence, la mémoire appropriée et les allocations de processeur adaptées. L’exemple suivant illustre la mise en forme de la commande docker run, avec des valeurs d’espace réservé. Remplacez ces valeurs d’espace réservé par vos propres valeurs.

Quel que soit l’emplacement d’exécution du conteneur, le fichier de licence doit être monté sur le conteneur et l’emplacement du dossier de licence sur le système de fichiers local du conteneur doit être spécifié avec Mounts:License=. De plus, un montage de sortie doit être spécifié afin que les enregistrements d’utilisation puissent être écrits pour la facturation.

Espace réservé Valeur Format ou exemple
{IMAGE} L’image conteneur que vous souhaitez utiliser. mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice
{MEMORY_SIZE} Quantité appropriée de mémoire à allouer à votre conteneur. 4g
{NUMBER_CPUS} Quantité appropriée de processeurs à allouer à votre conteneur. 4
{LICENSE_MOUNT} Chemin où la licence est localisée, puis montée. /host/license:/path/to/license/directory
{OUTPUT_PATH} Chemin de sortie pour la journalisation des enregistrements d’utilisation. /host/output:/path/to/output/directory
{CONTAINER_LICENSE_DIRECTORY} Emplacement du dossier de licence sur le système de fichiers local du conteneur. /path/to/license/directory
{CONTAINER_OUTPUT_DIRECTORY} Emplacement du dossier de sortie sur le système de fichiers local du conteneur. /path/to/output/directory

Exemple dedocker run commande

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}

Le démarrage d’un conteneur déconnecté est similaire au démarrage d’un conteneur connecté. Les conteneurs déconnectés nécessitent un paramètre de licence ajouté. Voici un exemple de fichier docker-compose.yml pour démarrer un conteneur personnalisé en mode déconnecté. Ajoutez la variable d’environnement CUSTOM_LICENSE_MOUNT_PATH avec une valeur définie sur le dossier contenant le fichier de licence téléchargé, et la variable d’environnement OUTPUT_MOUNT_PATH avec une valeur définie sur le dossier qui contient les journaux d’utilisation.

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: /shared
    Mounts:Shared: /shared
    Mounts:Output: /logs
    Mounts:License: /license
  volumes:
    - type: bind
      source: ${SHARED_MOUNT_PATH}
      target: /shared
    - 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: /shared
    Mounts:Shared: /shared
    Mounts:Output: /logs
    Mounts:License: /license
  volumes:
    - type: bind
      source: ${SHARED_MOUNT_PATH}
      target: /shared
    - 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)

Autres paramètres et commandes

Voici quelques paramètres et commandes supplémentaires dont vous avez besoin pour exécuter le conteneur.

Enregistrements d’utilisation

Quand vous utilisez des conteneurs Docker dans un environnement déconnecté, le conteneur écrit des enregistrements d’utilisation dans un volume où ils sont collectés au fil du temps. Vous pouvez également appeler un point de terminaison API REST pour générer un rapport sur l’utilisation du service.

Arguments pour le stockage de journaux

Dans le cadre d’une exécution dans un environnement déconnecté, le conteneur doit avoir accès à un montage de sortie pour y stocker les journaux d’utilisation. Par exemple, vous pouvez inclure -v /host/output:{OUTPUT_PATH} et Mounts:Output={OUTPUT_PATH} dans l’exemple suivant, en remplaçant {OUTPUT_PATH} par le chemin où les journaux sont stockés :

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

Obtient des enregistrements en utilisant les points de terminaison du conteneur

Le conteneur fournit deux points de terminaison pour retourner des enregistrements sur son utilisation.

Obtenir tous les enregistrements

Le point de terminaison suivant fournit un rapport récapitulant toutes les données d’utilisation collectées dans le répertoire d’enregistrements de facturation monté.

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

Exemple de point de terminaison HTTPS

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

Le point de terminaison du journal d’utilisation retourne une réponse JSON similaire à l’exemple suivant :

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

Obtenir les enregistrements pour un mois spécifique

Le point de terminaison suivant fournit un rapport récapitulant l’utilisation pendant un mois et une année spécifiques.

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

Ce point de terminaison de journaux d’utilisation retourne une réponse JSON similaire à l’exemple suivant :

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

Dépannage

Exécutez le conteneur avec un montage de sortie et une journalisation activés. Ces paramètres permettent au conteneur de générer des fichiers journaux utiles pour résoudre les problèmes qui se produisent lors du démarrage ou de l’exécution du conteneur.

Conseil

Pour plus d’informations et de conseils sur la résolution des problèmes, consultez les questions fréquentes sur les conteneurs déconnectés.

Étapes suivantes