Instalar e executar os contêineres de docker LUISInstall and run LUIS docker containers

O contêiner do Serviço Inteligente de Reconhecimento Vocal (LUIS) carrega o modelo de reconhecimento vocal treinado ou publicado, também conhecido como um aplicativo LUIS, em um contêiner do Docker e fornece acesso às previsões de consulta dos pontos de extremidade da API do contêiner.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. Você pode coletar logs de consulta do contêiner e carrega esses back para o aplicativo de reconhecimento vocal para aumentar a precisão da previsão do aplicativo.You can collect query logs from the container and upload these back to the Language Understanding app to improve the app's prediction accuracy.

O vídeo a seguir demonstra como usar esse contêiner.The following video demonstrates using this container.

Demonstração de contêiner para os Serviços CognitivosContainer demonstration for Cognitive Services

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.If you don't have an Azure subscription, create a free account before you begin.

Pré-requisitosPrerequisites

Para executar o contêiner do LUIS, você precisará ter o seguinte:In order to run the LUIS container, you must have the following:

ObrigatórioRequired FinalidadePurpose
Mecanismo DockerDocker Engine É necessário ter o Mecanismo Docker instalado em um computador host.You need the Docker Engine installed on a host computer. O Docker fornece pacotes que configuram o ambiente do Docker no macOS, no Windows e no Linux.Docker provides packages that configure the Docker environment on macOS, Windows, and Linux. Para instruções sobre conceitos básicos do Docker e de contêiner, consulte a visão geral do Docker.For a primer on Docker and container basics, see the Docker overview.

O Docker deve ser configurado para permitir que os contêineres conectem-se e enviem dados de cobrança para o Azure.Docker must be configured to allow the containers to connect with and send billing data to Azure.

No Windows, o Docker também deve ser configurado para dar suporte a contêineres do Linux.On Windows, Docker must also be configured to support Linux containers.

Familiaridade com o DockerFamiliarity with Docker É necessário ter uma compreensão básica de conceitos do Docker, como registros, repositórios, contêineres e imagens de contêiner, bem como conhecimento dos comandos básicos do docker.You should have a basic understanding of Docker concepts, like registries, repositories, containers, and container images, as well as knowledge of basic docker commands.
Azure Cognitive Services recursos e o LUIS aplicativo empacotado arquivoAzure Cognitive Services resource and LUIS packaged app file Para usar o contêiner, você precisará ter:In order to use the container, you must have:

* Um dos serviços Cognitivos o ponto de extremidade cobrança URI de chave de recurso do Azure e a cobrança associada.* A Cognitive Services Azure resource and the associated billing key the billing endpoint URI. Ambos os valores estão disponíveis nas páginas de visão geral e as chaves de recurso e são necessários para iniciar o contêiner.Both values are available on the Overview and Keys pages for the resource and are required to start the container. Você precisará adicionar o luis/v2.0 roteamento para o URI do ponto de extremidade, conforme mostrado no exemplo a seguir 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.
* Um aplicativo publicado ou treinado empacotado como uma entrada montada para o contêiner com sua ID do aplicativo associado.* A trained or published app packaged as a mounted input to the container with its associated App ID. Você pode obter o arquivo de pacote no portal do LUIS ou as APIs de criação.You can get the packaged file from the LUIS portal or the Authoring APIs. Se você estiver obtendo LUIS o aplicativo empacotado do APIs de criação, você também precisará de seu de criação de chave.If you are getting LUIS packaged app from the authoring APIs, you will also need your Authoring Key.

Esses requisitos são usados para transmitir argumentos de linha de comando para as seguintes variáveis:These requirements are used to pass command-line arguments to the following variables:

