Instalar y ejecutar contenedores de docker de LUISInstall and run LUIS docker containers

El contenedor de Language Understanding (LUIS) carga el modelo de Language Understanding entrenado o publicado, lo que también se conoce como aplicación de LUIS, en un contenedor de Docker y proporciona acceso a las predicciones de consulta de los puntos de conexión de la API del contenedor.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. Puede recopilar registros de consultas del contenedor y cargarlos de nuevo en la aplicación de Language Understanding para mejorar la precisión de predicción de la aplicación.You can collect query logs from the container and upload these back to the Language Understanding app to improve the app's prediction accuracy.

En el siguiente vídeo, se explica cómo se utiliza este contenedor.The following video demonstrates using this container.

Demostración de contenedores de Cognitive Services.Container demonstration for Cognitive Services

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don't have an Azure subscription, create a free account before you begin.

Requisitos previosPrerequisites

Para poder ejecutar el contenedor de LUIS, debe tener lo siguiente:In order to run the LUIS container, you must have the following:

ObligatorioRequired PropósitoPurpose
Motor de DockerDocker Engine Necesita que el motor de Docker esté instalado en un equipo host.You need the Docker Engine installed on a host computer. Docker dispone de paquetes que configuran el entorno de Docker en macOS, Windows y Linux.Docker provides packages that configure the Docker environment on macOS, Windows, and Linux. Para conocer los principios básicos de Docker y de los contenedores, consulte Introducción a Docker.For a primer on Docker and container basics, see the Docker overview.

Docker debe configurarse para permitir que los contenedores se conecten con Azure y envíen datos de facturación a dicho servicio.Docker must be configured to allow the containers to connect with and send billing data to Azure.

En Windows, Docker también debe estar configurado de forma que admita los contenedores de Linux.On Windows, Docker must also be configured to support Linux containers.

Conocimientos sobre DockerFamiliarity with Docker Debe tener conocimientos básicos sobre los conceptos de Docker, como los registros, los repositorios, los contenedores y las imágenes de contenedor, así como conocer los comandos docker básicos.You should have a basic understanding of Docker concepts, like registries, repositories, containers, and container images, as well as knowledge of basic docker commands.
Recurso de Azure Cognitive Services y archivo de aplicación empaquetada de LUISAzure Cognitive Services resource and LUIS packaged app file Para poder usar el contenedor, debe tener:In order to use the container, you must have:

* Un recurso de Azure Cognitive Services y la clave de facturación asociada del URI del punto de conexión de facturación.* A Cognitive Services Azure resource and the associated billing key the billing endpoint URI. Ambos valores están disponibles en las páginas de introducción y claves del recurso y son necesarios para iniciar el contenedor.Both values are available on the Overview and Keys pages for the resource and are required to start the container. Deberá agregar el enrutamiento luis/v2.0 al URI del punto de conexión, tal como se muestra en el siguiente ejemplo de BILLING_ENDPOINT_URI.You need to add the luis/v2.0 routing to the endpoint URI as shown in the following BILLING_ENDPOINT_URI example.
* Una aplicación entrenada o publicada como una entrada montada en el contenedor junto con su identificador de aplicación asociado.* A trained or published app packaged as a mounted input to the container with its associated App ID. Puede obtener el archivo empaquetado en el portal de LUIS o las API de creación.You can get the packaged file from the LUIS portal or the Authoring APIs. Si va a obtener la aplicación empaquetada de LUIS desde las API de creación, también necesitará su clave de creación.If you are getting LUIS packaged app from the authoring APIs, you will also need your Authoring Key.

Estos requisitos se usan para pasar argumentos de la línea de comandos a las siguientes variables:These requirements are used to pass command-line arguments to the following variables:

