Configurare i contenitori Docker di Language Understanding

Importante

LUIS verrà ritirato il 1° ottobre 2025 e a partire dal 1° aprile 2023 non sarà possibile creare nuove risorse LUIS. È consigliabile eseguire la migrazione delle applicazioni LUIS alla comprensione del linguaggio conversazionale per trarre vantaggio dal supporto continuo del prodotto e dalle funzionalità multilingue.

L'ambiente di runtime del contenitore Language Understanding (LUIS) viene configurato tramite gli argomenti del comando docker run. LUIS ha diverse impostazioni necessarie e alcune impostazioni facoltative. Sono disponibili numerosi esempi del comando. Le impostazioni specifiche del contenitore sono le impostazioni di montaggio di input e le impostazioni di fatturazione.

Impostazioni di configurazione

Questo contenitore ha le impostazioni di configurazione seguenti:

Richiesto Impostazione Scopo
ApiKey Si usa per rilevare le informazioni di fatturazione.
No ApplicationInsights Consente di aggiungere al contenitore il supporto per i dati di telemetria di Azure Application Insights.
Fatturazione Specifica l'URI dell'endpoint della risorsa del servizio in Azure.
Eula Indica che è stata accettata la licenza per il contenitore.
No Fluentd Scrivere il log e, facoltativamente, i dati delle metriche in un server Fluentd.
No Proxy HTTP Configurare un proxy HTTP per le richieste in uscita.
No Registrazione Fornisce il supporto di registrazione ASP.NET Core per il contenitore.
Mounts Leggere e scrivere dati dal computer host al contenitore e dal contenitore al computer host.

Importante

Le impostazioni ApiKey, Billing e Eula vengono usate insieme ed è necessario fornire valori validi per tutte e tre, altrimenti il contenitore non verrà avviato. Per altre informazioni sull'uso di queste impostazioni di configurazione per creare un'istanza di un contenitore, vedere Billing (Fatturazione).

Impostazione ApiKey

L'impostazione ApiKey specifica la chiave di risorsa di Azure utilizzata per tenere traccia delle informazioni di fatturazione per il contenitore. È necessario specificare un valore per ApiKey e il valore deve essere una chiave valida per la risorsa dei servizi di intelligenza artificiale di Azure specificata per l'impostazione Billing di configurazione.

Questa impostazione è disponibile nelle posizioni seguenti:

  • portale di Azure: Gestione risorse dei servizi di intelligenza artificiale di Azure, in Chiavi
  • Portale LUIS: pagina Delle chiavi e delle impostazioni dell'endpoint.

Non usare il tasto starter o la chiave di creazione.

Impostazione ApplicationInsights

L'impostazione ApplicationInsights consente di aggiungere al contenitore il supporto per i dati di telemetria di Azure Application Insights. Application Insights offre funzionalità di monitoraggio avanzate del contenitore. È possibile monitorare con facilità la disponibilità, le prestazioni e l'utilizzo del contenitore. È anche possibile identificare e diagnosticare rapidamente gli errori nel contenitore.

La tabella seguente illustra le impostazioni di configurazione supportate nella sezione ApplicationInsights.

Obbligatorio Name Tipo di dati Descrizione
No InstrumentationKey Stringa Chiave di strumentazione dell'istanza di Application Insights a cui vengono inviati i dati di telemetria per il contenitore. Per altre informazioni, vedere Application Insights per ASP.NET Core.

Esempio:
InstrumentationKey=123456789

Impostazione di fatturazione

L'impostazione Billing specifica l'URI dell'endpoint della risorsa dei servizi di intelligenza artificiale di Azure in Azure usata per misurare le informazioni di fatturazione per il contenitore. È necessario specificare un valore per questa impostazione di configurazione e il valore deve essere un URI dell'endpoint valido per una risorsa dei servizi di intelligenza artificiale di Azure in Azure. Il contenitore segnala l'utilizzo ogni 10-15 minuti.

Questa impostazione è disponibile nelle posizioni seguenti:

  • portale di Azure: Panoramica dei servizi di intelligenza artificiale di Azure, con etichettaEndpoint
  • Portale LUIS: pagina Delle chiavi e delle impostazioni dell'endpoint, come parte dell'URI dell'endpoint.
Obbligatorio Name Tipo di dati Descrizione
Billing stringa URI dell'endpoint di fatturazione. Per altre informazioni su come ottenere l'URI di fatturazione, vedere Raccogliere i parametri obbligatori. Per altre informazioni e un elenco completo degli endpoint a livello di area, vedere Nomi di sottodomini personalizzati per i servizi di intelligenza artificiale di Azure.

Impostazione Eula

