Installare ed eseguire i contenitori docker LUISInstall and run LUIS docker containers

Il contenitore Language Understanding (LUIS) carica il modello di Language Understanding sottoposto a training o pubblicato.The Language Understanding (LUIS) container loads your trained or published Language Understanding model. Come app Luis, il contenitore Docker fornisce l'accesso alle stime delle query dagli endpoint API del contenitore.As a LUIS app, the docker container provides access to the query predictions from the container's API endpoints. È possibile raccogliere i log di query dal contenitore e caricarli nuovamente nell'app Language Understanding per migliorare l'accuratezza della stima dell'app.You can collect query logs from the container and upload them back to the Language Understanding app to improve the app's prediction accuracy.

Il video seguente illustra l'uso di questo contenitore.The following video demonstrates using this container.

Dimostrazione relativa ai contenitori per Servizi cognitiviContainer demonstration for Cognitive Services

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

PrerequisitiPrerequisites

Per eseguire il contenitore LUIS, tenere presente i prerequisiti seguenti:To run the LUIS container, note the following prerequisites:

RichiestoRequired ScopoPurpose
Motore DockerDocker Engine È necessario il motore Docker installato in un computer host.You need the Docker Engine installed on a host computer. Docker offre pacchetti per la configurazione dell'ambiente Docker in macOS, Windows e Linux.Docker provides packages that configure the Docker environment on macOS, Windows, and Linux. Per una panoramica dei concetti fondamentali relativi a Docker e ai contenitori, vedere Docker overview (Panoramica di Docker).For a primer on Docker and container basics, see the Docker overview.

Docker deve essere configurato per consentire ai contenitori di connettersi ai dati di fatturazione e inviarli ad Azure.Docker must be configured to allow the containers to connect with and send billing data to Azure.

In Windows Docker deve essere configurato anche per supportare i contenitori Linux.On Windows, Docker must also be configured to support Linux containers.

Familiarità con DockerFamiliarity with Docker È opportuno avere una conoscenza di base dei concetti relativi a Docker, tra cui registri, repository, contenitori e immagini dei contenitori, nonché dei comandi docker di 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.
Risorsa Cognitive Services di Azure e file di app in pacchetto LuisAzure Cognitive Services resource and LUIS packaged app file Per usare il contenitore, è necessario disporre di:In order to use the container, you must have:

* Una risorsa di Azure Servizi cognitivi e la chiave di fatturazione associata l'URI dell'endpoint di fatturazione.* A Cognitive Services Azure resource and the associated billing key the billing endpoint URI. Entrambi i valori sono disponibili nelle pagine Panoramica e chiavi per la risorsa e sono necessari per avviare il contenitore.Both values are available on the Overview and Keys pages for the resource and are required to start the container.
* Un'app pubblicata o sottoposta a training inserita in un pacchetto come input montato per il contenitore con il relativo ID app associato.* A trained or published app packaged as a mounted input to the container with its associated App ID. È possibile ottenere il file in pacchetto dal portale LUIS o dalle API di creazione.You can get the packaged file from the LUIS portal or the Authoring APIs. Se si sta ricevendo un'app in pacchetto LUIS dalle API di creazione, sarà necessaria anche la chiave di creazione.If you are getting LUIS packaged app from the authoring APIs, you will also need your Authoring Key.

Questi requisiti vengono usati per passare gli argomenti della riga di comando per le variabili seguenti:These requirements are used to pass command-line arguments to the following variables:

{AUTHORING_KEY} : questa chiave viene usata per ottenere il pacchetto dell'app dal servizio LUIS nel cloud e caricare i log di query nel 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. Il formato è xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.The format is xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.

{APPLICATION_ID} : questo ID viene usato per selezionare l'app.{APPLICATION_ID}: This ID is used to select the App. Il formato è xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.The format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

{API_KEY} : Questa chiave viene usata per avviare il contenitore.{API_KEY}: This key is used to start the container. È possibile trovare la chiave dell'endpoint in due posizioni.You can find the endpoint key in two places. Il primo è la portale di Azure all'interno dell'elenco chiavi della risorsa Servizi cognitivi .The first is the Azure portal within the Cognitive Services resource's keys list. La chiave dell'endpoint è anche disponibile nel portale di LUIS nella pagina relativa a impostazioni dell'endpoint e chiavi.The endpoint key is also available in the LUIS portal on the Keys and Endpoint settings page. Non usare la chiave di avvio.Do not use the starter key.

{ENDPOINT_URI} : Endpoint fornito nella pagina Overview.{ENDPOINT_URI}: The endpoint as provided on the Overview page.

La chiave di creazione e la chiave dell'endpoint hanno scopi diversi.The authoring key and endpoint key have different purposes. Non usarle in modo intercambiabile.Do not use them interchangeably.

Raccolta dei parametri obbligatoriGathering required parameters