{AUTHORING_KEY} : esta clave se usa para obtener la aplicación empaquetada del servicio LUIS en la nube y cargar los registros de consultas en la nube.{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. El formato es xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.The format is xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.

{APPLICATION_ID} : este identificador se usa para seleccionar la aplicación.{APPLICATION_ID}: This ID is used to select the App. El formato es xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.The format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

{API_KEY} : Esta clave se usa para iniciar el contenedor.{API_KEY}: This key is used to start the container. Puede encontrar la clave de punto de conexión en dos lugares.You can find the endpoint key in two places. El primero de ellos es Azure Portal, en la lista de claves del recurso de Cognitive Services.The first is the Azure portal within the Cognitive Services resource's keys list. La clave de punto de conexión también está disponible en el portal de LUIS, en la página de configuración de puntos de conexión y claves.The endpoint key is also available in the LUIS portal on the Keys and Endpoint settings page. No utilice la clave de inicio.Do not use the starter key.

{ENDPOINT_URI} : el punto de conexión tal como se proporciona en la página Información general.{ENDPOINT_URI}: The endpoint as provided on the Overview page.

El propósito de la clave de creación y la clave de punto de conexión es diferente.The authoring key and endpoint key have different purposes. No deben utilizarse indistintamente.Do not use them interchangeably.

API de creación del archivo de paqueteAuthoring APIs for package file

API de creación de las aplicaciones empaquetadas:Authoring APIs for packaged apps:

El equipo hostThe host computer

El host es un equipo basado en x64 que ejecuta el contenedor de Docker.The host is a x64-based computer that runs the Docker container. Puede ser un equipo del entorno local o un servicio de hospedaje de Docker incluido en Azure, como:It can be a computer on your premises or a Docker hosting service in Azure, such as:

Recomendaciones y requisitos del contenedorContainer requirements and recommendations

Este contenedor admite los siguientes valores mínimos y recomendados:This container supports minimum and recommended values for the settings:

ContenedorContainer MínimaMinimum RecomendadoRecommended TPSTPS
(mínimo, máximo)(Minimum, Maximum)
LUISLUIS 1 núcleo, 2 GB de memoria1 core, 2-GB memory 1 núcleo, 4 GB de memoria1 core, 4-GB memory 20,4020,40
  • Cada núcleo debe ser de 2,6 gigahercios (GHz) como mínimo.Each core must be at least 2.6 gigahertz (GHz) or faster.
  • TPS: transacciones por segundoTPS - transactions per second

El núcleo y la memoria se corresponden con los valores de --cpus y --memory que se usan como parte del comando docker run.Core and memory correspond to the --cpus and --memory settings, which are used as part of the docker run command.

Obtención de la imagen del contenedor con docker pullGet the container image with docker pull

Utilice el comando docker pull para descargar la imagen de un contenedor del repositorio 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

Use el comando docker pull para descargar una imagen de contenedor.Use the docker pull command to download a container image.

Para obtener una descripción completa de las etiquetas disponibles, como la etiqueta latest que se utilizó en el comando anterior, consulte LUIS en Docker Hub.For a full description of available tags, such as latest used in the preceding command, see LUIS on Docker Hub.

Sugerencia

Puede usar el comando docker images para enumerar las imágenes de contenedor descargadas.You can use the docker images command to list your downloaded container images. Por ejemplo, el comando siguiente muestra el id., el repositorio y la etiqueta de cada imagen de contenedor descargada, con formato de tabla: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>

Uso del contenedorHow to use the container

Una vez que el contenedor esté en el equipo host, utilice el siguiente proceso para trabajar con el contenedor.Once the container is on the host computer, use the following process to work with the container.

Proceso para utilizar el contenedor de Language Understanding (LUIS)

  1. Exporte el paquete del contenedor desde el portal de LUIS o las API de LUIS.Export package for container from LUIS portal or LUIS APIs.
  2. Mueva el archivo del paquete al directorio de entrada correspondiente del equipo host.Move package file into the required input directory on the host computer. No debe modificar el archivo del paquete de LUIS, descomprimirlo, sobrescribirlo ni cambiar su nombre.Do not rename, alter, overwrite, or decompress LUIS package file.
  3. Ejecute el contenedor con la configuración de facturación y el montaje de entrada.Run the container, with the required input mount and billing settings. Hay más ejemplos del comando docker run disponibles.More examples of the docker run command are available.
  4. Consulte el punto de conexión de predicción del contenedor.Querying the container's prediction endpoint.
  5. Cuando haya terminado con el contenedor, importe los registros de punto de conexión desde la salida de montaje en el portal de LUIS y detenga el contenedor.When you are done with the container, import the endpoint logs from the output mount in the LUIS portal and stop the container.
  6. En el portal de LUIS, utilice el aprendizaje activo de la página sobre la revisión de expresiones de puntos de conexión para mejorar la aplicación.Use LUIS portal's active learning on the Review endpoint utterances page to improve the app.

La aplicación que se ejecuta en el contenedor no se puede modificar.The app running in the container can't be altered. Para poder cambiar la aplicación del contenedor, tiene que modificarla en el servicio de LUIS utilizando el portal o las API de creación de 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. Después de realizar el entrenamiento o la publicación, descargue un nuevo paquete y ejecute de nuevo el contenedor.Then train and/or publish, then download a new package and run the container again.

La aplicación de LUIS que está dentro del contenedor no puede exportarse de nuevo al servicio de LUIS.The LUIS app inside the container can't be exported back to the LUIS service. Solo se pueden cargar los registros de consulta.Only the query logs can be uploaded.

Exportación de la aplicación empaquetada desde LUISExport packaged app from LUIS

El contenedor de LUIS necesita una aplicación de LUIS que esté entrenada o publicada para responder a consultas de predicción de expresiones de los usuarios.The LUIS container requires a trained or published LUIS app to answer prediction queries of user utterances. Para obtener la aplicación de LUIS, utilice la API del paquete publicado o entrenado.In order to get the LUIS app, use either the trained or published package API.

La ubicación predeterminada es el subdirectorio input del lugar donde se ejecuta el comando docker run.The default location is the input subdirectory in relation to where you run the docker run command.

Sitúe el archivo del paquete en un directorio y, cuando ejecute el contenedor de Docker, haga referencia a este directorio estableciéndolo como montaje de entrada.Place the package file in a directory and reference this directory as the input mount when you run the docker container.

Tipos de paquetesPackage types

El directorio de montaje de entrada puede contener la versión de producción, la versión de ensayo y la versión entrenada de la aplicación al mismo tiempo.The input mount directory can contain the Production, Staging, and Trained versions of the app simultaneously. Todos los paquetes se montan.All the packages are mounted.

Tipo de paquetePackage Type API de punto de conexión de consultaQuery Endpoint API Disponibilidad de consultasQuery availability Formato del nombre de archivo del paquetePackage filename format
EntrenadaTrained Get, PostGet, Post Solo el contenedorContainer only {APPLICATION_ID}_v{APPLICATION_VERSION}.gz
EnsayoStaging Get, PostGet, Post Azure y el contenedorAzure and container {APPLICATION_ID}_STAGING.gz
ProducciónProduction Get, PostGet, Post Azure y el contenedorAzure and container {APPLICATION_ID}_PRODUCTION.gz

Importante

No debe modificar los archivo del paquete de LUIS, descomprimirlos, sobrescribirlos ni cambiar su nombre.Do not rename, alter, overwrite, or decompress the LUIS package files.

Requisitos previos de empaquetadoPackaging prerequisites

Para poder empaquetar una aplicación de LUIS, debe tener lo siguiente:Before packaging a LUIS application, you must have the following:

Requisitos de empaquetadoPackaging Requirements DetallesDetails
Instancia de recurso de Azure Cognitive ServicesAzure Cognitive Services resource instance Las regiones admitidas sonSupported regions include

Oeste de EE. UU. (westus)West US (westus)
Europa Occidental (westeurope)West Europe (westeurope)
Este de Australia (australiaeast)Australia East (australiaeast)
Aplicación de LUIS entrenada o publicadaTrained or published LUIS app Sin dependencias no compatibles.With no unsupported dependencies.
Acceso al sistema de archivos del equipo hostAccess to the host computer's file system El equipo host debe permitir un montaje de entrada.The host computer must allow an input mount.

Exportación del paquete de aplicación desde el portal de LUISExport app package from LUIS portal

El portal de LUIS brinda la posibilidad de exportar el paquete de la aplicación publicada o entrenada.The LUIS portal provides the ability to export the trained or published app's package.

Exportación del paquete de la aplicación publicada desde el portal de LUISExport published app's package from LUIS portal

El paquete de la aplicación publicada está disponible en la página My Apps (Mis aplicaciones).The published app's package is available from the My Apps list page.

  1. Inicie sesión en el portal de LUIS.Sign on to the LUIS portal.
  2. Active la casilla situada a la izquierda del nombre de la aplicación de la lista.Select the checkbox to the left of the app name in the list.
  3. Seleccione el elemento Export (Exportar) en la barra de herramientas contextual situada encima de la lista.Select the Export item from the contextual toolbar above the list.
  4. Seleccione Export for container (GZIP) [Exportar para contenedor (GZIP)].Select Export for container (GZIP).
  5. Seleccione el entorno Production slot (Espacio de producción) o Staging slot (Espacio de ensayo).Select the environment of Production slot or Staging slot.
  6. El paquete se descarga desde el explorador.The package is downloaded from the browser.

Exportación del paquete publicado del contenedor desde el menú Export (Exportar) de la página de la aplicación

Exportación del paquete de la aplicación entrenada desde el portal de LUISExport trained app's package from LUIS portal

El paquete de la aplicación entrenada está disponible en la página Versions (Versiones).The trained app's package is available from the Versions list page.

  1. Inicie sesión en el portal de LUIS.Sign on to the LUIS portal.
  2. Seleccione la aplicación en la lista.Select the app in the list.
  3. Seleccione Manage (Administrar) en la barra de navegación de la aplicación.Select Manage in the app's navigation bar.
  4. Seleccione Versions (Versiones) en la barra de navegación de la izquierda.Select Versions in the left navigation bar.
  5. Active la casilla situada a la izquierda del nombre de la versión de la lista.Select the checkbox to the left of the version name in the list.
  6. Seleccione el elemento Export (Exportar) en la barra de herramientas contextual situada encima de la lista.Select the Export item from the contextual toolbar above the list.
  7. Seleccione Export for container (GZIP) [Exportar para contenedor (GZIP)].Select Export for container (GZIP).
  8. El paquete se descarga desde el explorador.The package is downloaded from the browser.

Exportación del paquete entrenado del contenedor desde el menú Export (Exportar) de la página de versiones

Exportación del paquete de la aplicación publicada desde la APIExport published app's package from API

Utilice el siguiente método de la API REST para empaquetar una aplicación de LUIS que ya esté publicada.Use the following REST API method, to package a LUIS app that you've already published. Utilice sus proprios valores para sustituir los marcadores de posición de la llamada API; para ello, utilice la tabla situada bajo la especificación 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}
Marcador de posiciónPlaceholder ValorValue
{APPLICATION_ID}{APPLICATION_ID} Identificador de la aplicación de LUIS publicada.The application ID of the published LUIS app.
{APPLICATION_ENVIRONMENT}{APPLICATION_ENVIRONMENT} Entorno de la aplicación de LUIS publicada.The environment of the published LUIS app. Utilice uno de los valores siguientes:Use one of the following values:
PRODUCTION
STAGING
{AUTHORING_KEY}{AUTHORING_KEY} Clave de creación de la cuenta de LUIS para la aplicación de LUIS publicada.The authoring key of the LUIS account for the published LUIS app.
Puede obtener la clave de creación en la página User Settings (Configuración del usuario) del portal de LUIS.You can get your authoring key from the User Settings page on the LUIS portal.
{AZURE_REGION}{AZURE_REGION} Región de Azure que corresponda:The appropriate Azure region:

westus: Oeste de EE. UU.westus - West US
westeurope: Europa Occidentalwesteurope - West Europe
australiaeast: Este de Australiaaustraliaeast - Australia East

Para descargar el paquete publicado, consulte la documentación de la API aquí.To download the published package, please refer to the API documentation here. Si se descarga correctamente, la respuesta será un archivo de paquete de LUIS.If successfully downloaded, the response is a LUIS package file. Guarde el archivo en la ubicación de almacenamiento especificada para el montaje de entrada del contenedor.Save the file in the storage location specified for the input mount of the container.

Exportación del paquete de la aplicación entrenada desde la APIExport trained app's package from API

Utilice el siguiente método de la API REST para empaquetar una aplicación de LUIS que ya esté entrenada.Use the following REST API method, to package a LUIS application that you've already trained. Utilice sus proprios valores para sustituir los marcadores de posición de la llamada API; para ello, utilice la tabla situada bajo la especificación 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}
Marcador de posiciónPlaceholder ValorValue
{APPLICATION_ID}{APPLICATION_ID} Identificador de la aplicación de LUIS entrenada.The application ID of the trained LUIS application.
{APPLICATION_VERSION}{APPLICATION_VERSION} Versión de la aplicación de LUIS entrenada.The application version of the trained LUIS application.
{AUTHORING_KEY}{AUTHORING_KEY} Clave de creación de la cuenta de LUIS para la aplicación de LUIS publicada.The authoring key of the LUIS account for the published LUIS app.
Puede obtener la clave de creación en la página User Settings (Configuración del usuario) del portal de LUIS.You can get your authoring key from the User Settings page on the LUIS portal.
{AZURE_REGION}{AZURE_REGION} Región de Azure que corresponda:The appropriate Azure region:

westus: Oeste de EE. UU.westus - West US
westeurope: Europa Occidentalwesteurope - West Europe
australiaeast: Este de Australiaaustraliaeast - Australia East

Para descargar el paquete entrenado, consulte la documentación de la API aquí.To download the trained package, please refer to the API documentation here. Si se descarga correctamente, la respuesta será un archivo de paquete de LUIS.If successfully downloaded, the response is a LUIS package file. Guarde el archivo en la ubicación de almacenamiento especificada para el montaje de entrada del contenedor.Save the file in the storage location specified for the input mount of the container.

Ejecute el contenedor con docker run.Run the container with docker run

Utilice el comando docker run para ejecutar el contenedor.Use the docker run command to run the container. El comando usa los parámetros siguientes:The command uses the following parameters:

Marcador de posiciónPlaceholder ValorValue
{API_KEY}{API_KEY} Esta clave se usa para iniciar el contenedor.This key is used to start the container. No utilice la clave de inicio.Do not use the starter key.
{ENDPOINT_URI}{ENDPOINT_URI} El valor del punto de conexión está disponible en la página Información general de Cognitive Services de Azure Portal.The endpoint value is available on the Azure portal's Cognitive Services Overview page.

Reemplace estos parámetros con sus propios valores en el siguiente comando docker run de ejemplo.Replace these parameters with your own values in the following example docker run command. Ejecute el comando en la consola de 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}
  • En este ejemplo se usa el directorio que está en la unidad C: para evitar conflictos con los permisos de Windows.This example uses the directory off the C: drive to avoid any permission conflicts on Windows. Si necesita usar un directorio específico como directorio de entrada, tal vez tenga que conceder permiso al servicio de Docker.If you need to use a specific directory as the input directory, you may need to grant the docker service permission.
  • No cambie el orden de los argumentos a menos que esté familiarizado con los contenedores de Docker.Do not change the order of the arguments unless you are familiar with docker containers.
  • Si usa otro sistema operativo, utilice la consola o el terminal, la sintaxis de carpeta de los montajes y el carácter de continuación de línea que sean adecuados para su sistema.If you are using a different operating system, use the correct console/terminal, folder syntax for mounts, and line continuation character for your system. En estos ejemplos se supone que se usa una consola de Windows con un carácter de continuación de línea ^.These examples assume a Windows console with a line continuation character ^. Dado que el contenedor es un sistema operativo Linux, el montaje de destino usa una sintaxis de carpeta basada en Linux.Because the container is a Linux operating system, the target mount uses a Linux-style folder syntax.