L'impostazione Eula indica che è stata accettata la licenza per il contenitore. È necessario specificare un valore per questa impostazione di configurazione e tale valore deve essere impostato su accept.

Obbligatorio Name Tipo di dati Descrizione
Eula Stringa Accettazione della licenza

Esempio:
Eula=accept

I contenitori dei servizi di intelligenza artificiale di Azure sono concessi in licenza con il contratto che regola l'uso di Azure. Se non si dispone di tale contratto, si acconsente che l'uso di Azure sia disciplinato dal Contratto di Sottoscrizione Microsoft Online, in cui sono incluse le condizioni per l'utilizzo dei Servizi Online. Per le anteprime si accettano inoltre le Condizioni Supplementari per l'Utilizzo delle Anteprime di Microsoft Azure. Con l'uso del contenitore si acconsente a rispettare tali condizioni.

Impostazioni Fluentd

Fluentd è un agente di raccolta dati open source per la registrazione unificata. Le impostazioni Fluentd gestiscono la connessione del contenitore a un server Fluentd. Il contenitore include un provider di registrazione di Fluentd che consente al contenitore di scrivere log e, facoltativamente, dati delle metriche in un server di Fluentd.

La tabella seguente illustra le impostazioni di configurazione supportate nella sezione Fluentd.

Name Tipo di dati Descrizione
Host Stringa Indirizzo IP o nome host DNS del server Fluentd.
Port Intero Porta del server Fluentd.
Il valore predefinito è 24224.
HeartbeatMs Intero Intervallo di heartbeat, espresso in millisecondi. Se prima della scadenza di questo intervallo è non stato inviato alcun traffico dell'evento, viene inviato un heartbeat al server Fluentd. Il valore predefinito è 60000 millisecondi (1 minuto).
SendBufferSize Intero Spazio di buffer di rete, espresso in byte, allocato per le operazioni di invio. Il valore predefinito è 32768 byte (32 kilobyte).
TlsConnectionEstablishmentTimeoutMs Intero Timeout, espresso in millisecondi, per stabilire una connessione SSL/TLS con il server Fluentd. Il valore predefinito è 10000 millisecondi (10 secondi).
Se UseTLS è impostato su false, questo valore viene ignorato.
UseTLS Boolean Indica se il contenitore deve usare SSL/TLS per comunicare con il server Fluentd. Il valore predefinito è false.

Impostazioni delle credenziali del proxy HTTP

Se è necessario configurare un proxy HTTP per eseguire le richieste in uscita, usare questi due argomenti:

Name Tipo di dati Descrizione
HTTP_PROXY stringa Il proxy da usare, ad esempio, http://proxy:8888
<proxy-url>
HTTP_PROXY_CREDS stringa Tutte le credenziali necessarie per l'autenticazione nel proxy, username:passwordad esempio . Questo valore deve essere in lettere minuscole.
<proxy-user> stringa L'utente per il proxy.
<proxy-password> stringa La password associata a <proxy-user> per il proxy.
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
HTTP_PROXY=<proxy-url> \
HTTP_PROXY_CREDS=<proxy-user>:<proxy-password> \

Impostazioni di registrazione

Le impostazioni Logging gestiscono il supporto di registrazione di ASP.NET Core per il contenitore. È possibile usare le stesse impostazioni di configurazione e gli stessi valori per il contenitore che si usano per un'applicazione ASP.NET Core.

I provider di registrazione seguenti sono supportati dal contenitore:

Provider Scopo
Console Provider di registrazione Console di ASP.NET Core. Tutti i valori predefiniti e le impostazioni di configurazione di ASP.NET Core per questo provider di registrazione sono supportati.
Debug Provider di registrazione Debug di ASP.NET Core. Tutti i valori predefiniti e le impostazioni di configurazione di ASP.NET Core per questo provider di registrazione sono supportati.
Disco Provider di registrazione JSON. Questo provider di registrazione scrive i dati di log nel montaggio di output.

Questo comando del contenitore archivia informazioni di registrazione nel formato JSON al montaggio di output:

docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Disk:Format=json \
Mounts:Output=/output

Questo comando del contenitore visualizza informazioni di debug, con il prefisso dbug, durante l'esecuzione del contenitore:

docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Console:LogLevel:Default=Debug

Registrazione su disco

Il provider di registrazione Disk supporta le impostazioni di configurazione seguenti:

Name Tipo di dati Descrizione
Format Stringa Formato di output dei file di log.
Nota: per abilitare il provider di registrazione, questo valore deve essere impostato su json. Se questo valore viene specificato senza specificare anche un montaggio di output durante la creazione di un'istanza di un contenitore, si verifica un errore.
MaxFileSize Intero Dimensione massima, espressa in megabyte (MB), di un file di log. Quando la dimensione del file di log corrente corrisponde a questo valore o lo supera, il provider di registrazione avvia un nuovo file di log. Se viene specificato -1, la dimensione del file di log è limitata solo dalla dimensione massima del file del montaggio di output eventualmente presente. Il valore predefinito è 1.