Sono disponibili tre parametri primari per tutti i contenitori di servizi cognitivi richiesti.There are three primary parameters for all Cognitive Services' containers that are required. Il contratto di licenza con l'utente finale deve essere presente con un valore pari accepta.The end-user license agreement (EULA) must be present with a value of accept. Sono inoltre necessari un URL dell'endpoint e una chiave API.Additionally, both an Endpoint URL and API Key are needed.

Nota

L'unica eccezione a questi tre parametri obbligatori è quando i contenitori sono considerati contenitori "offline".The only exception to these three required parameters is when containers are considered "Offline" containers. I contenitori offline non segnalano l'utilizzo, non vengono misurati e seguono una metodologia di fatturazione diversa.Offline containers do not report usage, are not metered and follow a different billing methodology.

URI dell'endpoint{ENDPOINT_URI}Endpoint URI {ENDPOINT_URI}

Il valore dell'URI dell' endpoint è disponibile nella pagina Panoramica portale di Azure della risorsa del servizio cognitiva corrispondente.The Endpoint URI value is available on the Azure portal Overview page of the corresponding Cognitive Service resource. Passare alla pagina Panoramica , posizionare il puntatore del mouse sull'endpoint e Copy to clipboard verrà visualizzata un' icona.Navigate to the Overview page, hover over the Endpoint, and a Copy to clipboard icon will appear. Copiare e usare se necessario.Copy and use where needed.

Raccogliere l'URI dell'endpoint per un uso successivo

Chiavi{API_KEY}Keys {API_KEY}

Questa chiave viene usata per avviare il contenitore ed è disponibile nella pagina chiavi del portale di Azure della risorsa del servizio cognitiva corrispondente.This key is used to start the container, and is available on the Azure portal's Keys page of the corresponding Cognitive Service resource. Passare alla pagina chiavi e fare clic sull' Copy to clipboard icona.Navigate to the Keys page, and click on the Copy to clipboard icon.

Ottenere una delle due chiavi per un uso successivo

Importante

Queste chiavi di sottoscrizione vengono usate per accedere all'API di servizi cognitivi.These subscription keys are used to access your Cognitive Service API. Non condividere le chiavi.Do not share your keys. Archiviarli in modo sicuro, ad esempio usando Azure Key Vault.Store them securely, for example, using Azure Key Vault. Si consiglia inoltre di rigenerare regolarmente queste chiavi.We also recommend regenerating these keys regularly. È necessaria una sola chiave per effettuare una chiamata API.Only one key is necessary to make an API call. Quando si rigenera la prima chiave, è possibile usare la seconda chiave per l'accesso continuo al servizio.When regenerating the first key, you can use the second key for continued access to the service.

Creazione di API per il file di pacchettoAuthoring APIs for package file

API di creazione per le app in pacchetto:Authoring APIs for packaged apps:

Computer hostThe host computer

L'host è un computer basato su x64 che esegue il contenitore Docker.The host is a x64-based computer that runs the Docker container. Può essere un computer dell'ambiente locale o un servizio di hosting Docker in Azure, tra cui:It can be a computer on your premises or a Docker hosting service in Azure, such as:

Indicazioni e requisiti per i contenitoriContainer requirements and recommendations

Il contenitore supporta i valori minimi e consigliati seguenti per le impostazioni:This container supports minimum and recommended values for the settings:

ContenitoreContainer MinimaMinimum ConsigliatoRecommended TPSTPS
(Minimo, massimo)(Minimum, Maximum)
LUISLUIS 1 core, 2 GB di memoria1 core, 2-GB memory 1 core, 4 GB di memoria1 core, 4-GB memory 20, 4020, 40
  • Ogni core deve essere di almeno 2,6 gigahertz (GHz) o superiore.Each core must be at least 2.6 gigahertz (GHz) or faster.
  • TPS - transazioni al secondoTPS - transactions per second

Core e memoria corrispondono alle impostazioni --cpus e --memory che vengono usate come 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.

Ottenere l'immagine del contenitore con docker pullGet the container image with docker pull

Usare il comando docker pull per scaricare un'immagine del contenitore dal repository 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

Usare il comando docker pull per scaricare un'immagine del contenitore.Use the docker pull command to download a container image.

Per una descrizione completa dei tag disponibili, ad esempio latest usato nel comando precedente, vedere LUIS nel sito Docker Hub.For a full description of available tags, such as latest used in the preceding command, see LUIS on Docker Hub.

Suggerimento

È possibile usare il comando docker images per visualizzare l'elenco delle immagini dei contenitori scaricate.You can use the docker images command to list your downloaded container images. Ad esempio, il comando seguente visualizza l'ID, il repository e il tag di ogni immagine del contenitore scaricata, in formato tabella: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>

Come usare il contenitoreHow to use the container

Dopo aver aggiunto il contenitore nel computer host, seguire questa procedura per usare il contenitore.Once the container is on the host computer, use the following process to work with the container.