Este comando:This command:

  • Ejecuta un contenedor desde la imagen de contenedor de LUIS.Runs a container from the LUIS container image
  • Carga la aplicación de LUIS desde el montaje de entrada de c:\input, situado en el host del contenedor.Loads LUIS app from input mount at c:\input, located on container host
  • Asigna dos núcleos de la CPU y 4 gigabytes (GB) de memoria.Allocates two CPU cores and 4 gigabytes (GB) of memory
  • Expone el puerto TCP 5000 y asigna un seudo-TTY para el contenedor.Exposes TCP port 5000 and allocates a pseudo-TTY for the container
  • Guarda los registros de LUIS y el contenedor en el montaje de salida de c:\output, situado en el host del contenedor.Saves container and LUIS logs to output mount at c:\output, located on container host
  • Una vez que se produce la salida, quita automáticamente el contenedor.Automatically removes the container after it exits. La imagen del contenedor sigue estando disponible en el equipo host.The container image is still available on the host computer.

Hay más ejemplos del comando docker run disponibles.More examples of the docker run command are available.

Importante

Para poder ejecutar el contenedor, las opciones Eula, Billing y ApiKey deben estar especificadas; de lo contrario, el contenedor no se iniciará.The Eula, Billing, and ApiKey options must be specified to run the container; otherwise, the container won't start. Para obtener más información, vea Facturación.For more information, see Billing. El valor de ApiKey es la clave de la página de Azure Resources del portal de LUIS y también está disponible en la página de claves del recurso Cognitive Services de Azure.The ApiKey value is the Key from the Azure Resources page in the LUIS portal and is also available on the Azure Cognitive Services resource keys page.