Per altre informazioni sulla configurazione del supporto di registrazione di ASP.NET Core, vedere Registrazione in ASP.NET Core.

Impostazioni di montaggio

Usare montaggi di associazione per leggere e scrivere dati da e verso il contenitore. È possibile specificare un montaggio di input o di output specificando l'opzione --mount nel comando docker run.

Il contenitore LUIS non usa montaggi di input o output per archiviare i dati di training o di servizio.

La sintassi esatta della posizione di montaggio host varia a seconda del sistema operativo host. Inoltre, il percorso di montaggio del computer host potrebbe non essere accessibile a causa di un conflitto tra le autorizzazioni utilizzate dall'account del servizio docker e le autorizzazioni del percorso di montaggio dell'host.

La tabella seguente descrive le impostazioni supportate.

Obbligatorio Name Tipo di dati Descrizione
Input Stringa Destinazione del montaggio di input. Il valore predefinito è /input. Questo è il percorso del file del pacchetto LUIS.

Esempio:
--mount type=bind,src=c:\input,target=/input
No Output Stringa Destinazione del montaggio di output. Il valore predefinito è /output. Questo è il percorso dei log. Include i log di query LUIS e i log dei contenitori.

Esempio:
--mount type=bind,src=c:\output,target=/output

Comandi docker run di esempio

Gli esempi seguenti usano le impostazioni di configurazione per illustrare come scrivere e usare i comandi docker run. Quando è in esecuzione, il contenitore continua l'esecuzione finché non lo si arresta.

  • Questi esempi usano la directory all'esterno dell'unità C: per evitare conflitti di autorizzazione in Windows. Se è necessario usare una directory specifica come directory di input, potrebbe essere necessario concedere l'autorizzazione per il servizio Docker.
  • Non modificare l'ordine degli argomenti se non si ha dimestichezza con i contenitori Docker.
  • Se si usa un sistema operativo diverso, usare la console/terminale corretta, la sintassi della cartella per i montaggi e il carattere di continuazione della riga per il sistema. Questi esempi presuppongono una console di Windows con un carattere ^di continuazione di riga. Poiché il contenitore è un sistema operativo Linux, il montaggio di destinazione usa una sintassi di cartella di tipo Linux.

Sostituire {nome_argomento} con i propri valori:

Segnaposto valore Formato o esempio
{API_KEY} Chiave endpoint della LUIS risorsa nella pagina Chiavi di Azure LUIS . xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{ENDPOINT_URI} Il valore dell'endpoint di fatturazione è disponibile nella pagina Panoramica di Azure LUIS . Per esempi espliciti, vedere Raccogliere i parametri obbligatori.

Nota

Le nuove risorse create dopo il 1° luglio 2019 useranno nomi di sottodomini personalizzati. Per altre informazioni e un elenco completo degli endpoint a livello di area, vedere Nomi di sottodomini personalizzati per i servizi di intelligenza artificiale di Azure.

Importante

È necessario specificare le opzioni Eula, Billing e ApiKey per eseguire il contenitore. In caso contrario, il contenitore non si avvia. Per altre informazioni, vedereFatturazione. Il valore ApiKey è la chiave della pagina Chiavi ed endpoint nel portale LUIS ed è disponibile anche nella pagina Chiavi di risorsa di Azure Azure AI services .

Esempio di base

L'esempio seguente include gli argomenti minimi possibili per eseguire il contenitore:

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:latest ^
Eula=accept ^
Billing={ENDPOINT_URL} ^
ApiKey={API_KEY}

Esempio di ApplicationInsights

L'esempio seguente imposta l'argomento ApplicationInsights per inviare dati di telemetria ad Application Insights mentre il contenitore è in esecuzione:

docker run --rm -it -p 5000:5000 --memory 6g --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:latest ^
Eula=accept ^
Billing={ENDPOINT_URL} ^
ApiKey={API_KEY} ^
InstrumentationKey={INSTRUMENTATION_KEY}

Esempio di registrazione

Il comando seguente imposta il livello di registrazione, Logging:Console:LogLevel, per configurare il livello di registrazione su Information.

docker run --rm -it -p 5000:5000 --memory 6g --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:latest ^
Eula=accept ^
Billing={ENDPOINT_URL} ^
ApiKey={API_KEY} ^
Logging:Console:LogLevel:Default=Information

Passaggi successivi