Procedura per l'uso del contenitore Language Understanding (LUIS)

  1. Esportare il pacchetto per il contenitore dal portale di LUIS o tramite le API LUIS.Export package for container from LUIS portal or LUIS APIs.
  2. Spostare il file del pacchetto nella directory di input richiesta nel computer host.Move package file into the required input directory on the host computer. Non rinominare, modificare, sovrascrivere o decomprimere il file del pacchetto LUIS.Do not rename, alter, overwrite, or decompress the LUIS package file.
  3. Eseguire il contenitore, con il punto di montaggio di input e le impostazioni di fatturazione richiesti.Run the container, with the required input mount and billing settings. Sono disponibili altri esempi del comando docker run.More examples of the docker run command are available.
  4. Eseguire query sull'endpoint di stima del contenitore.Querying the container's prediction endpoint.
  5. Dopo aver completato le operazioni con il contenitore, importare i log dell'endpoint dal punto di montaggio di output nel portale di LUIS e arrestare il contenitore.When you are done with the container, import the endpoint logs from the output mount in the LUIS portal and stop the container.
  6. Usare la funzionalità di apprendimento attivo nella pagina Review endpoint utterances (Esamina espressioni endpoint) del portale di LUIS per migliorare l'app.Use LUIS portal's active learning on the Review endpoint utterances page to improve the app.

Non è possibile modificare l'app in esecuzione nel contenitore.The app running in the container can't be altered. Per modificare l'app nel contenitore, è necessario modificarla nel servizio LUIS usando il portale di LUIS oppure usando le API di creazione 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. Eseguire quindi il training e/o la pubblicazione, scaricare un nuovo pacchetto ed eseguire nuovamente il contenitore.Then train and/or publish, then download a new package and run the container again.

L'app LUIS all'interno del contenitore non può essere esportata di nuovo nel servizio LUIS.The LUIS app inside the container can't be exported back to the LUIS service. È possibile caricare solo i log di query.Only the query logs can be uploaded.

Esportare il pacchetto dell'app da LUISExport packaged app from LUIS

Il contenitore LUIS richiede un'app LUIS sottoposta a training o pubblicata per rispondere alle query di stima delle espressioni utente.The LUIS container requires a trained or published LUIS app to answer prediction queries of user utterances. Per ottenere l'app LUIS, usare l'API del pacchetto pubblicato o sottoposto a training.In order to get the LUIS app, use either the trained or published package API.

La posizione predefinita è la sottodirectory input in relazione alla posizione in cui viene eseguito il comando docker run.The default location is the input subdirectory in relation to where you run the docker run command.

Posizionare il file del pacchetto in una directory e fare riferimento alla directory come punto di montaggio di input quando si esegue il contenitore Docker.Place the package file in a directory and reference this directory as the input mount when you run the docker container.

Tipi di pacchettoPackage types

La directory di montaggio di input può contenere contemporaneamente le versioni di produzione, di staging e sottoposta a training dell'app.The input mount directory can contain the Production, Staging, and Trained versions of the app simultaneously. Tutti i pacchetti vengono montati.All the packages are mounted.

Tipo di pacchettoPackage Type API endpoint di queryQuery Endpoint API Disponibilità queryQuery availability Formato nome file pacchettoPackage filename format
Con trainingTrained GET, POSTGET, POST Solo contenitoreContainer only {APPLICATION_ID}_v{APPLICATION_VERSION}.gz
Gestione temporaneaStaging GET, POSTGET, POST Azure e contenitoreAzure and container {APPLICATION_ID}_STAGING.gz
ProduzioneProduction GET, POSTGET, POST Azure e contenitoreAzure and container {APPLICATION_ID}_PRODUCTION.gz

Importante

Non rinominare, modificare, sovrascrivere o decomprimere i file del pacchetto LUIS.Do not rename, alter, overwrite, or decompress the LUIS package files.

Prerequisiti per la creazione di pacchettiPackaging prerequisites

Prima di creare un pacchetto di un'applicazione LUIS, è necessario quanto segue:Before packaging a LUIS application, you must have the following:

Requisiti di creazione di pacchettiPackaging Requirements DettagliDetails
Istanza di risorsa Servizi cognitivi di AzureAzure Cognitive Services resource instance Le aree supportate includonoSupported regions include

Stati Uniti occidentali (westus)West US (westus)
Europa occidentale (westeurope)West Europe (westeurope)
Australia orientale (australiaeast)Australia East (australiaeast)
App LUIS sottoposta a training o pubblicataTrained or published LUIS app Senza dipendenze non supportate.With no unsupported dependencies.
Accesso al file system del computer hostAccess to the host computer's file system Il computer host deve consentire un punto di montaggio di input.The host computer must allow an input mount.

Esportare il pacchetto dell'app dal portale di LUISExport app package from LUIS portal

Il portale di LUIS consente di esportare il pacchetto dell'app sottoposta a training o pubblicata.The LUIS portal provides the ability to export the trained or published app's package.

