Installer et exécuter des conteneurs Docker LUISInstall and run LUIS docker containers

Le conteneur LUIS (Language Understanding) charge votre modèle Language Understanding entraîné ou publié, également connu sous le nom d’application LUIS, dans un conteneur docker et fournit l’accès aux prédictions de requête à partir des points de terminaison d’API du conteneur.The Language Understanding (LUIS) container loads your trained or published Language Understanding model, also know as a LUIS app, into a docker container and provides access to the query predictions from the container's API endpoints. Vous pouvez collecter les journaux de requête du conteneur et les charger à nouveau sur l’application Language Understanding pour améliorer la précision de prédiction de l’application.You can collect query logs from the container and upload these back to the Language Understanding app to improve the app's prediction accuracy.

La vidéo suivante illustre l’utilisation de ce conteneur.The following video demonstrates using this container.

Démonstration d’un conteneur pour Cognitive ServicesContainer demonstration for Cognitive Services

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

PrérequisPrerequisites

Pour exécuter le conteneur LUIS, vous devez disposer des éléments suivants :In order to run the LUIS container, you must have the following:

ObligatoireRequired ObjectifPurpose
Moteur DockerDocker Engine Vous avez besoin d’un moteur Docker installé sur un ordinateur hôte.You need the Docker Engine installed on a host computer. Docker fournit des packages qui configurent l’environnement Docker sur macOS, Windows et Linux.Docker provides packages that configure the Docker environment on macOS, Windows, and Linux. Pour apprendre les principes de base de Docker et des conteneurs, consultez la vue d’ensemble de Docker.For a primer on Docker and container basics, see the Docker overview.

Vous devez configurer Docker pour permettre aux conteneurs de se connecter à Azure et de lui envoyer des données de facturation.Docker must be configured to allow the containers to connect with and send billing data to Azure.

Sur Windows, vous devez également configurer Docker pour prendre en charge les conteneurs Linux.On Windows, Docker must also be configured to support Linux containers.

Bonne connaissance de DockerFamiliarity with Docker Vous devez avoir une compréhension élémentaire des concepts Docker, notamment les registres, référentiels, conteneurs et images conteneurs, ainsi qu’une maîtrise des commandes docker de base.You should have a basic understanding of Docker concepts, like registries, repositories, containers, and container images, as well as knowledge of basic docker commands.
La ressource Azure Cognitive Services et le fichier d’application empaquetée LUISAzure Cognitive Services resource and LUIS packaged app file Pour pouvoir utiliser le conteneur, vous devez disposer des éléments suivants :In order to use the container, you must have:

* Une ressource Azure Cognitive Services et la clé de facturation de l’URI du point de terminaison de facturation associée.* A Cognitive Services Azure resource and the associated billing key the billing endpoint URI. Les deux valeurs, disponibles dans les pages Vue d’ensemble et Clés de la ressource, sont nécessaires au démarrage du conteneur.Both values are available on the Overview and Keys pages for the resource and are required to start the container. Vous devez ajouter le routage luis/v2.0 à l’URI de point de terminaison, comme dans l’exemple BILLING_ENDPOINT_URI suivant.You need to add the luis/v2.0 routing to the endpoint URI as shown in the following BILLING_ENDPOINT_URI example.
* Une application entraînée ou publiée empaquetée en tant qu’entrée montée dans le conteneur avec son ID d’application associé.* A trained or published app packaged as a mounted input to the container with its associated App ID. Vous pouvez obtenir le fichier empaqueté à partir du portail LUIS ou des API de création.You can get the packaged file from the LUIS portal or the Authoring APIs. Si vous obtenez des applications empaquetées LUIS à partir des API de création, vous aurez également besoin de votre clé de création.If you are getting LUIS packaged app from the authoring APIs, you will also need your Authoring Key.

Ces prérequis sont utilisés pour passer des arguments de ligne de commande aux variables suivantes :These requirements are used to pass command-line arguments to the following variables:

{AUTHORING_KEY}  : cette clé sert à obtenir l’application empaquetée à partir du service LUIS dans le cloud et à charger les journaux d’activité de requêtes vers le cloud.{AUTHORING_KEY}: This key is used to get the packaged app from the LUIS service in the cloud and upload the query logs back to the cloud. Le format est xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.The format is xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.

{APPLICATION_ID}  : cet ID sert à sélectionner l’application.{APPLICATION_ID}: This ID is used to select the App. Le format est xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.The format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

{API_KEY}  : cette clé sert à démarrer le conteneur.{API_KEY}: This key is used to start the container. La clé de point de terminaison est disponible à deux endroits.You can find the endpoint key in two places. Le premier est le portail Azure, dans la liste des clés de la ressource Cognitive Services.The first is the Azure portal within the Cognitive Services resource's keys list. Elle est également disponible dans le portail LUIS, dans la page Keys and Endpoint settings (Paramètres des clés et du point de terminaison).The endpoint key is also available in the LUIS portal on the Keys and Endpoint settings page. N’utilisez pas la clé de démarrage.Do not use the starter key.