Ejecución de varios contenedores en el mismo hostRun multiple containers on the same host

Si tiene pensado ejecutar varios contenedores con puertos expuestos, asegúrese de que ejecuta cada contenedor con un puerto expuesto diferente.If you intend to run multiple containers with exposed ports, make sure to run each container with a different exposed port. Por ejemplo, ejecute el primer contenedor en el puerto 5000 y el segundo en el puerto 5001.For example, run the first container on port 5000 and the second container on port 5001.

Puede tener este contenedor y un contenedor de Azure Cognitive Services diferente en ejecución simultáneamente en el HOST.You can have this container and a different Azure Cognitive Services container running on the HOST together. También puede tener varios contenedores del mismo contenedor de Cognitive Services en ejecución.You also can have multiple containers of the same Cognitive Services container running.

API de punto de conexión compatibles con el contenedorEndpoint APIs supported by the container

Las versiones V2 y V3 (versión preliminar) de la API están disponibles con el contenedor.Both V2 and V3 (Preview) versions of the API are available with the container.

Consulta del punto de conexión de predicción del contenedorQuery the container's prediction endpoint

El contenedor proporciona varias API de puntos de conexión de predicción de consultas basadas en REST.The container provides REST-based query prediction endpoint APIs. Los puntos de conexión de las aplicaciones publicadas (en ensayo o producción), tienen una ruta diferente a la de los puntos de conexión de las aplicaciones entrenadas.Endpoints for published (staging or production) apps have a different route than endpoints for trained apps.