Esportare il pacchetto dell'app pubblicata dal portale di LUISExport published app's package from LUIS portal

Il pacchetto dell'app pubblicata è disponibile nella pagina di elenco My Apps (App personali).The published app's package is available from the My Apps list page.

  1. Accedere al portale di LUIS.Sign on to the LUIS portal.
  2. Selezionare la casella di controllo a sinistra del nome dell'app nell'elenco.Select the checkbox to the left of the app name in the list.
  3. Scegliere la voce Export (Esporta) sulla barra degli strumenti contestuale sopra l'elenco.Select the Export item from the contextual toolbar above the list.
  4. Selezionare Export for container (GZIP) (Esporta per contenitore - GZIP).Select Export for container (GZIP).
  5. Selezionare Production slot (Slot di produzione) o Staging slot (Slot di staging) come ambiente.Select the environment of Production slot or Staging slot.
  6. Il pacchetto viene scaricato dal browser.The package is downloaded from the browser.

Esportare il pacchetto pubblicato per il contenitore dal menu di esportazione della pagina dell'app

Esportare il pacchetto dell'app sottoposta a training dal portale di LUISExport trained app's package from LUIS portal

Il pacchetto dell'app sottoposta a training è disponibile nella pagina di elenco Versions (Versioni).The trained app's package is available from the Versions list page.

  1. Accedere al portale di LUIS.Sign on to the LUIS portal.
  2. Selezionare l'app nell'elenco.Select the app in the list.
  3. Selezionare Manage (Gestisci) sulla barra di spostamento dell'app.Select Manage in the app's navigation bar.
  4. Selezionare Versions (Versioni) sulla barra di spostamento a sinistra.Select Versions in the left navigation bar.
  5. Selezionare la casella di controllo a sinistra del nome della versione nell'elenco.Select the checkbox to the left of the version name in the list.
  6. Scegliere la voce Export (Esporta) sulla barra degli strumenti contestuale sopra l'elenco.Select the Export item from the contextual toolbar above the list.
  7. Selezionare Export for container (GZIP) (Esporta per contenitore - GZIP).Select Export for container (GZIP).
  8. Il pacchetto viene scaricato dal browser.The package is downloaded from the browser.

Esportare il pacchetto sottoposto a training per il contenitore dal menu di esportazione della pagina delle versioni

Esportare il pacchetto dell'app pubblicata dall'APIExport published app's package from API

Usare il metodo dell'API REST seguente per creare il pacchetto di un'app LUIS già pubblicata.Use the following REST API method, to package a LUIS app that you've already published. Sostituire i segnaposto con i valori appropriati nella chiamata API, facendo riferimento alla tabella riportata sotto la specifica 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}
SegnapostoPlaceholder ValueValue
{APPLICATION_ID}{APPLICATION_ID} ID applicazione dell'app LUIS pubblicata.The application ID of the published LUIS app.
{APPLICATION_ENVIRONMENT}{APPLICATION_ENVIRONMENT} Ambiente dell'app LUIS pubblicata.The environment of the published LUIS app. Usare uno dei valori seguenti:Use one of the following values:
PRODUCTION
STAGING
{AUTHORING_KEY}{AUTHORING_KEY} Chiave di creazione dell'account LUIS per l'app LUIS pubblicata.The authoring key of the LUIS account for the published LUIS app.
È possibile ottenere la chiave di creazione nella pagina User Settings (Impostazioni utente) nel portale di LUIS.You can get your authoring key from the User Settings page on the LUIS portal.
{AZURE_REGION}{AZURE_REGION} Area di Azure appropriata:The appropriate Azure region:

westus - Stati Uniti occidentaliwestus - West US
westeurope - Europa occidentalewesteurope - West Europe
australiaeast - Australia orientaleaustraliaeast - Australia East

Per scaricare il pacchetto pubblicato, vedere la documentazione dell'API qui.To download the published package, refer to the API documentation here. Se il download è stato completato correttamente, la risposta è un file di pacchetto LUIS.If successfully downloaded, the response is a LUIS package file. Salvare il file nella posizione di archiviazione specificata per il punto di montaggio di input del contenitore.Save the file in the storage location specified for the input mount of the container.

Esportare il pacchetto dell'app sottoposta a training dall'APIExport trained app's package from API