{ENDPOINT_URI}  : le point de terminaison tel qu'il est fourni à la page Vue d’ensemble.{ENDPOINT_URI}: The endpoint as provided on the Overview page.

La clé de création et la clé de point de terminaison ont différentes fonctions.The authoring key and endpoint key have different purposes. Ne les utilisez pas de manière interchangeable.Do not use them interchangeably.

API de création de fichier de packageAuthoring APIs for package file

API de création d’applications empaquetées :Authoring APIs for packaged apps:

L’ordinateur hôteThe host computer

L’hôte est un ordinateur x64 qui exécute le conteneur Docker.The host is a x64-based computer that runs the Docker container. Il peut s’agir d’un ordinateur local ou d’un service d’hébergement Docker dans Azure, comme :It can be a computer on your premises or a Docker hosting service in Azure, such as:

Exigences et suggestions relatives au conteneurContainer requirements and recommendations

Ce conteneur prend en charge des valeurs minimales et recommandées pour les paramètres :This container supports minimum and recommended values for the settings:

ConteneurContainer MinimaleMinimum RecommandéRecommended TPSTPS
(Minimum, maximum)(Minimum, Maximum)
LUISLUIS 1 cœur, 2 Go de mémoire1 core, 2-GB memory 1 cœur, 4 Go de mémoire1 core, 4-GB memory 20,4020,40
  • Chaque cœur doit être cadencé à au moins 2,6 gigahertz (GHz).Each core must be at least 2.6 gigahertz (GHz) or faster.
  • TPS - transactions par secondeTPS - transactions per second

Le nombre de cœurs et la quantité de mémoire correspondent aux paramètres --cpus et --memory qui sont utilisés dans le cadre de la commande docker run.Core and memory correspond to the --cpus and --memory settings, which are used as part of the docker run command.

Obtenir l’image conteneur avec docker pullGet the container image with docker pull

Utilisez la commande docker pull pour télécharger une image conteneur à partir du référentiel mcr.microsoft.com/azure-cognitive-services/luis :Use the docker pull command to download a container image from the mcr.microsoft.com/azure-cognitive-services/luis repository:

docker pull mcr.microsoft.com/azure-cognitive-services/luis:latest

Utilisez la commande docker pull pour télécharger une image conteneur.Use the docker pull command to download a container image.

Pour obtenir une description complète des balises disponibles utilisées dans la commande précédente, telles que latest, consultez LUIS sur Docker Hub.For a full description of available tags, such as latest used in the preceding command, see LUIS on Docker Hub.

Conseil

Vous pouvez utiliser la commande docker images pour lister vos images conteneurs téléchargées.You can use the docker images command to list your downloaded container images. Par exemple, la commande suivante liste l’ID, le référentiel et la balise de chaque image conteneur téléchargée dans un tableau :For example, the following command lists the ID, repository, and tag of each downloaded container image, formatted as a table:

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

Comment utiliser le conteneurHow to use the container

Une fois que le conteneur est sur l’ordinateur hôte, appliquez la procédure suivante pour travailler avec le conteneur.Once the container is on the host computer, use the following process to work with the container.

Procédure pour l’utilisation du conteneur LUIS (Language Understanding)

  1. Exportez le package pour le conteneur à partir du portail LUIS ou des API LUIS.Export package for container from LUIS portal or LUIS APIs.
  2. Déplacez le fichier de package dans le répertoire d’entrée requis sur l’ordinateur hôte.Move package file into the required input directory on the host computer. Ne renommez pas, ne modifiez pas, ne remplacez pas et ne décompressez pas le fichier de package LUIS.Do not rename, alter, overwrite, or decompress LUIS package file.
  3. Exécutez le conteneur avec le montage d’entrée et les paramètres de facturation requis.Run the container, with the required input mount and billing settings. D’autres exemples de commande docker run sont disponibles.More examples of the docker run command are available.
  4. Interrogation du point de terminaison de prédiction du conteneur.Querying the container's prediction endpoint.
  5. Quand vous en avez terminé avec le conteneur, importez les journaux d’activité du point de terminaison à partir du montage de sortie dans le portail LUIS et arrêtez le conteneur.When you are done with the container, import the endpoint logs from the output mount in the LUIS portal and stop the container.
  6. Utilisez l’apprentissage actif du portail LUIS dans la page Review endpoint utterances (Passer en revue les énoncés du point de terminaison) afin d’améliorer l’application.Use LUIS portal's active learning on the Review endpoint utterances page to improve the app.

L’application en cours d’exécution dans le conteneur ne peut pas être modifiée.The app running in the container can't be altered. Pour changer l’application dans le conteneur, vous devez changer l’application dans le service LUIS à l’aide du portail LUIS ou utiliser les API de création LUIS.In order the change the app in the container, you need to change the app in the LUIS service using the LUIS portal or use the LUIS authoring APIs. Ensuite, entraînez et/ou publiez, puis téléchargez un nouveau package et réexécutez le conteneur.Then train and/or publish, then download a new package and run the container again.