{AUTHORING_KEY} : Essa chave é usada para obter o aplicativo empacotado do serviço de LUIS na nuvem e carregar os logs de consulta novamente na nuvem.{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. O formato é xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.The format is xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.

{APPLICATION_ID} : Essa ID é usada para selecionar o aplicativo.{APPLICATION_ID}: This ID is used to select the App. O formato é xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.The format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

{ENDPOINT_KEY} : Essa chave é usada para iniciar o contêiner.{ENDPOINT_KEY}: This key is used to start the container. Você pode encontrar a chave do ponto de extremidade em dois locais.You can find the endpoint key in two places. A primeira é o portal do Azure dentro de dos serviços Cognitivos lista de chaves do recurso.The first is the Azure portal within the Cognitive Services resource's keys list. A chave do ponto de extremidade também está disponível no portal do LUIS na página Configurações de chaves e de ponto de extremidade.The endpoint key is also available in the LUIS portal on the Keys and Endpoint settings page. Não use a chave de inicialização.Do not use the starter key.

{BILLING_ENDPOINT} : Um exemplo é: https://westus.api.cognitive.microsoft.com/luis/v2.0.{BILLING_ENDPOINT}: An example is: https://westus.api.cognitive.microsoft.com/luis/v2.0.

A chave de criação e a chave do ponto de extremidade têm finalidades diferentes.The authoring key and endpoint key have different purposes. Não use uma no lugar da outra.Do not use them interchangeably.

Criação de APIs para o arquivo de pacoteAuthoring APIs for package file

Criação de APIs para aplicativos empacotados:Authoring APIs for packaged apps:

O computador hostThe host computer

O host é um computador baseado em x64 que executa o contêiner do Docker.The host is a x64-based computer that runs the Docker container. Ele pode ser um computador local ou um serviço de hospedagem do Docker no Azure, como:It can be a computer on your premises or a Docker hosting service in Azure, such as:

Recomendações e requisitos do contêinerContainer requirements and recommendations

Esse contêiner dá suporte aos valores mínimos e recomendados para as configurações:This container supports minimum and recommended values for the settings:

ContêinerContainer MínimoMinimum RecomendadoRecommended TPSTPS
(No mínimo, máximo)(Minimum, Maximum)
LUISLUIS 1 núcleo, 2 GB de memória1 core, 2 GB memory 1 núcleo, 4 GB de memória1 core, 4 GB memory 20,4020,40
  • Cada núcleo precisa ser de pelo menos 2,6 GHz (gigahertz) ou mais rápido.Each core must be at least 2.6 gigahertz (GHz) or faster.
  • TPS – transações por segundoTPS - transactions per second

Memória e núcleo correspondem às configurações --cpus e --memory, que são usadas como parte do comando docker run.Core and memory correspond to the --cpus and --memory settings, which are used as part of the docker run command.

Obter a imagem de contêiner com docker pullGet the container image with docker pull

Use o comando docker pull para fazer download de uma imagem de contêiner do repositório 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 o comando docker pull para baixar uma imagem de contêiner.Use the docker pull command to download a container image.

Para obter uma descrição completa das marcas disponíveis, como as latest usadas no comando anterior, confira LUIS no Hub do Docker.For a full description of available tags, such as latest used in the preceding command, see LUIS on Docker Hub.

Dica

Você pode usar o comando imagens do estivador para listar as imagens do contêiner transferidas por download.You can use the docker images command to list your downloaded container images. Por exemplo, o comando a seguir lista o ID, o repositório e a tag de cada imagem do contêiner transferida por download, formatada como uma tabela: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
ebbee78a6baa       <container-name>         latest

Como usar o contêinerHow to use the container

Depois que o contêiner estiver no computador host, use o processo a seguir para trabalhar com o contêiner.Once the container is on the host computer, use the following process to work with the container.

Processo para usar o contêiner do Serviço Inteligente de Reconhecimento Vocal (LUIS)

  1. Exporte o pacote para o contêiner no portal do LUIS ou nas APIs de LUIS.Export package for container from LUIS portal or LUIS APIs.
  2. Mova o arquivo de pacote para o diretório de entrada exigido no computador host.Move package file into the required input directory on the host computer. Não renomeie, alter, substituir ou descompactar o arquivo de pacote do LUIS.Do not rename, alter, overwrite, or decompress LUIS package file.
  3. Execute o contêiner, com a montagem de entrada e as configurações de cobrança necessárias.Run the container, with the required input mount and billing settings. Há outros exemplos do comando docker run disponíveis.More examples of the docker run command are available.
  4. Consultar o ponto de extremidade de previsão do contêiner.Querying the container's prediction endpoint.
  5. Quando você terminar de usar o contêiner importe os logs do ponto de extremidade da montagem de saída no portal do LUIS e pare o contêiner.When you are done with the container, import the endpoint logs from the output mount in the LUIS portal and stop the container.
  6. Use o aprendizado ativo do portal do LUIS na página Examinar declarações do ponto de extremidade para aprimorar o aplicativo.Use LUIS portal's active learning on the Review endpoint utterances page to improve the app.

O aplicativo em execução no contêiner não pode ser alterado.The app running in the container can't be altered. Para alterar o aplicativo no contêiner, você precisará alterar o aplicativo no serviço de LUIS usando o portal do LUIS ou usando as APIs de criação do 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. Treine e/ou publique e, em seguida, baixe um novo pacote e execute novamente o contêiner.Then train and/or publish, then download a new package and run the container again.

O aplicativo LUIS dentro do contêiner não pode ser exportado novamente para o serviço de LUIS.The LUIS app inside the container can't be exported back to the LUIS service. Somente os logs de consulta podem ser carregados.Only the query logs can be uploaded.

Exportar aplicativo empacotado do LUISExport packaged app from LUIS

O contêiner de LUIS requer um aplicativo LUIS treinado ou publicado para responder a consultas de previsão das declarações dos usuários.The LUIS container requires a trained or published LUIS app to answer prediction queries of user utterances. Para obter o aplicativo LUIS, use a API do pacote publicado ou treinado.In order to get the LUIS app, use either the trained or published package API.

O local padrão é o subdiretório input do local em que você executa o comando docker run.The default location is the input subdirectory in relation to where you run the docker run command.

Coloque o arquivo de pacote em um diretório e faça referência a esse diretório como a montagem de entrada quando você executar o contêiner do Docker.Place the package file in a directory and reference this directory as the input mount when you run the docker container.

Tipos de pacotePackage types

O diretório de montagem de entrada pode conter as versões de Produção, Preparo e Treinada do aplicativo simultaneamente.The input mount directory can contain the Production, Staging, and Trained versions of the app simultaneously. Todos os pacotes são montados.All the packages are mounted.

Tipo de pacotePackage Type API do ponto de extremidade de consultaQuery Endpoint API Disponibilidade de consultaQuery availability Formato do nome de arquivo do pacotePackage filename format
TreinadoTrained Get, PostGet, Post Somente contêinerContainer only {APPLICATION_ID}_v{APPLICATION_VERSION}.gz
StagingStaging Get, PostGet, Post Azure e contêinerAzure and container {APPLICATION_ID}_STAGING.gz
ProduçãoProduction Get, PostGet, Post Azure e contêinerAzure and container {APPLICATION_ID}_PRODUCTION.gz

Importante

Não renomeie, alter, substituir ou descompactar os arquivos de pacote do LUIS.Do not rename, alter, overwrite, or decompress the LUIS package files.

Pré-requisitos de empacotamentoPackaging prerequisites

Antes de empacotar um aplicativo LUIS, você deverá ter o seguinte:Before packaging a LUIS application, you must have the following:

Requisitos de empacotamentoPackaging Requirements DetalhesDetails
Azure dos serviços Cognitivos instância do recursoAzure Cognitive Services resource instance As regiões com suporte incluemSupported regions include

Oeste dos EUA (westus)West US (westus)
Europa Ocidental (westeurope)West Europe (westeurope)
Leste da Austrália (australiaeast)Australia East (australiaeast)
Aplicativo LUIS treinado ou publicadoTrained or published LUIS app Sem dependências sem suporte.With no unsupported dependencies.
Acesso ao sistema de arquivos do computador hostAccess to the host computer's file system O computador host deve permitir uma montagem de entrada.The host computer must allow an input mount.

Exportar pacote de aplicativo do portal do LUISExport app package from LUIS portal

O portal do LUIS permite exportar o pacote do aplicativo publicado ou treinado.The LUIS portal provides the ability to export the trained or published app's package.

Exportar o pacote do aplicativo publicado do portal do LUISExport published app's package from LUIS portal

O pacote do aplicativo publicado está disponível na página da lista Meus aplicativos.The published app's package is available from the My Apps list page.

  1. Entre no portal do LUIS.Sign on to the LUIS portal.
  2. Marque a caixa de seleção à esquerda do nome do aplicativo na lista.Select the checkbox to the left of the app name in the list.
  3. Selecione o item Exportar na barra de ferramentas contextual acima da lista.Select the Export item from the contextual toolbar above the list.
  4. Selecione Exportar para o contêiner (GZIP) .Select Export for container (GZIP).
  5. Selecione o ambiente do Slot de produção ou do Slot de preparo.Select the environment of Production slot or Staging slot.
  6. O download do pacote é feito do navegador.The package is downloaded from the browser.

Exportar o pacote publicado para o contêiner a partir do menu Exportar da página do aplicativo

Exportar o pacote do aplicativo treinado do portal do LUISExport trained app's package from LUIS portal

O pacote do aplicativo treinado está disponível na página da lista Versões.The trained app's package is available from the Versions list page.

  1. Entre no portal do LUIS.Sign on to the LUIS portal.
  2. Selecione o aplicativo na lista.Select the app in the list.
  3. Selecione Gerenciar na barra de navegação do aplicativo.Select Manage in the app's navigation bar.
  4. Selecione Versões na barra de navegação à esquerda.Select Versions in the left navigation bar.
  5. Marque a caixa de seleção à esquerda do nome da versão na lista.Select the checkbox to the left of the version name in the list.
  6. Selecione o item Exportar na barra de ferramentas contextual acima da lista.Select the Export item from the contextual toolbar above the list.
  7. Selecione Exportar para o contêiner (GZIP) .Select Export for container (GZIP).
  8. O download do pacote é feito do navegador.The package is downloaded from the browser.

Exportar o pacote treinado para o contêiner a partir do menu Exportar da página Versões

Exportar o pacote do aplicativo publicado da APIExport published app's package from API

Use o método de API REST a seguir para empacotar um aplicativo LUIS que você já publicou.Use the following REST API method, to package a LUIS app that you've already published. Substitua os espaços reservados por seus próprios valores apropriados na chamada à API, usando a tabela abaixo da especificação de 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 ValueValue
{APPLICATION_ID}{APPLICATION_ID} A ID de aplicativo do aplicativo LUIS publicado.The application ID of the published LUIS app.
{APPLICATION_ENVIRONMENT}{APPLICATION_ENVIRONMENT} O ambiente do aplicativo LUIS publicado.The environment of the published LUIS app. Use um dos seguintes valores:Use one of the following values:
PRODUCTION
STAGING
{AUTHORING_KEY}{AUTHORING_KEY} A chave de criação da conta do LUIS para o aplicativo LUIS publicado.The authoring key of the LUIS account for the published LUIS app.
Você pode obter sua chave de criação na página Configurações do Usuário no portal do LUIS.You can get your authoring key from the User Settings page on the LUIS portal.
{AZURE_REGION}{AZURE_REGION} A região do Azure apropriada:The appropriate Azure region:

westus – Oeste dos EUAwestus - West US
westeurope – Europa Ocidentalwesteurope - West Europe
australiaeast – Leste da Austráliaaustraliaeast - Australia East

Use o comando CURL abaixo para baixar o pacote publicado, substituindo por seus próprios valores:Use the following CURL command to download the published package, substituting your own values:

curl -X GET \
https://{AZURE_REGION}.api.cognitive.microsoft.com/luis/api/v2.0/package/{APPLICATION_ID}/slot/{APPLICATION_ENVIRONMENT}/gzip  \
 -H "Ocp-Apim-Subscription-Key: {AUTHORING_KEY}" \
 -o {APPLICATION_ID}_{APPLICATION_ENVIRONMENT}.gz

Se for bem-sucedido, a resposta será um arquivo de pacote do LUIS.If successful, the response is a LUIS package file. Salve o arquivo no local de armazenamento especificado para a montagem de entrada do contêiner.Save the file in the storage location specified for the input mount of the container.

Exportar o pacote do aplicativo treinado da APIExport trained app's package from API

Use o método de API REST a seguir para empacotar um aplicativo LUIS que você já treinou.Use the following REST API method, to package a LUIS application that you've already trained. Substitua os espaços reservados por seus próprios valores apropriados na chamada à API, usando a tabela abaixo da especificação de 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 ValueValue
{APPLICATION_ID}{APPLICATION_ID} A ID de aplicativo do aplicativo LUIS treinado.The application ID of the trained LUIS application.
{APPLICATION_VERSION}{APPLICATION_VERSION} A versão de aplicativo do aplicativo LUIS treinado.The application version of the trained LUIS application.
{AUTHORING_KEY}{AUTHORING_KEY} A chave de criação da conta do LUIS para o aplicativo LUIS publicado.The authoring key of the LUIS account for the published LUIS app.
Você pode obter sua chave de criação na página Configurações do Usuário no portal do LUIS.You can get your authoring key from the User Settings page on the LUIS portal.
{AZURE_REGION}{AZURE_REGION} A região do Azure apropriada:The appropriate Azure region:

westus – Oeste dos EUAwestus - West US
westeurope – Europa Ocidentalwesteurope - West Europe
australiaeast – Leste da Austráliaaustraliaeast - Australia East

Use o seguinte comando CURL para baixar o pacote treinado:Use the following CURL command to download the trained package:

curl -X GET \
https://{AZURE_REGION}.api.cognitive.microsoft.com/luis/api/v2.0/package/{APPLICATION_ID}/versions/{APPLICATION_VERSION}/gzip  \
 -H "Ocp-Apim-Subscription-Key: {AUTHORING_KEY}" \
 -o {APPLICATION_ID}_v{APPLICATION_VERSION}.gz

Se for bem-sucedido, a resposta será um arquivo de pacote do LUIS.If successful, the response is a LUIS package file. Salve o arquivo no local de armazenamento especificado para a montagem de entrada do contêiner.Save the file in the storage location specified for the input mount of the container.

Executar o contêiner com docker runRun the container with docker run

Use o comando docker run para executar o contêiner.Use the docker run command to run the container. O comando usa os seguintes parâmetros:The command uses the following parameters:

PlaceholderPlaceholder ValueValue
{ENDPOINT_KEY}{ENDPOINT_KEY} Essa chave é usada para iniciar o contêiner.This key is used to start the container. Não use a chave de inicialização.Do not use the starter key.
{BILLING_ENDPOINT}{BILLING_ENDPOINT} O valor de ponto de extremidade de cobrança está disponível no portal do Azure Cognitive Services página de visão geral.The billing endpoint value is available on the Azure portal's Cognitive Services Overview page. Você precisará adicionar o luis/v2.0 roteamento para o URI do ponto de extremidade, conforme mostrado no exemplo a seguir: https://westus.api.cognitive.microsoft.com/luis/v2.0.You need to add the luis/v2.0 routing to the endpoint URI as shown in the following example: https://westus.api.cognitive.microsoft.com/luis/v2.0.

Substitua esses parâmetros por seus próprios valores no comando docker run de exemplo a seguir.Replace these parameters with your own values in the following example docker run command. Execute o comando no console do 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={BILLING_ENDPOINT} ^
ApiKey={ENDPOINT_KEY}
  • Este exemplo usa o diretório de desativar o c: unidade para evitar conflitos de permissão no Windows.This example uses the directory off the c: drive to avoid any permission conflicts on Windows. Se você precisar usar um diretório específico como o diretório de entrada, talvez seja necessário conceder ao Docker permissão de serviço.If you need to use a specific directory as the input directory, you may need to grant the docker service permission.
  • não altere a ordem dos argumentos, a menos que você esteja familiarizado com contêineres do Docker.Do not change the order of the arguments unless you are very familiar with docker containers.
  • Se você estiver usando um sistema operacional diferente, use o console/terminal correto, a sintaxe de pasta para montagens e o caractere de continuação de linha para o seu 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. Estes exemplos supõem que um console do Windows com um caractere de continuação de linha ^.These examples assume a Windows console with a line continuation character ^. Como o contêiner é um sistema operacional Linux, a montagem de destino usa uma sintaxe de pasta de estilo do Linux.Because the container is a Linux operating system, the target mount uses a Linux-style folder syntax.

Esse comando:This command:

  • Executa um contêiner da imagem de contêiner do LUISRuns a container from the LUIS container image
  • Carrega o aplicativo LUIS da montagem de entrada em c:\input, localizada no host do contêinerLoads LUIS app from input mount at c:\input, located on container host
  • Aloca dois núcleos de CPU e 4 GB (gigabytes) de memóriaAllocates two CPU cores and 4 gigabytes (GB) of memory
  • Expõe a porta TCP 5000 e aloca um pseudo-TTY para o contêinerExposes TCP port 5000 and allocates a pseudo-TTY for the container
  • Salva os logs de LUIS e contêiner para gerar a montagem de saída em c:\output, localizada no host do contêinerSaves container and LUIS logs to output mount at c:\output, located on container host
  • Remove automaticamente o contêiner depois que ele sai.Automatically removes the container after it exits. A imagem de contêiner ainda fica disponível no computador host.The container image is still available on the host computer.

Há outros exemplos do comando docker run disponíveis.More examples of the docker run command are available.

Importante

As opções Eula, Billing e ApiKey devem ser especificadas para executar o contêiner; caso contrário, o contêiner não será iniciado.The Eula, Billing, and ApiKey options must be specified to run the container; otherwise, the container won't start. Para mais informações, consulte Faturamento.For more information, see Billing. O valor de ApiKey é o chave das chaves e os pontos de extremidade de página no portal do LUIS e também está disponível no Azure Cognitive Services página chaves de recurso.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.

Executar vários contêineres no mesmo hostRun multiple containers on the same host

Se você pretende executar vários contêineres com portas expostas, execute cada um deles com uma porta exposta diferente.If you intend to run multiple containers with exposed ports, make sure to run each container with a different exposed port. Por exemplo, execute o primeiro contêiner na porta 5000 e o segundo contêiner na porta 5001.For example, run the first container on port 5000 and the second container on port 5001.

É possível ter esse contêiner e um contêiner dos Serviços Cognitivos do Azure em execução no HOST juntos.You can have this container and a different Azure Cognitive Services container running on the HOST together. Também é possível ter vários contêineres do mesmo contêiner dos Serviços Cognitivos em execução.You also can have multiple containers of the same Cognitive Services container running.

Ponto de extremidade de APIs com suporte pelo contêinerEndpoint APIs supported by the container

Ambos os V2 e V3 (versão prévia) versões da API estão disponíveis com o contêiner.Both V2 and V3 (Preview) versions of the API are available with the container.

Consultar o ponto de extremidade de previsão do contêinerQuery the container's prediction endpoint

O contêiner fornece APIs de ponto de extremidade de previsão de consulta com base em REST.The container provides REST-based query prediction endpoint APIs. Os pontos de extremidade para aplicativos publicados (preparo ou produção) têm uma rota diferente da dos pontos de extremidade para aplicativos treinados.Endpoints for published (staging or production) apps have a different route than endpoints for trained apps.

Use o host, https://localhost:5000, para APIs de contêiner.Use the host, https://localhost:5000, for container APIs.

Tipo de pacotePackage type MétodoMethod RotaRoute 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]
TreinadoTrained 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]