Usare il metodo dell'API REST seguente per creare il pacchetto di un'applicazione LUIS già sottoposta a training.Use the following REST API method, to package a LUIS application that you've already trained. Sostituire i segnaposto con i valori appropriati nella chiamata API, facendo riferimento alla tabella riportata sotto la specifica 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}
SegnapostoPlaceholder ValueValue
{APPLICATION_ID}{APPLICATION_ID} ID applicazione dell'app LUIS sottoposta a training.The application ID of the trained LUIS app.
{APPLICATION_VERSION}{APPLICATION_VERSION} Versione dell'applicazione dell'app LUIS sottoposta a training.The application version of the trained LUIS app.
{AUTHORING_KEY}{AUTHORING_KEY} Chiave di creazione dell'account LUIS per l'app LUIS pubblicata.The authoring key of the LUIS account for the published LUIS app.
È possibile ottenere la chiave di creazione nella pagina User Settings (Impostazioni utente) nel portale di LUIS.You can get your authoring key from the User Settings page on the LUIS portal.
{AZURE_REGION}{AZURE_REGION} Area di Azure appropriata:The appropriate Azure region:

westus - Stati Uniti occidentaliwestus - West US
westeurope - Europa occidentalewesteurope - West Europe
australiaeast - Australia orientaleaustraliaeast - Australia East

Per scaricare il pacchetto sottoposto a training, fare riferimento alla documentazione dell'API qui.To download the trained package, refer to the API documentation here. Se il download è stato completato correttamente, la risposta è un file di pacchetto LUIS.If successfully downloaded, the response is a LUIS package file. Salvare il file nella posizione di archiviazione specificata per il punto di montaggio di input del contenitore.Save the file in the storage location specified for the input mount of the container.

Eseguire il contenitore con docker runRun the container with docker run

Usare il comando docker run per eseguire il contenitore.Use the docker run command to run the container. Per informazioni dettagliate su come ottenere i {ENDPOINT_URI} valori e {API_KEY} , vedere raccolta dei parametri obbligatori .Refer to gathering required parameters for details on how to get the {ENDPOINT_URI} and {API_KEY} values.

Sono disponibili esempi di comando docker run.Examples of the docker run command are available.

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}
  • Questo esempio usa la directory C: dall'unità per evitare eventuali conflitti di autorizzazione in Windows.This example uses the directory off the C: drive to avoid any permission conflicts on Windows. Se è necessario usare una directory specifica come directory di input, potrebbe essere necessario concedere l'autorizzazione per il servizio Docker.If you need to use a specific directory as the input directory, you may need to grant the docker service permission.
  • Non modificare l'ordine degli argomenti a meno che non si abbia familiarità con i contenitori docker.Do not change the order of the arguments unless you are familiar with docker containers.
  • Se si utilizza un sistema operativo diverso, utilizzare la console/terminale, la sintassi di cartella per i montaggi e il carattere di continuazione di riga corretti per il 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. In questi esempi si presuppone una console di Windows con un ^carattere di continuazione di riga.These examples assume a Windows console with a line continuation character ^. Poiché il contenitore è un sistema operativo Linux, il montaggio di destinazione usa una sintassi di cartella di tipo Linux.Because the container is a Linux operating system, the target mount uses a Linux-style folder syntax.

Questo comando:This command:

  • Esegue un contenitore dall'immagine del contenitore LUISRuns a container from the LUIS container image
  • Carica l'app LUIS dal montaggio di input in C:\input, che si trova nell'host contenitoreLoads LUIS app from input mount at C:\input, located on container host
  • Alloca due core CPU e 4 gigabyte (GB) di memoriaAllocates two CPU cores and 4 gigabytes (GB) of memory
  • Espone la porta TCP 5000 e alloca un pseudo terminale TTY per il contenitoreExposes TCP port 5000 and allocates a pseudo-TTY for the container
  • Salva i log del contenitore e LUIS nel montaggio di output in C:\output, che si trova nell'host contenitoreSaves container and LUIS logs to output mount at C:\output, located on container host
  • Rimuove automaticamente il contenitore dopo la chiusura.Automatically removes the container after it exits. L'immagine del contenitore rimane disponibile nel computer host.The container image is still available on the host computer.

Sono disponibili altri esempi del comando docker run.More examples of the docker run command are available.

Importante

È necessario specificare le opzioni Eula, Billing e ApiKey per eseguire il contenitore. In caso contrario, il contenitore non si avvia.The Eula, Billing, and ApiKey options must be specified to run the container; otherwise, the container won't start. Per altre informazioni, vedereFatturazione.For more information, see Billing. Il valore APIKEY è la chiave della pagina delle risorse di Azure nel portale Luis ed è disponibile anche nella pagina chiavi Cognitive Services di risorsa di 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.

Eseguire più contenitori nello stesso hostRun multiple containers on the same host

Se si intende eseguire più contenitori con porte esposte, assicurarsi di eseguire ogni contenitore con una porta esposta diversa.If you intend to run multiple containers with exposed ports, make sure to run each container with a different exposed port. Eseguire ad esempio il primo contenitore sulla porta 5000 e il secondo sulla porta 5001.For example, run the first container on port 5000 and the second container on port 5001.

Questo contenitore e un contenitore di Servizi cognitivi diverso sono in esecuzione contemporaneamente sull'HOST.You can have this container and a different Azure Cognitive Services container running on the HOST together. Sono inoltre in esecuzione più contenitori dello stesso contenitore di Servizi cognitivi.You also can have multiple containers of the same Cognitive Services container running.