L’application LUIS à l’intérieur du conteneur ne peut pas être réexportée vers le service LUIS.The LUIS app inside the container can't be exported back to the LUIS service. Seuls les journaux d’activité de requêtes peuvent être chargés.Only the query logs can be uploaded.

Exporter l’application empaquetée à partir de LUISExport packaged app from LUIS

Le conteneur LUIS a besoin d’une application LUIS entraînée ou publiée pour répondre aux requêtes de prédiction des énoncés d’utilisateur.The LUIS container requires a trained or published LUIS app to answer prediction queries of user utterances. Pour accéder à l’application LUIS, utilisez l’API du package entraîné ou publié.In order to get the LUIS app, use either the trained or published package API.

L’emplacement par défaut est le sous-répertoire input correspondant à l’emplacement où vous exécutez la commande docker run.The default location is the input subdirectory in relation to where you run the docker run command.

Placez le fichier de package dans un répertoire et référencez ce répertoire en tant que montage d’entrée quand vous exécutez le conteneur docker.Place the package file in a directory and reference this directory as the input mount when you run the docker container.

Types de packagesPackage types

Le répertoire de montage d’entrée peut contenir en même temps les versions Production, Staging et Trained de l’application.The input mount directory can contain the Production, Staging, and Trained versions of the app simultaneously. Tous les packages sont montés.All the packages are mounted.

Type de packagePackage Type API de point de terminaison de requêteQuery Endpoint API Disponibilité des requêtesQuery availability Format du nom de fichier de packagePackage filename format
ForméTrained Get, PostGet, Post Conteneur uniquementContainer only {APPLICATION_ID}_v{APPLICATION_VERSION}.gz
StagingStaging Get, PostGet, Post Azure et conteneurAzure and container {APPLICATION_ID}_STAGING.gz
ProductionProduction Get, PostGet, Post Azure et conteneurAzure and container {APPLICATION_ID}_PRODUCTION.gz

Important

Ne renommez pas, ne modifiez pas, ne remplacez pas et ne décompressez pas les fichiers de package LUIS.Do not rename, alter, overwrite, or decompress the LUIS package files.

Prérequis pour l’empaquetagePackaging prerequisites

Avant d’empaqueter une application LUIS, vous devez disposer des éléments suivants :Before packaging a LUIS application, you must have the following:

Conditions requises pour l’empaquetagePackaging Requirements DétailsDetails
Instance de ressource Azure Cognitive ServicesAzure Cognitive Services resource instance Exemples de régions prises en charge :Supported regions include

USA Ouest (westus)West US (westus)
Europe Ouest (westeurope)West Europe (westeurope)
Australie Est (australiaeast)Australia East (australiaeast)
Application LUIS entraînée ou publiéeTrained or published LUIS app Sans aucune dépendance non prise en charge.With no unsupported dependencies.
Accès au système de fichiers de l’ordinateur hôteAccess to the host computer's file system L’ordinateur hôte doit autoriser un montage d’entrée.The host computer must allow an input mount.

Exporter le package d’application à partir du portail LUISExport app package from LUIS portal

Le portail LUIS offre la possibilité d’exporter le package de l’application entraînée ou publiée.The LUIS portal provides the ability to export the trained or published app's package.

Exporter le package de l’application publiée à partir du portail LUISExport published app's package from LUIS portal

Le package de l’application publiée est disponible à partir de la page de liste My Apps.The published app's package is available from the My Apps list page.

  1. Connectez-vous au portail LUIS.Sign on to the LUIS portal.
  2. Cochez la case à gauche du nom de l’application dans la liste.Select the checkbox to the left of the app name in the list.
  3. Sélectionnez l’élément Export dans la barre d’outils contextuelle au-dessus de la liste.Select the Export item from the contextual toolbar above the list.
  4. Sélectionnez Export for container (GZIP) .Select Export for container (GZIP).
  5. Sélectionnez l’environnement Production slot (Emplacement de production) ou Staging slot (Emplacement intermédiaire).Select the environment of Production slot or Staging slot.
  6. Le package est téléchargé à partir du navigateur.The package is downloaded from the browser.

Exporter le package publié pour le conteneur à partir du menu Export de la page d’application

Exporter le package de l’application entraînée à partir du portail LUISExport trained app's package from LUIS portal

Le package de l’application entraînée est disponible à partir de la page de liste Versions.The trained app's package is available from the Versions list page.

  1. Connectez-vous au portail LUIS.Sign on to the LUIS portal.
  2. Sélectionnez l’application dans la liste.Select the app in the list.
  3. Sélectionnez Manage (Gérer) dans la barre de navigation de l’application.Select Manage in the app's navigation bar.
  4. Sélectionnez Versions dans la barre de navigation gauche.Select Versions in the left navigation bar.
  5. Cochez la case à gauche du nom de la version dans la liste.Select the checkbox to the left of the version name in the list.
  6. Sélectionnez l’élément Export dans la barre d’outils contextuelle au-dessus de la liste.Select the Export item from the contextual toolbar above the list.
  7. Sélectionnez Export for container (GZIP) .Select Export for container (GZIP).
  8. Le package est téléchargé à partir du navigateur.The package is downloaded from the browser.