Utilice el host, http://localhost:5000, con las API de contenedor.Use the host, http://localhost:5000, for container APIs.

Tipo de paquetePackage type MétodoMethod EnrutarRoute Parámetros de consultaQuery parameters
PublicadoPublished 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]
EntrenadaTrained 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]

Los parámetros de consulta determinan cómo y qué se devuelve en la respuesta de la consulta:The query parameters configure how and what is returned in the query response:

Parámetro de consultaQuery parameter typeType PropósitoPurpose
q stringstring Expresión del usuario.The user's utterance.
timezoneOffset númeronumber timezoneOffset le permite cambiar la zona horaria que se utiliza en la entidad datetimeV2 pregenerada.The timezoneOffset allows you to change the timezone used by the prebuilt entity datetimeV2.
verbose booleanboolean Si está establecido en true, devuelve todas las intenciones y sus puntuaciones.Returns all intents and their scores when set to true. El valor predeterminado es false, donde solo se devuelve la intención principal.Default is false, which returns only the top intent.
staging booleanboolean Si está establecido en true, devuelve la consulta a partir de los resultados del entorno de ensayo.Returns query from staging environment results if set to true.
log booleanboolean Registra las consultas, lo que puede utilizarse después para el aprendizaje activo.Logs queries, which can be used later for active learning. El valor predeterminado es true.Default is true.