Os parâmetros de consulta configuram como e o que é retornado na resposta da consulta:The query parameters configure how and what is returned in the query response:

Parâmetro de consultaQuery parameter TipoType FinalidadePurpose
q cadeia de caracteresstring A declaração do usuário.The user's utterance.
timezoneOffset númeronumber O timezoneOffset permite alterar o fuso horário usado pela datetimeV2 predefinida da entidade.The timezoneOffset allows you to change the timezone used by the prebuilt entity datetimeV2.
verbose booleanboolean Retorna todas as intenções e suas pontuações quando definido como true.Returns all intents and their scores when set to true. O padrão é false, o que retorna apenas a intenção principal.Default is false, which returns only the top intent.
staging booleanboolean Retorna a consulta dos resultados do ambiente de preparo quando definido como true.Returns query from staging environment results if set to true.
log booleanboolean Registra as consultas, que podem ser usadas posteriormente no aprendizado ativo.Logs queries, which can be used later for active learning. O padrão é true.Default is true.

Consultar aplicativo publicadoQuery published app

Um exemplo de comando CURL para consultar o contêiner em relação a um aplicativo publicado é: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 fazer consultas no ambiente de Preparo, altere o valor de parâmetro da cadeia de caracteres de consulta staging para true:To make queries to the Staging environment, change the staging query string parameter value to true:

staging=true

Consultar aplicativo treinadoQuery trained app

Um exemplo de comando CURL para consultar o contêiner em relação a um aplicativo treinado é: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"

O nome da versão tem no máximo 10 caracteres e contém apenas caracteres permitidos em uma URL.The version name has a maximum of 10 characters and contains only characters allowed in a URL.

Importar os logs de ponto de extremidade para aprendizado ativoImport the endpoint logs for active learning

Se uma montagem de saída for especificada para o contêiner do LUIS, os arquivos de log de consulta de aplicativo serão salvos no diretório de saída, em que {INSTANCE_ID} é a ID do contêiner.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. O log de consulta do aplicativo contém a consulta, a resposta e os carimbos de data/hora para cada consulta de previsão enviada para o contêiner de LUIS.The app query log contains the query, response, and timestamps for each prediction query submitted to the LUIS container.

O local a seguir mostra a estrutura de diretórios aninhados para os arquivos de log do contêiner.The following location shows the nested directory structure for the container's log files.

/output/luis/{INSTANCE_ID}/

No portal do LUIS, selecione seu aplicativo e selecione Importar logs de ponto de extremidade para carregá-los.From the LUIS portal, select your app, then select Import endpoint logs to upload these logs.

Importar arquivos de log do contêiner para aprendizado ativo