Exporter le package entraîné pour le conteneur à partir du menu Export de la page Versions

Exporter le package de l’application publiée à partir de l’APIExport published app's package from API

Utilisez l’API REST suivante pour empaqueter une application LUIS que vous avez déjà publiée.Use the following REST API method, to package a LUIS app that you've already published. Remplacez les espaces réservés dans l’appel d’API par vos propres valeurs appropriées, en utilisant le tableau sous la spécification HTTP.Substituting your own appropriate values for the placeholders in the API call, using the table below the HTTP specification.

GET /luis/api/v2.0/package/{APPLICATION_ID}/slot/{APPLICATION_ENVIRONMENT}/gzip HTTP/1.1
Host: {AZURE_REGION}.api.cognitive.microsoft.com
Ocp-Apim-Subscription-Key: {AUTHORING_KEY}
PlaceholderPlaceholder ValeurValue
{APPLICATION_ID}{APPLICATION_ID} ID d’application de l’application LUIS publiée.The application ID of the published LUIS app.
{APPLICATION_ENVIRONMENT}{APPLICATION_ENVIRONMENT} Environnement de l’application LUIS publiée.The environment of the published LUIS app. Utilisez l’une des valeurs suivantes :Use one of the following values:
PRODUCTION
STAGING
{AUTHORING_KEY}{AUTHORING_KEY} Clé de création du compte LUIS pour l’application LUIS publiée.The authoring key of the LUIS account for the published LUIS app.
Vous pouvez obtenir votre clé de création à partir de la page User Settings (Paramètres utilisateur) dans le portail LUIS.You can get your authoring key from the User Settings page on the LUIS portal.
{AZURE_REGION}{AZURE_REGION} Région Azure appropriée :The appropriate Azure region:

westus - USA Ouestwestus - West US
westeurope - Europe Ouestwesteurope - West Europe
australiaeast - Australie Estaustraliaeast - Australia East

Pour télécharger le package publié, reportez-vous à la documentation sur les API ici.To download the published package, please refer to the API documentation here. En cas de téléchargement réussi, la réponse est un fichier de package LUIS.If successfully downloaded, the response is a LUIS package file. Enregistrez le fichier à l’emplacement de stockage spécifié pour le montage d’entrée du conteneur.Save the file in the storage location specified for the input mount of the container.

Exporter le package de l’application entraînée à partir de l’APIExport trained app's package from API

Utilisez l’API REST suivante pour empaqueter une application LUIS que vous avez déjà entraînée.Use the following REST API method, to package a LUIS application that you've already trained. Remplacez les espaces réservés dans l’appel d’API par vos propres valeurs appropriées, en utilisant le tableau sous la spécification HTTP.Substituting your own appropriate values for the placeholders in the API call, using the table below the HTTP specification.

GET /luis/api/v2.0/package/{APPLICATION_ID}/versions/{APPLICATION_VERSION}/gzip HTTP/1.1
Host: {AZURE_REGION}.api.cognitive.microsoft.com
Ocp-Apim-Subscription-Key: {AUTHORING_KEY}
PlaceholderPlaceholder ValeurValue
{APPLICATION_ID}{APPLICATION_ID} ID d’application de l’application LUIS entraînée.The application ID of the trained LUIS application.
{APPLICATION_VERSION}{APPLICATION_VERSION} Version d’application de l’application LUIS entraînée.The application version of the trained LUIS application.
{AUTHORING_KEY}{AUTHORING_KEY} Clé de création du compte LUIS pour l’application LUIS publiée.The authoring key of the LUIS account for the published LUIS app.
Vous pouvez obtenir votre clé de création à partir de la page User Settings (Paramètres utilisateur) dans le portail LUIS.You can get your authoring key from the User Settings page on the LUIS portal.
{AZURE_REGION}{AZURE_REGION} Région Azure appropriée :The appropriate Azure region:

westus - USA Ouestwestus - West US
westeurope - Europe Ouestwesteurope - West Europe
australiaeast - Australie Estaustraliaeast - Australia East

Pour télécharger le package entraîné, reportez-vous à la documentation sur les API ici.To download the trained package, please refer to the API documentation here. En cas de téléchargement réussi, la réponse est un fichier de package LUIS.If successfully downloaded, the response is a LUIS package file. Enregistrez le fichier à l’emplacement de stockage spécifié pour le montage d’entrée du conteneur.Save the file in the storage location specified for the input mount of the container.

Exécuter le conteneur avec docker runRun the container with docker run

Utilisez la commande docker run pour exécuter le conteneur.Use the docker run command to run the container. La commande utilise les paramètres suivants :The command uses the following parameters:

PlaceholderPlaceholder ValeurValue
{API_KEY}{API_KEY} cette clé sert à démarrer le conteneur.This key is used to start the container. N’utilisez pas la clé de démarrage.Do not use the starter key.
{ENDPOINT_URI}{ENDPOINT_URI} La valeur du point de terminaison est disponible sur la page Vue d’ensemble de Cognitive Services du portail Azure.The endpoint value is available on the Azure portal's Cognitive Services Overview page.