Consulta de la aplicación publicadaQuery published app

A continuación, se muestra un ejemplo de un comando CURL para consultar el contenedor de una aplicación publicada: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"

Para realizar consultas en el entorno de ensayo, cambie el valor del parámetro de la cadena de consulta staging a true:To make queries to the Staging environment, change the staging query string parameter value to true:

staging=true

Consulta de la aplicación entrenadaQuery trained app

A continuación, se muestra un ejemplo de un comando CURL para consultar el contenedor de una aplicación entrenada: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"

El nombre de la versión tiene un máximo de 10 caracteres y solamente contiene los caracteres que se permiten en las direcciones URL.The version name has a maximum of 10 characters and contains only characters allowed in a URL.

Importación de los registros de punto de conexión para el aprendizaje activoImport the endpoint logs for active learning

Si se especifica un montaje de salida para el contenedor de LUIS, los archivos de registro de consultas de la aplicación se guardan en el directorio de salida, donde {INSTANCE_ID} es el identificador del contenedor.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. El registro de consultas de la aplicación contiene la consulta, la respuesta y las marcas de tiempo de cada consulta de predicción enviada al contenedor de LUIS.The app query log contains the query, response, and timestamps for each prediction query submitted to the LUIS container.

En la siguiente ubicación, se muestra la estructura anidada de directorios de los archivos de registro del contenedor.The following location shows the nested directory structure for the container's log files.

/output/luis/{INSTANCE_ID}/

En el portal de LUIS, seleccione la aplicación y la opción Import endpoint logs (Importar registros de puntos de conexión) para cargar estos registros.From the LUIS portal, select your app, then select Import endpoint logs to upload these logs.

Importación de los archivos de registro del contenedor para el aprendizaje activo

Después de cargar el registro, revise las expresiones del punto de conexión en el portal de LUIS.After the log is uploaded, review the endpoint utterances in the LUIS portal.

Comprobación de que un contenedor está en ejecuciónValidate that a container is running

Hay varias maneras de comprobar que el contenedor está en ejecución.There are several ways to validate that the container is running. Busque la dirección IP externa y el puerto expuesto del contenedor en cuestión y abra el explorador web que prefiera.Locate the External IP address and exposed port of the container in question, and open your favorite web browser. Use las distintas direcciones URL de solicitud para validar que el contenedor se está ejecutando.Use the various request URLs below to validate the container is running. Las direcciones URL de solicitud de ejemplo que se enumeran a continuación son http://localhost:5000, pero el contenedor específico puede variar.The example request URLs listed below are http://localhost:5000, but your specific container may vary. Tenga en cuenta que va a confiar en la dirección IP externa y el puerto expuesto del contenedor.Keep in mind that you're to rely on your container's External IP address and exposed port.