API endpoint supportate dal contenitoreEndpoint APIs supported by the container

Con il contenitore sono disponibili entrambe le versioni V2 e v3 (anteprima) dell'API.Both V2 and V3 (Preview) versions of the API are available with the container.

Eseguire query sull'endpoint di stima del contenitoreQuery the container's prediction endpoint

Il contenitore fornisce API dell'endpoint di stima di query basate su REST.The container provides REST-based query prediction endpoint APIs. Gli endpoint per le app pubblicate (staging o produzione) hanno una route diversa rispetto agli endpoint per le app sottoposte a training.Endpoints for published (staging or production) apps have a different route than endpoints for trained apps.

Usare l'host, http://localhost:5000, per le API del contenitore.Use the host, http://localhost:5000, for container APIs.

Tipo di pacchettoPackage type MetodoMethod RouteRoute Parametri di queryQuery parameters
PubblicatoPublished 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]
Con trainingTrained 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]

I parametri di query specificano la modalità e i contenuti restituiti nella risposta della query:The query parameters configure how and what is returned in the query response:

Parametro di queryQuery parameter TypeType ScopoPurpose
q stringstring Espressione dell'utente.The user's utterance.
timezoneOffset numbernumber Il parametro timezoneOffset consente di modificare il fuso orario usato dall'entità predefinita datetimeV2.The timezoneOffset allows you to change the timezone used by the prebuilt entity datetimeV2.
verbose booleanboolean Se l'impostazione è true, restituisce tutte le finalità e i relativi punteggi.Returns all intents and their scores when set to true. Il valore predefinito è false, che restituisce solo la finalità principale.Default is false, which returns only the top intent.
staging booleanboolean Se l'impostazione è true, restituisce i risultati della query dall'ambiente di gestione temporanea.Returns query from staging environment results if set to true.
log booleanboolean Registra le query, che successivamente possono essere usate per l'apprendimento attivo.Logs queries, which can be used later for active learning. Il valore predefinito è true.Default is true.

Eseguire query sull'app pubblicataQuery published app

Ecco un esempio di comando CURL per eseguire query sul contenitore per un'app pubblicata: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"

Per eseguire query sull'ambiente di gestione temporanea, modificare il valore del parametro della stringa di query staging impostandolo su true:To make queries to the Staging environment, change the staging query string parameter value to true:

staging=true

Eseguire query sull'app sottoposta a trainingQuery trained app

Ecco un esempio di comando CURL per eseguire query sul contenitore per un'app sottoposta a training: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"

Il nome della versione può essere composto da un massimo di 10 caratteri e deve contenere solo caratteri consentiti in un URL.The version name has a maximum of 10 characters and contains only characters allowed in a URL.

Importare i log dell'endpoint per l'apprendimento attivoImport the endpoint logs for active learning

Se viene specificato un montaggio di output per il contenitore Luis, i file di log delle query dell'app vengono salvati nella {INSTANCE_ID} directory di output, dove è l'ID del contenitore.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. Il log di query dell'app contiene la query, la risposta e i timestamp per ogni query di stima inviata al contenitore LUIS.The app query log contains the query, response, and timestamps for each prediction query submitted to the LUIS container.

Il percorso seguente indica la struttura di directory nidificata per i file di log del contenitore.The following location shows the nested directory structure for the container's log files.

/output/luis/{INSTANCE_ID}/

Dal portale di LUIS selezionare l'app, quindi selezionare Import endpoint logs (Importa log endpoint) per caricare i log.From the LUIS portal, select your app, then select Import endpoint logs to upload these logs.

Importare i file di log del contenitore per l'apprendimento attivo

Dopo il caricamento del log, esaminare le espressioni dell'endpoint nel portale di LUIS.After the log is uploaded, review the endpoint utterances in the LUIS portal.

Verificare che il contenitore sia in esecuzioneValidate that a container is running

Per verificare se il contenitore è in esecuzione, sono disponibili diverse opzioni.There are several ways to validate that the container is running. Individuare l'indirizzo IP esterno e la porta esposta del contenitore in questione e aprire il Web browser preferito.Locate the External IP address and exposed port of the container in question, and open your favorite web browser. Usare i vari URL di richiesta indicati di seguito per verificare che il contenitore sia in esecuzione.Use the various request URLs below to validate the container is running. Gli URL di richiesta di esempio elencati http://localhost:5000di seguito sono, ma il contenitore specifico può variare.The example request URLs listed below are http://localhost:5000, but your specific container may vary. Tenere presente che si sta per fare affidamento sull'indirizzo IP esterno del contenitore e sulla porta esposta.Keep in mind that you're to rely on your container's External IP address and exposed port.