Remplacez ces paramètres par vos propres valeurs dans l’exemple de commande docker run suivant.Replace these parameters with your own values in the following example docker run command. Exécutez la commande dans la console Windows.Run the command in the Windows console.

docker run --rm -it -p 5000:5000 ^
--memory 4g ^
--cpus 2 ^
--mount type=bind,src=c:\input,target=/input ^
--mount type=bind,src=c:\output\,target=/output ^
mcr.microsoft.com/azure-cognitive-services/luis ^
Eula=accept ^
Billing={ENDPOINT_URI} ^
ApiKey={API_KEY}
  • Cet exemple utilise le répertoire du lecteur C: pour éviter tout conflit d’autorisation sur Windows.This example uses the directory off the C: drive to avoid any permission conflicts on Windows. Si vous devez utiliser un répertoire spécifique en tant que répertoire d’entrée, vous devrez peut-être accorder au docker une autorisation de service.If you need to use a specific directory as the input directory, you may need to grant the docker service permission.
  • Ne changez pas l’ordre des arguments, sauf si vous connaissez les conteneurs Docker.Do not change the order of the arguments unless you are familiar with docker containers.
  • Si vous utilisez un autre système d’exploitation, utilisez la console et/ou le terminal approprié, la syntaxe de dossier pour les montages et le caractère de continuation de ligne pour votre système.If you are using a different operating system, use the correct console/terminal, folder syntax for mounts, and line continuation character for your system. Dans ces exemples, une console Windows avec un caractère de continuation de ligne ^ est censée être utilisée.These examples assume a Windows console with a line continuation character ^. Le conteneur étant un système d’exploitation Linux, le montage cible utilise une syntaxe de dossier de type Linux.Because the container is a Linux operating system, the target mount uses a Linux-style folder syntax.

Cette commande :This command:

  • Exécute un conteneur à partir de l’image conteneur LUIS.Runs a container from the LUIS container image
  • Charge l’application LUIS à partir du montage d’entrée qui se trouve à c:\input sur l’hôte de conteneur.Loads LUIS app from input mount at c:\input, located on container host
  • Alloue deux cœurs de processeur et 4 gigaoctets (Go) de mémoire.Allocates two CPU cores and 4 gigabytes (GB) of memory
  • Expose le port TCP 5000 et alloue un pseudo-TTY pour le conteneurExposes TCP port 5000 and allocates a pseudo-TTY for the container
  • Enregistre les journaux d’activité LUIS et de conteneur dans le montage de sortie qui se trouve à c:\output sur l’hôte de conteneur.Saves container and LUIS logs to output mount at c:\output, located on container host
  • Supprime automatiquement le conteneur après sa fermeture.Automatically removes the container after it exits. L’image conteneur est toujours disponible sur l’ordinateur hôte.The container image is still available on the host computer.

D’autres exemples de commande docker run sont disponibles.More examples of the docker run command are available.

Important

Vous devez spécifier les options Eula, Billing et ApiKey pour exécuter le conteneur, sinon il ne démarrera pas.The Eula, Billing, and ApiKey options must be specified to run the container; otherwise, the container won't start. Pour plus d'informations, consultez Facturation.For more information, see Billing. La valeur ApiKey est la clé mentionnée dans la page Clés et points de terminaison dans le portail LUIS. Elle est également disponible dans la page Clés de ressources d’Azure Cognitive Services.The ApiKey value is the Key from the Keys and Endpoints page in the LUIS portal and is also available on the Azure Cognitive Services resource keys page.

Exécuter plusieurs conteneurs sur le même hôteRun multiple containers on the same host

Si vous envisagez d’exécuter plusieurs conteneurs avec les ports exposés, veillez à exécuter chaque conteneur avec un port exposé différent.If you intend to run multiple containers with exposed ports, make sure to run each container with a different exposed port. Par exemple, exécutez le premier conteneur sur le port 5000 et le second conteneur sur le port 5001.For example, run the first container on port 5000 and the second container on port 5001.

Vous pouvez avoir ce conteneur, et un autre conteneur Azure Cognitive Services qui s’exécutent ensemble sur l’hôte.You can have this container and a different Azure Cognitive Services container running on the HOST together. Vous pouvez également disposer de plusieurs conteneurs du même conteneur Cognitive Services en cours d’exécution.You also can have multiple containers of the same Cognitive Services container running.

API de point de terminaison prises en charge par le conteneurEndpoint APIs supported by the container

Les versions V2 et V3 (préversion) de l’API sont disponibles avec le conteneur.Both V2 and V3 (Preview) versions of the API are available with the container.

Interroger le point de terminaison de prédiction du conteneurQuery the container's prediction endpoint

Le conteneur fournit des API de point de terminaison de prédiction de requête basées sur REST.The container provides REST-based query prediction endpoint APIs. Les points de terminaison pour les applications publiées (intermédiaires ou production) ont une route différente de celle des points de terminaison pour les applications entraînées.Endpoints for published (staging or production) apps have a different route than endpoints for trained apps.