Depois que o log é carregado, examine as declarações do ponto de extremidade no portal do LUIS.After the log is uploaded, review the endpoint utterances in the LUIS portal.

Validar se um contêiner está em execuçãoValidate that a container is running

Há várias maneiras de validar se um contêiner está em execução.There are several ways to validate that the container is running.

SolicitaçãoRequest FinalidadePurpose
http://localhost:5000/ O contêiner oferece uma home page.The container provides a home page.
http://localhost:5000/status Solicitado com GET, para validar se o contêiner está em execução sem gerar uma consulta de ponto de extremidade.Requested with GET, to validate that the container is running without causing an endpoint query. Essa solicitação pode ser usada para testes de preparação e de execução do Kubernetes.This request can be used for Kubernetes liveness and readiness probes.
http://localhost:5000/swagger O contêiner fornece um conjunto completo de documentação para os pontos de extremidades e um recurso Try it now.The container provides a full set of documentation for the endpoints and a Try it now feature. Com esse recurso, é possível inserir suas configurações em um formulário HTML baseado na Web e realizar a consulta sem precisar escrever nenhum 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. Após a consulta ser retornada, um exemplo de comando CURL será fornecido para demonstrar o formato do corpo e dos cabeçalhos HTTP exigidos.After the query returns, an example CURL command is provided to demonstrate the HTTP headers and body format that's required.