URL richiestaRequest URL ScopoPurpose
http://localhost:5000/ Il contenitore fornisce una home page.The container provides a home page.
http://localhost:5000/status Richiesta con HTTP GET, per verificare che il contenitore sia in esecuzione senza causare una query dell'endpoint.Requested with an HTTP GET, to validate that the container is running without causing an endpoint query. Questa richiesta può essere usata per i probe di attività e di idoneità di Kubernetes.This request can be used for Kubernetes liveness and readiness probes.
http://localhost:5000/swagger Il contenitore fornisce un set completo di documentazione per gli endpoint e una funzionalità di prova .The container provides a full set of documentation for the endpoints and a Try it out feature. Con questa funzionalità, è possibile immettere le impostazioni in un modulo HTML basato sul Web ed eseguire la query senza scrivere codice.With this feature, you can enter your settings into a web-based HTML form and make the query without having to write any code. Dopo che la query restituisce il risultato, viene fornito un comando CURL di esempio per illustrare il formato richiesto per il corpo e le intestazioni HTTP.After the query returns, an example CURL command is provided to demonstrate the HTTP headers and body format that's required.

Home page del contenitore

Arrestare il contenitoreStop the container

Per arrestare il contenitore, nell'ambiente della riga di comando in cui è in esecuzione il contenitore premere CTRL+C.To shut down the container, in the command-line environment where the container is running, press Ctrl+C.

Risoluzione dei problemiTroubleshooting

Se si esegue il contenitore con un punto di montaggio di output e la registrazione attivata, il contenitore genera file di log utili per risolvere i problemi che si verificano durante l'avvio o l'esecuzione del contenitore.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.

Suggerimento

Per ulteriori informazioni e indicazioni sulla risoluzione dei problemi, vedere la pagina relativa alle domande frequenti sui contenitori di servizi cognitivi.For more troubleshooting information and guidance, see Cognitive Services containers frequently asked questions (FAQ).

FatturazioneBilling

Il contenitore LUIS Invia le informazioni di fatturazione ad Azure, usando una risorsa Servizi cognitivi nell'account Azure.The LUIS container sends billing information to Azure, using a Cognitive Services resource on your Azure account.

Le query sul contenitore vengono fatturate secondo il piano tariffario della risorsa di Azure usata per <ApiKey>.Queries to the container are billed at the pricing tier of the Azure resource that's used for the <ApiKey>.

I contenitori di Servizi cognitivi di Azure non vengono concessi in licenza per l'esecuzione senza connessione all'endpoint di fatturazione per la misurazione.Azure Cognitive Services containers aren't licensed to run without being connected to the billing endpoint for metering. È necessario consentire ai contenitori di comunicare sempre le informazioni di fatturazione all'endpoint di fatturazione.You must enable the containers to communicate billing information with the billing endpoint at all times. I contenitori di Servizi cognitivi non inviano a Microsoft i dati dei clienti, ad esempio l'immagine o il testo analizzato.Cognitive Services containers don't send customer data, such as the image or text that's being analyzed, to Microsoft.

Connect to AzureConnect to Azure

Per eseguire il contenitore, sono necessari i valori dell'argomento di fatturazione.The container needs the billing argument values to run. Questi valori consentono al contenitore di connettersi all'endpoint di fatturazione.These values allow the container to connect to the billing endpoint. Il contenitore segnala l'utilizzo ogni 10-15 minuti.The container reports usage about every 10 to 15 minutes. Se il contenitore non si connette ad Azure entro la finestra temporale consentita, continuerà a essere eseguito ma non fornirà query finché l'endpoint di fatturazione non verrà ripristinato.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. Il tentativo di connessione viene effettuato 10 volte nello stesso intervallo di tempo di 10-15 minuti.The connection is attempted 10 times at the same time interval of 10 to 15 minutes. Se non è possibile stabilire la connessione con l'endpoint di fatturazione entro i 10 tentativi, l'esecuzione del contenitore verrà arrestata.If it can't connect to the billing endpoint within the 10 tries, the container stops running.

Argomenti di fatturazioneBilling arguments

Per avviare il contenitore con il comando docker run, è necessario che vengano specificate tutte e tre le opzioni seguenti con valori validi:For the docker run command to start the container, all three of the following options must be specified with valid values:

OpzioneOption DescrizioneDescription
ApiKey Chiave API della risorsa di Servizi cognitivi usata per tenere traccia delle informazioni di fatturazione.The API key of the Cognitive Services resource that's used to track billing information.
Il valore di questa opzione deve essere impostato su una chiave API per la risorsa di cui è stato effettuato il provisioning specificata in Billing.The value of this option must be set to an API key for the provisioned resource that's specified in Billing.
Billing Endpoint della risorsa di Servizi cognitivi usata per tenere traccia delle informazioni di fatturazione.The endpoint of the Cognitive Services resource that's used to track billing information.
Il valore di questa opzione deve essere impostato sull'URI dell'endpoint di una risorsa di Azure di cui è stato effettuato il provisioning.The value of this option must be set to the endpoint URI of a provisioned Azure resource.
Eula Indica che è la licenza per il contenitore è stata accettata.Indicates that you accepted the license for the container.
Il valore di questa opzione deve essere impostato su accept.The value of this option must be set to accept.