Utilisez l’hôte, https://localhost:5000, pour les API de conteneur.Use the host, https://localhost:5000, for container APIs.

Type de packagePackage type MéthodeMethod RoutageRoute Paramètres de requêteQuery parameters
PubliéPublished Get, PostGet, Post /luis/v2.0/apps/{appId}?/luis/v2.0/apps/{appId}? q={q}q={q}
&staging&staging
[&timezoneOffset][&timezoneOffset]
[&verbose][&verbose]
[&log][&log]
ForméTrained Get, PostGet, Post /luis/v2.0/apps/{appId}/versions/{versionId}?/luis/v2.0/apps/{appId}/versions/{versionId}? q={q}q={q}
[&timezoneOffset][&timezoneOffset]
[&verbose][&verbose]
[&log][&log]

Les paramètres de requête configurent ce qui est retourné dans la réponse de requête, et de quelle manière :The query parameters configure how and what is returned in the query response:

Paramètre de requête.Query parameter TypeType ObjectifPurpose
q stringstring Énoncé de l’utilisateur.The user's utterance.
timezoneOffset numbernumber timezoneOffset vous permet de changer le fuseau horaire utilisé par l’entité prédéfinie datetimeV2.The timezoneOffset allows you to change the timezone used by the prebuilt entity datetimeV2.
verbose booleanboolean Retourne toutes les intentions et leurs scores quand la valeur est true.Returns all intents and their scores when set to true. La valeur par défaut est false, ce qui retourne uniquement la première intention.Default is false, which returns only the top intent.
staging booleanboolean Retourne une requête à partir des résultats de l’environnement intermédiaire si la valeur est true.Returns query from staging environment results if set to true.
log booleanboolean Enregistre les requêtes, qui peuvent être utilisées ultérieurement pour l’apprentissage actif.Logs queries, which can be used later for active learning. La valeur par défaut est true.Default is true.

Interroger une application publiéeQuery published app

Voici un exemple de commande CURL pour interroger le conteneur d’une application publiée :An example CURL command for querying the container for a published app is:

curl -X GET \
"http://localhost:5000/luis/v2.0/apps/{APPLICATION_ID}?q=turn%20on%20the%20lights&staging=false&timezoneOffset=0&verbose=false&log=true" \
-H "accept: application/json"

Pour effectuer des requêtes sur l’environnement intermédiaire (Staging), affectez la valeur true au paramètre de chaîne de requête staging :To make queries to the Staging environment, change the staging query string parameter value to true:

staging=true

Interroger une application entraînéeQuery trained app

Voici un exemple de commande CURL pour interroger le conteneur d’une application entraînée :An example CURL command for querying the container for a trained app is:

curl -X GET \
"http://localhost:5000/luis/v2.0/apps/{APPLICATION_ID}/versions/{APPLICATION_VERSION}?q=turn%20on%20the%20lights&timezoneOffset=0&verbose=false&log=true" \
-H "accept: application/json"

Le nom de version a un maximum de 10 caractères et contient uniquement des caractères autorisés dans une URL.The version name has a maximum of 10 characters and contains only characters allowed in a URL.

Importer les journaux d’activité de point de terminaison pour l’apprentissage actifImport the endpoint logs for active learning

Si un montage de sortie est spécifié pour le conteneur LUIS, les fichiers journaux de requêtes d’application sont enregistrés dans le répertoire de sortie, où {INSTANCE_ID} est l’ID de conteneur.If an output mount is specified for the LUIS container, app query log files are saved in the output directory, where {INSTANCE_ID} is the container ID. Le journal des requêtes d’application contient la requête, la réponse et les horodateurs de chaque requête de prédiction soumise au conteneur LUIS.The app query log contains the query, response, and timestamps for each prediction query submitted to the LUIS container.

L’emplacement suivant montre la structure de répertoires imbriqués pour les fichiers journaux du conteneur.The following location shows the nested directory structure for the container's log files.

/output/luis/{INSTANCE_ID}/

À partir du portail LUIS, sélectionnez votre application, puis sélectionnez Import endpoint logs (Importer les journaux d’activité de point de terminaison) pour charger ces journaux d’activité.From the LUIS portal, select your app, then select Import endpoint logs to upload these logs.

Importer les fichiers journaux du conteneur pour l’apprentissage actif

Une fois le journal chargé, passez en revue les énoncés de point de terminaison dans le portail LUIS.After the log is uploaded, review the endpoint utterances in the LUIS portal.

Valider l’exécution d’un conteneurValidate that a container is running

Il existe plusieurs façons de confirmer que le conteneur s’exécute.There are several ways to validate that the container is running.