Home page do contêiner

Parar o contêinerStop the container

Para desligar o contêiner, no ambiente de linha de comando em que o contêiner estiver em execução, pressione Ctrl+C.To shut down the container, in the command-line environment where the container is running, press Ctrl+C.

solução de problemasTroubleshooting

Se você executar o contêiner com uma montagem de saída e o registro em log habilitado, o contêiner gerará arquivos de log que são úteis para solucionar problemas que ocorrem durante a inicialização ou execução do contêiner.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.

CobrançaBilling

Os envios de contêiner LUIS cobrança informações do Azure, usando um dos serviços Cognitivos recurso em sua conta do Azure.The LUIS container sends billing information to Azure, using a Cognitive Services resource on your Azure account.

Consultas ao contêiner são cobradas pelo tipo de preço do recurso do Azure usado para <ApiKey>.Queries to the container are billed at the pricing tier of the Azure resource that's used for the <ApiKey>.

Os contêineres dos Serviços Cognitivos do Azure não estão licenciados para execução sem estarem conectados ao ponto de extremidade de cobrança para medição.Azure Cognitive Services containers aren't licensed to run without being connected to the billing endpoint for metering. Você precisa permitir que os contêineres comuniquem as informações de cobrança com o ponto de extremidade de cobrança em todos os momentos.You must enable the containers to communicate billing information with the billing endpoint at all times. Os contêineres dos Serviços Cognitivos não enviam dados do cliente, como imagem ou texto que está sendo analisado, para a Microsoft.Cognitive Services containers don't send customer data, such as the image or text that's being analyzed, to Microsoft.