Per altre informazioni su queste opzioni, vedere Configurare i contenitori.For more information about these options, see Configure containers.

Dipendenze supportate latest per il contenitoreSupported dependencies for latest container

Il contenitore più recente, rilasciato alle 2019 Build, supporterà:The latest container, released at 2019 //Build, will support:

  • Nuovi domini predefiniti: questi domini aziendali includono entità, espressioni di esempio e modelli.New prebuilt domains: these enterprise-focused domains include entities, example utterances, and patterns. Estendere questi domini per uso personale.Extend these domains for your own use.

Dipendenze non supportate per latest il contenitoreUnsupported dependencies for latest container

Per esportare per il contenitore, è necessario rimuovere le dipendenze non supportate dall'app Luis.To export for container, you must remove unsupported dependencies from your LUIS app. Quando si tenta di esportare per il contenitore, il portale LUIS segnala le funzionalità non supportate che è necessario rimuovere.When you attempt to export for container, the LUIS portal reports these unsupported features that you need to remove.

È possibile usare un'applicazione LUIS se non include le dipendenze seguenti:You can use a LUIS application if it doesn't include any of the following dependencies:

Configurazioni dell'app non supportateUnsupported app configurations DettagliDetails
Impostazioni cultura del contenitore non supportateUnsupported container cultures Olandese (nl-NL)Dutch (nl-NL)
Giapponese (ja-JP)Japanese (ja-JP)
Il tedesco è supportato solo con la Tokenizer 1.0.2.German is only supported with the 1.0.2 tokenizer.
Entità non supportate per tutte le impostazioni culturaUnsupported entities for all cultures Entità KeyPhrase predefinita per tutte le impostazioni culturaKeyPhrase prebuilt entity for all cultures
Entità non supportate per le impostazioni cultura Inglese (en-US)Unsupported entities for English (en-US) culture Entità GeographyV2 predefiniteGeographyV2 prebuilt entities
Priming del riconoscimento vocaleSpeech priming Le dipendenze esterne non sono supportate nel contenitore.External dependencies are not supported in the container.
Analisi del sentimentSentiment analysis Le dipendenze esterne non sono supportate nel contenitore.External dependencies are not supported in the container.
Controllo ortografico BingBing spell check Le dipendenze esterne non sono supportate nel contenitore.External dependencies are not supported in the container.

Post di BLOGBlog posts

Esempi per gli sviluppatoriDeveloper samples

Gli esempi per gli sviluppatori sono disponibili nel repository GitHub.Developer samples are available at our GitHub repository.

Visualizza il webinarView webinar

Partecipare al webinar per saperne di più sugli argomenti seguenti:Join the webinar to learn about:

  • Come distribuire Servizi cognitivi in qualsiasi computer con DockerHow to deploy Cognitive Services to any machine using Docker
  • Come distribuire Servizi cognitivi nel servizio Azure ContainerHow to deploy Cognitive Services to AKS

RiepilogoSummary

In questo articolo sono stati descritti i concetti e il flusso di lavoro per scaricare, installare ed eseguire contenitori Language Understanding (LUIS).In this article, you learned concepts and workflow for downloading, installing, and running Language Understanding (LUIS) containers. In sintesi:In summary:

  • LUIS (Language Understanding) offre un contenitore Linux per Docker per le stime di query degli endpoint per le espressioni.Language Understanding (LUIS) provides one Linux container for Docker providing endpoint query predictions of utterances.
  • Le immagini dei contenitori vengono scaricate da Registro Container Microsoft.Container images are downloaded from the Microsoft Container Registry (MCR).
  • Le immagini dei contenitori vengono eseguite in Docker.Container images run in Docker.
  • È possibile usare l'API REST per eseguire query sugli endpoint dei contenitori specificando l'URI dell'host del contenitore.You can use REST API to query the container endpoints by specifying the host URI of the container.
  • Quando si crea un'istanza di un contenitore, è necessario specificare le informazioni di fatturazione.You must specify billing information when instantiating a container.

Importante

I contenitori di Servizi cognitivi non sono concessi in licenza per l'esecuzione senza essere connessi ad Azure per la misurazione.Cognitive Services containers are not licensed to run without being connected to Azure for metering. I clienti devono consentire ai contenitori di comunicare sempre le informazioni di fatturazione al servizio di misurazione.Customers need to enable the containers to communicate billing information with the metering service at all times. I contenitori di Servizi cognitivi non inviano a Microsoft i dati dei clienti, ad esempio l'immagine o il testo analizzato.Cognitive Services containers do not send customer data (for example, the image or text that is being analyzed) to Microsoft.

Passaggi successiviNext steps