URL de la solicitudRequest URL PropósitoPurpose
http://localhost:5000/ El contenedor ofrece una página principal.The container provides a home page.
http://localhost:5000/status Se solicitó con HTTP GET, para comprobar que el contenedor está en ejecución sin causar una consulta al punto de conexión.Requested with an HTTP GET, to validate that the container is running without causing an endpoint query. Esta solicitud se puede usar con los sondeos de ejecución y preparación de Kubernetes.This request can be used for Kubernetes liveness and readiness probes.
http://localhost:5000/swagger El contenedor cuenta con un completo conjunto de documentación sobre los puntos de conexión y una característica de prueba.The container provides a full set of documentation for the endpoints and a Try it out feature. Esta característica le permite especificar la configuración en un formulario HTML basado en web y realizar la consulta sin necesidad de escribir código.With this feature, you can enter your settings into a web-based HTML form and make the query without having to write any code. Una vez que la consulta devuelve resultados, se proporciona un ejemplo del comando CURL para mostrar los encabezados HTTP y el formato de cuerpo requeridos.After the query returns, an example CURL command is provided to demonstrate the HTTP headers and body format that's required.

Página principal del contenedor

Detención del contenedorStop the container

Para apagar el contenedor, en el entorno de la línea de comandos en la que se ejecuta el contenedor, presione Ctrl + C.To shut down the container, in the command-line environment where the container is running, press Ctrl+C.

solución de problemasTroubleshooting

Si ejecuta el contenedor con un montaje de salida y el registro habilitados, el contenedor genera archivos de registro que resultan útiles para solucionar problemas que se producen al iniciar o ejecutar el contenedor.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.

FacturaciónBilling

El contenedor de LUIS envía información de facturación a Azure mediante un recurso de Cognitive Services de la cuenta de Azure.The LUIS container sends billing information to Azure, using a Cognitive Services resource on your Azure account.

Las consultas en el contenedor se facturan con el plan de tarifa del recurso de Azure que se usa para <ApiKey>.Queries to the container are billed at the pricing tier of the Azure resource that's used for the <ApiKey>.

Los contenedores de Azure Cognitive Services no tienen licencia para ejecutarse si no están conectados al punto de conexión de facturación para las mediciones.Azure Cognitive Services containers aren't licensed to run without being connected to the billing endpoint for metering. Debe habilitar los contenedores para que comuniquen la información de facturación al punto de conexión de facturación en todo momento.You must enable the containers to communicate billing information with the billing endpoint at all times. Los contenedores de Cognitive Services no envían datos de los clientes (por ejemplo, la imagen o el texto que se está analizando) a Microsoft.Cognitive Services containers don't send customer data, such as the image or text that's being analyzed, to Microsoft.

Conexión a AzureConnect to Azure

El contenedor necesita que se ejecuten los valores del argumento de facturación.The container needs the billing argument values to run. Estos valores permiten al contenedor conectarse al punto de conexión de facturación.These values allow the container to connect to the billing endpoint. El contenedor informa sobre el uso cada 10 a 15 minutos.The container reports usage about every 10 to 15 minutes. Si el contenedor no se conecta a Azure en la ventana de tiempo permitida, continuará ejecutándose pero no atenderá las consultas hasta que se restaure el punto de conexión de facturación.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. Se intenta 10 veces la conexión en el mismo intervalo de tiempo de 10 a 15 minutos.The connection is attempted 10 times at the same time interval of 10 to 15 minutes. Si no se puede conectar con el punto de conexión de facturación en esos 10 intentos, el contenedor deja de ejecutarse.If it can't connect to the billing endpoint within the 10 tries, the container stops running.

Argumentos de facturaciónBilling arguments

Para que el comando docker run inicie el contenedor, se deben especificar las tres opciones siguientes se deben especificar con valores válidos:For the docker run command to start the container, all three of the following options must be specified with valid values:

OpciónOption DESCRIPCIÓNDescription
ApiKey La clave de API del recurso de Cognitive Services que se usa para realizar un seguimiento de la información de facturación.The API key of the Cognitive Services resource that's used to track billing information.
El valor de esta opción se debe establecer en una clave de API para el recurso aprovisionado que se especifica en Billing.The value of this option must be set to an API key for the provisioned resource that's specified in Billing.
Billing El punto de conexión del recurso de Cognitive Services que se usa para realizar el seguimiento de la información de facturación.The endpoint of the Cognitive Services resource that's used to track billing information.
El valor de esta opción debe establecerse en el URI del punto de conexión de un recurso aprovisionado de Azure.The value of this option must be set to the endpoint URI of a provisioned Azure resource.
Eula Indica que ha aceptado la licencia del contenedor.Indicates that you accepted the license for the container.
El valor de esta opción debe establecerse en accept.The value of this option must be set to accept.

Para obtener más información acerca de estas opciones, consulte Configure containers (Configuración de contenedores).For more information about these options, see Configure containers.

Dependencias admitidas del contenedor latestSupported dependencies for latest container