Conecte-se ao AzureConnect to Azure

O contêiner precisa dos valores de argumento de cobrança para ser executado.The container needs the billing argument values to run. Esses valores permitem que o contêiner se conecte ao ponto de extremidade de cobrança.These values allow the container to connect to the billing endpoint. O contêiner relata o uso a cada 10 a 15 minutos.The container reports usage about every 10 to 15 minutes. Se o contêiner não se conectar ao Azure dentro da janela de tempo permitida, ele continuará sendo executado, mas não atenderá a consultas até que o ponto de extremidade de cobrança seja restaurado.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. Serão realizadas 10 tentativas de conexão no mesmo intervalo de tempo de 10 a 15 minutos.The connection is attempted 10 times at the same time interval of 10 to 15 minutes. Se não for possível conectar-se ao ponto de extremidade de cobrança dentro das 10 tentativas, o contêiner interromperá a execução.If it can't connect to the billing endpoint within the 10 tries, the container stops running.

Argumentos de cobrançaBilling arguments

Todas as três opções a seguir devem ser especificadas com valores válidos para que o comando docker run inicie o contêiner:For the docker run command to start the container, all three of the following options must be specified with valid values:

OpçãoOption DESCRIÇÃODescription
ApiKey A chave de API do recurso dos Serviços Cognitivos usado para rastrear informações de cobrança.The API key of the Cognitive Services resource that's used to track billing information.
O valor dessa opção deve ser definido como uma chave de API para o recurso provisionado especificado em Billing.The value of this option must be set to an API key for the provisioned resource that's specified in Billing.
Billing O ponto de extremidade do recurso dos Serviços Cognitivos usado para rastrear informações de cobrança.The endpoint of the Cognitive Services resource that's used to track billing information.
O valor dessa opção deve ser definido como o URI do ponto de extremidade de um recurso do Azure provisionado.The value of this option must be set to the endpoint URI of a provisioned Azure resource.
Eula Indica que você aceitou a licença do contêiner.Indicates that you accepted the license for the container.
O valor dessa opção deve ser definido como aceitar.The value of this option must be set to accept.

Para obter mais informações sobre essas opções, consulte Configurar contêineres.For more information about these options, see Configure containers.

Suporte para as dependências para latest contêinerSupported dependencies for latest container