RequêteRequest ObjectifPurpose
http://localhost:5000/ Le conteneur fournit une page d’accueil.The container provides a home page.
http://localhost:5000/status Demandée avec GET, pour confirmer que le conteneur est en cours d’exécution sans provoquer de requête de point de terminaison.Requested with GET, to validate that the container is running without causing an endpoint query. Cette requête peut être utilisée pour les probes liveness et readiness de Kubernetes.This request can be used for Kubernetes liveness and readiness probes.
http://localhost:5000/swagger Le conteneur fournit un ensemble complet de documentation pour les points de terminaison et une fonctionnalité Try it now.The container provides a full set of documentation for the endpoints and a Try it now feature. Avec cette fonctionnalité, vous pouvez entrer vos paramètres dans un formulaire HTML basé sur le web, et constituer la requête sans avoir à écrire du code.With this feature, you can enter your settings into a web-based HTML form and make the query without having to write any code. Une fois la requête retournée, un exemple de commande CURL est fourni pour illustrer les en-têtes HTTP, et le format du corps qui est nécessaire.After the query returns, an example CURL command is provided to demonstrate the HTTP headers and body format that's required.

Page d’accueil du conteneur

Arrêter le conteneurStop the container

Pour arrêter le conteneur, dans l’environnement de ligne de commande où le conteneur est en cours d’exécution, appuyez sur Ctrl+C.To shut down the container, in the command-line environment where the container is running, press Ctrl+C.

Résolution de problèmesTroubleshooting

Si vous exécutez le conteneur avec un montage de sortie et la journalisation activée, il génère des fichiers journaux qui sont utiles pour résoudre les problèmes qui se produisent lors du démarrage ou de l’exécution du conteneur.If you run the container with an output mount and logging enabled, the container generates log files that are helpful to troubleshoot issues that happen while starting or running the container.

FacturationBilling

Le conteneur LUIS envoie des informations de facturation à Azure à l’aide d’une ressource Cognitive Services correspondante sur votre compte Azure.The LUIS container sends billing information to Azure, using a Cognitive Services resource on your Azure account.

Les requêtes sur le conteneur sont facturées au niveau tarifaire de la ressource Azure utilisée pour <ApiKey>.Queries to the container are billed at the pricing tier of the Azure resource that's used for the <ApiKey>.

Les conteneurs Azure Cognitives Services ne sont pas concédés sous licence dans le but de s’exécuter sans être connectés au point de terminaison de facturation pour le contrôle.Azure Cognitive Services containers aren't licensed to run without being connected to the billing endpoint for metering. Vous devez configurer les conteneurs de manière à ce qu’ils communiquent les informations de facturation au point de terminaison de facturation à tout moment.You must enable the containers to communicate billing information with the billing endpoint at all times. Les conteneurs Cognitive Services n’envoient pas de données client, telles que l’image ou le texte analysé, à Microsoft.Cognitive Services containers don't send customer data, such as the image or text that's being analyzed, to Microsoft.

Connexion à AzureConnect to Azure

Le conteneur a besoin des valeurs d’arguments de facturation pour s’exécuter.The container needs the billing argument values to run. Ces valeurs permettent au conteneur de se connecter au point de terminaison de facturation.These values allow the container to connect to the billing endpoint. Le conteneur crée des rapports sur l’utilisation toutes les 10 à 15 minutes.The container reports usage about every 10 to 15 minutes. Si le conteneur ne se connecte pas à Azure dans la fenêtre de temps imparti, il continue de s’exécuter, mais ne traite pas les requêtes tant que le point de terminaison de facturation n’est pas restauré.If the container doesn't connect to Azure within the allowed time window, the container continues to run but doesn't serve queries until the billing endpoint is restored. Une tentative de connexion est effectuée 10 fois, toutes les 10 à 15 minutes.The connection is attempted 10 times at the same time interval of 10 to 15 minutes. S’il ne parvient pas à se connecter au point de terminaison de facturation au cours de ces 10 essais, le conteneur arrête son exécution.If it can't connect to the billing endpoint within the 10 tries, the container stops running.

Arguments de facturationBilling arguments

Pour que la commande docker run démarre le conteneur, des valeurs valides doivent spécifier les trois options suivantes :For the docker run command to start the container, all three of the following options must be specified with valid values:

OptionOption DescriptionDescription
ApiKey Clé API de la ressource Cognitive Services utilisée pour le suivi des informations de facturation.The API key of the Cognitive Services resource that's used to track billing information.
La valeur de cette option doit être définie sur une clé API pour la ressource provisionnée spécifiée dans Billing.The value of this option must be set to an API key for the provisioned resource that's specified in Billing.
Billing Point de terminaison de la ressource Cognitive Services utilisé pour le suivi des informations de facturation.The endpoint of the Cognitive Services resource that's used to track billing information.
La valeur de cette option doit être définie sur l’URI de point de terminaison d’une ressource Azure provisionnée.The value of this option must be set to the endpoint URI of a provisioned Azure resource.
Eula Indique que vous avez accepté la licence pour le conteneur.Indicates that you accepted the license for the container.
La valeur de cette option doit être définie sur accepter.The value of this option must be set to accept.

Pour plus d’informations sur ces options, consultez Configurer des conteneurs.For more information about these options, see Configure containers.

Dépendances prises en charge pour le conteneur latestSupported dependencies for latest container