El contenedor más reciente, publicado en 2019 //Build, será compatible con:The latest container, released at 2019 //Build, will support:

  • Bing Spell Check: solicitudes al punto de conexión de predicción de consultas con los parámetros de cadena de consulta &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. Use el tutorial de Bing Spell Check v7 para obtener más información.Use the Bing Spell Check v7 tutorial to learn more. Si se usa esta característica, el contenedor envía la expresión al recurso de Bing Spell Check V7.If this feature is used, the container sends the utterance to your Bing Spell Check V7 resource.
  • Nuevos dominios creados previamente: estos dominios empresariales incluyen entidades, expresiones de ejemplo y patrones.New prebuilt domains: these enterprise-focused domains include entities, example utterances, and patterns. Amplíe estos dominios para su propio uso.Extend these domains for your own use.

Dependencias no admitidas del contenedor latestUnsupported dependencies for latest container

Si su aplicación de LUIS tiene dependencias no admitidas, no podrá exportar el contenedor hasta que quite las características no admitidas.If your LUIS app has unsupported dependencies, you won't be able to export for container until you remove the unsupported features. Si intenta exportar el contenedor, el portal de LUIS informa de las características no admitidas que debe quitar.When you attempt to export for container, the LUIS portal reports the unsupported features you need to remove.

Puede usar una aplicación de LUIS si no incluye ninguna de las siguientes dependencias:You can use a LUIS application if it doesn't include any of the following dependencies:

Configuraciones de aplicaciones no admitidasUnsupported app configurations DetallesDetails
Referencias culturales de contenedor no admitidasUnsupported container cultures Neerlandés (nl-NL)Dutch (nl-NL)
Japonés (ja-JP)Japanese (ja-JP)
El alemán solo es compatible con el tokenizador 1.0.2.German is only supported with the 1.0.2 tokenizer.
Entidades no compatibles con ninguna referencia culturalUnsupported entities for all cultures Entidad KeyPhrase pregenerada para todas las referencias culturalesKeyPhrase prebuilt entity for all cultures
Entidades no compatibles con la referencia cultural Inglés (en-US)Unsupported entities for English (en-US) culture Entidades GeographyV2 pregeneradasGeographyV2 prebuilt entities
Preparación para la vozSpeech priming El contenedor no admite dependencias externas.External dependencies are not supported in the container.
análisis de opinionesSentiment analysis El contenedor no admite dependencias externas.External dependencies are not supported in the container.

Publicaciones de blogBlog posts

Ejemplos para desarrolladoresDeveloper samples

Hay ejemplos para desarrolladores disponibles en nuestro repositorio de GitHub.Developer samples are available at our GitHub repository.

Ver seminario webView webinar

Únase al seminario web para más información sobre:Join the webinar to learn about:

  • Implementación de Cognitive Services en cualquier máquina con DockerHow to deploy Cognitive Services to any machine using Docker
  • Implementación de Cognitive Services en AKSHow to deploy Cognitive Services to AKS

ResumenSummary

En este artículo, ha aprendido algunos conceptos y ha visto el flujo de trabajo de Language Understanding (LUIS) para descargar, instalar y ejecutar contenedores.In this article, you learned concepts and workflow for downloading, installing, and running Language Understanding (LUIS) containers. En resumen:In summary:

  • Language Understanding (LUIS) proporciona un contenedor de Linux para Docker que permite hacer predicciones de consultas de puntos de conexión de expresiones.Language Understanding (LUIS) provides one Linux container for Docker providing endpoint query predictions of utterances.
  • Las imágenes del contenedor se descargan desde Microsoft Container Registry (MCR).Container images are downloaded from the Microsoft Container Registry (MCR).
  • Las imágenes de contenedor se ejecutan en Docker.Container images run in Docker.
  • Puede usar la API REST para consultar los puntos de conexión del contenedor especificando el URI que tiene el contenedor en el host.You can use REST API to query the container endpoints by specifying the host URI of the container.
  • Debe especificar la información de facturación al crear una instancia de un contenedor.You must specify billing information when instantiating a container.

Importante

Los contenedores de Cognitive Services no tienen licencia para ejecutarse sin estar conectados a Azure para realizar mediciones.Cognitive Services containers are not licensed to run without being connected to Azure for metering. Los clientes tienen que habilitar los contenedores para comunicar la información de facturación con el servicio de medición en todo momento.Customers need to enable the containers to communicate billing information with the metering service at all times. Los contenedores de Cognitive Services no envían datos de los clientes (por ejemplo, la imagen o el texto que se está analizando) a Microsoft.Cognitive Services containers do not send customer data (for example, the image or text that is being analyzed) to Microsoft.

Pasos siguientesNext steps