O contêiner mais recente, lançado em 2019 / / compilação, que dará suporte:The latest container, released at 2019 //Build, will support:

  • Verificação ortográfica do Bing: solicitações para o ponto de extremidade de previsão de consulta com o &spellCheck=true&bing-spell-check-subscription-key={bingKey} parâmetros de cadeia de caracteres de consulta.Bing spell check: requests to the query prediction endpoint with the &spellCheck=true&bing-spell-check-subscription-key={bingKey} query string parameters. Use o verificação ortográfica do Bing v7 tutorial para saber mais.Use the Bing Spell Check v7 tutorial to learn more. Se esse recurso é usado, o contêiner envia a expressão para o recurso do Bing ortográfica verificar V7.If this feature is used, the container sends the utterance to your Bing Spell Check V7 resource.
  • Novos domínios predefinidos: esses domínios voltada para enterprise incluem entidades, declarações de exemplo e padrões.New prebuilt domains: these enterprise-focused domains include entities, example utterances, and patterns. Estenda esses domínios para seu próprio uso.Extend these domains for your own use.

Sem suporte de dependências para latest contêinerUnsupported dependencies for latest container

Se seu aplicativo LUIS, não tem suporte dependências, você não conseguirá exportar para o contêiner até que você remova recursos sem suporte.If your LUIS app has unsupported dependencies, you won't be able to export for container until you remove the unsupported features. Quando você tenta exportar para o contêiner, o portal de LUIS relatórios recursos sem suporte, que você precisa remover.When you attempt to export for container, the LUIS portal reports the unsupported features you need to remove.

Você pode usar um aplicativo LUIS se ele não inclui nenhuma das seguintes dependências:You can use a LUIS application if it doesn't include any of the following dependencies:

Configurações de aplicativo sem suporteUnsupported app configurations DetalhesDetails
Culturas de contêiner sem suporteUnsupported container cultures Holandês (nl-NL)Dutch (nl-NL)
Japonês (ja-JP)Japanese (ja-JP)
Alemão só é compatível com o 1.0.1 tokenizer ou posterior.German is only supported with the 1.0.1 tokenizer or later.
Entidades sem suporte para todas as culturasUnsupported entities for all cultures Entidade predefinida KeyPhrase para todas as culturasKeyPhrase prebuilt entity for all cultures
Entidades sem suporte para a cultura Inglês (en-US)Unsupported entities for English (en-US) culture Entidades predefinidas GeographyV2GeographyV2 prebuilt entities
Preparação da falaSpeech priming Não há suporte para dependências externas no contêiner.External dependencies are not supported in the container.
Análise de sentimentoSentiment analysis Não há suporte para dependências externas no contêiner.External dependencies are not supported in the container.

Postagens no blogBlog posts

Exemplos do desenvolvedorDeveloper samples

Exemplos de desenvolvedor estão disponíveis em nosso repositório do GitHub.Developer samples are available at our GitHub repository.

Ver webinarView webinar

Participe do webinar para aprender a:Join the webinar to learn about:

  • Implantar os Serviços Cognitivos em qualquer computador que usa o DockerHow to deploy Cognitive Services to any machine using Docker
  • Implantar os Serviços Cognitivos no AKSHow to deploy Cognitive Services to AKS

ResumoSummary

Neste artigo, você aprendeu conceitos e fluxo de trabalho para baixar, instalar e executar os contêineres do Serviço Inteligente de Reconhecimento Vocal (LUIS).In this article, you learned concepts and workflow for downloading, installing, and running Language Understanding (LUIS) containers. Em resumo:In summary:

  • O Serviço Inteligente de Reconhecimento Vocal (LUIS) oferece um contêiner do Linux para Docker que fornece previsões de declarações de consultas a pontos de extremidade.Language Understanding (LUIS) provides one Linux container for Docker providing endpoint query predictions of utterances.
  • Imagens de contêiner são baixadas do Registro de Contêiner da Microsoft (MCR).Container images are downloaded from the Microsoft Container Registry (MCR).
  • Imagens de contêiner são executadas no Docker.Container images run in Docker.
  • Você pode usar a API REST para consultar os pontos de extremidade do contêiner especificando o URI de host do contêiner.You can use REST API to query the container endpoints by specifying the host URI of the container.
  • Você deve especificar informações de faturamento ao instanciar um contêiner.You must specify billing information when instantiating a container.

Importante

Os contêineres dos Serviços Cognitivos não estão licenciados para execução sem estarem conectados ao Azure para medição.Cognitive Services containers are not licensed to run without being connected to Azure for metering. Os clientes precisam ativar os contêineres para comunicar informações de cobrança com o serviço de medição em todos os momentos.Customers need to enable the containers to communicate billing information with the metering service at all times. Os contêineres de Serviços Cognitivos não enviam dados do cliente (por exemplo, a imagem ou o texto que está sendo analisado) para a Microsoft.Cognitive Services containers do not send customer data (for example, the image or text that is being analyzed) to Microsoft.

Próximas etapasNext steps