Le dernier conteneur (publié dans //Build de 2019) prendra en charge :The latest container, released at 2019 //Build, will support:

  • Vérification orthographique Bing : envoie des demandes au point de terminaison de prédiction de requête avec les paramètres de chaîne de requête &spellCheck=true&bing-spell-check-subscription-key={bingKey}.Bing spell check: requests to the query prediction endpoint with the &spellCheck=true&bing-spell-check-subscription-key={bingKey} query string parameters. Consultez le didacticiel sur la vérification orthographique Bing v7 pour en savoir plus.Use the Bing Spell Check v7 tutorial to learn more. Si cette fonctionnalité est utilisée, le conteneur envoie l’énoncé à la ressource de votre vérification orthographique Bing V7.If this feature is used, the container sends the utterance to your Bing Spell Check V7 resource.
  • Nouveaux domaines prédéfinis : ces domaines destinés aux entreprises incluent des entités, des exemples d’énoncé et des modèles.New prebuilt domains: these enterprise-focused domains include entities, example utterances, and patterns. Étendez ces domaines pour votre usage personnel.Extend these domains for your own use.

Dépendances non prises en charge pour le conteneur latestUnsupported dependencies for latest container

Si votre application LUIS présente des dépendances non prises en charge, vous ne pourrez utiliser Exporter pour le conteneur jusqu’à ce que vous supprimiez les fonctionnalités non prises en charge.If your LUIS app has unsupported dependencies, you won't be able to export for container until you remove the unsupported features. Lorsque vous tentez d’exporter pour le conteneur, le portail LUIS signale les fonctionnalités non prises en charge que vous devez supprimer.When you attempt to export for container, the LUIS portal reports the unsupported features you need to remove.

Vous pouvez utiliser une application LUIS si elle n’inclut aucune des dépendances suivantes :You can use a LUIS application if it doesn't include any of the following dependencies:

Configurations d’application non prises en chargeUnsupported app configurations DétailsDetails
Cultures de conteneur non prises en chargeUnsupported container cultures Néerlandais (nl-NL)Dutch (nl-NL)
Japonais (ja-JP)Japanese (ja-JP)
L’allemand est uniquement pris en charge avec le générateur de jetons 1.0.2.German is only supported with the 1.0.2 tokenizer.
Entités non prises en charge pour toutes les culturesUnsupported entities for all cultures Entité prédéfinie KeyPhrase pour toutes les culturesKeyPhrase prebuilt entity for all cultures
Entités non prises en charge pour la culture anglais (en-US)Unsupported entities for English (en-US) culture Entités prédéfinies GeographyV2GeographyV2 prebuilt entities
Préparation vocaleSpeech priming Les dépendances externes ne sont pas prises en charge dans le conteneur.External dependencies are not supported in the container.
analyse de sentimentsSentiment analysis Les dépendances externes ne sont pas prises en charge dans le conteneur.External dependencies are not supported in the container.

Billets de blog :Blog posts

Exemples de développementDeveloper samples

Des exemples de développement sont disponibles sur notre dépôt GitHub.Developer samples are available at our GitHub repository.

Voir le webinaireView webinar

Rejoignez le webinaire pour savoir :Join the webinar to learn about:

  • Comment déployer Cognitive Services sur une machine à l’aide de DockerHow to deploy Cognitive Services to any machine using Docker
  • Comment déployer Cognitive Services sur AKSHow to deploy Cognitive Services to AKS

RésuméSummary

Dans cet article, vous avez découvert des concepts et le flux de travail pour le téléchargement, l’installation et l’exécution des conteneurs LUIS (Language Understanding).In this article, you learned concepts and workflow for downloading, installing, and running Language Understanding (LUIS) containers. En résumé :In summary:

  • LUIS (Language Understanding) fournit un conteneur Linux pour Docker offrant des prédictions de requête de point de terminaison d’énoncés.Language Understanding (LUIS) provides one Linux container for Docker providing endpoint query predictions of utterances.
  • Les images conteneurs sont téléchargées à partir de Microsoft Container Registry (MCR).Container images are downloaded from the Microsoft Container Registry (MCR).
  • Les images conteneurs s’exécutent dans Docker.Container images run in Docker.
  • Vous pouvez utiliser l’API REST pour interroger les points de terminaison de conteneur en spécifiant l’URI hôte du conteneur.You can use REST API to query the container endpoints by specifying the host URI of the container.
  • Vous devez spécifier les informations de facturation lors de l’instanciation d’un conteneur.You must specify billing information when instantiating a container.

Important

Les conteneurs Cognitives Services ne sont pas concédés sous licence pour s’exécuter sans être connectés à Azure pour le contrôle.Cognitive Services containers are not licensed to run without being connected to Azure for metering. Les clients doivent configurer les conteneurs de manière à ce qu’ils communiquent les informations de facturation au service de contrôle à tout moment.Customers need to enable the containers to communicate billing information with the metering service at all times. Les conteneurs Cognitive Services n’envoient pas de données relatives aux clients (par exemple, l’image ou le texte en cours d’analyse) à Microsoft.Cognitive Services containers do not send customer data (for example, the image or text that is being analyzed) to Microsoft.

Étapes suivantesNext steps