Installieren und Ausführen von Docker-Containern für LUIS

Wichtig

LUIS wird am 1. Oktober 2025 eingestellt, und ab dem 1. April 2023 können Sie keine neuen LUIS-Ressourcen erstellen. Es wird die Migration Ihrer LUIS-Anwendungen zu Conversational Language Understanding empfohlen, um fortgesetzte Produktunterstützung und mehrsprachige Funktionen zu erhalten.

Hinweis

Der Speicherort für Containerimages wurden vor Kurzem geändert. Lesen Sie diesen Artikel, um mehr zum aktualisierten Speicherort für diesen Container zu erfahren.

Mithilfe von Containern können Sie LUIS in Ihrer eigenen Umgebung verwenden. Container eignen sich hervorragend für bestimmte Sicherheits- und Datengovernanceanforderungen. In diesem Artikel erfahren Sie, wie Sie einen LUIS-Container herunterladen, installieren und ausführen.

Der LUIS-Container (Language Understanding) lädt Ihr trainiertes oder veröffentlichtes Language Understanding-Modell. Als LUIS-App ermöglicht der Docker-Container den Zugriff auf die Abfragevorhersagen von den API-Endpunkten des Containers. Sie können Abfrageprotokolle vom Container erfassen und wieder in die Language Understanding-App hochladen, um die Vorhersagegenauigkeit der App zu verbessern.

Das folgende Video veranschaulicht die Verwendung dieses Containers.

Containerdemo für Azure KI Services

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Voraussetzungen

Beachten Sie für die Ausführung des LUIS-Containers die folgenden Voraussetzungen:

  • Docker, installiert auf einem Hostcomputer. Docker muss so konfiguriert werden, dass die Container eine Verbindung mit Azure herstellen und Abrechnungsdaten an Azure senden können.
    • Unter Windows muss Docker auch für die Unterstützung von Linux-Containern konfiguriert werden.
    • Sie sollten über grundlegende Kenntnisse der Docker-Konzepte verfügen.
  • Eine LUIS-Ressource mit dem Tarif „Free“ (F0) oder „Standard“ (S).
  • Eine trainierte oder veröffentlichte App, die als eingebundene Eingabe für den Container mit der zugehörigen App-ID gepackt ist. Sie können die verpackte Datei über das LUIS-Portal oder die Erstellungs-APIs abrufen. Wenn Sie das LUIS-App-Paket von den Erstellungs-APIs erhalten, benötigen Sie auch Ihren Erstellungsschlüssel.

Erfassen erforderlicher Parameter

Für alle Azure KI-Container werden drei primäre Parameter benötigt. Die Microsoft-Software-Lizenzbedingungen müssen mit dem Wert accept vorhanden sein. Außerdem werden ein Endpunkt-URI und ein API-Schlüssel benötigt.

Endpunkt-URI

Der {ENDPOINT_URI}-Wert ist im Azure-Portal auf der Seite Übersicht der entsprechenden Azure KI Services-Ressource verfügbar. Wechseln Sie zur Seite Übersicht, zeigen Sie auf den Endpunkt, und das Symbol In Zwischenablage kopieren wird angezeigt. Kopieren Sie den Endpunkt, und verwenden Sie ihn bei Bedarf.

Screenshot, der die Erfassung des Endpunkt-URIs für den späteren Gebrauch zeigt.

Tasten

Der {API_KEY}-Wert wird zum Starten des Containers verwendet und ist im Azure-Portal auf der Seite Schlüssel der entsprechenden Azure KI Services-Ressource verfügbar. Wechseln Sie zur Seite Schlüssel, und wählen Sie das Symbol In Zwischenablage kopieren aus.

Screenshot, der das Abrufen eines der zwei Schlüssel für den späteren Gebrauch zeigt.

Wichtig

Diese Abonnementschlüssel werden für den Zugriff auf Ihre Azure KI Services-API verwendet. Geben Sie Ihre Schlüssel nicht weiter. Speichern Sie diese sicher. Verwenden Sie beispielsweise Azure Key Vault. Außerdem wird empfohlen, diese Schlüssel regelmäßig neu zu generieren. Für einen API-Aufruf ist nur ein Schlüssel erforderlich. Beim Neugenerieren des ersten Schlüssels können Sie den zweiten Schlüssel für kontinuierlichen Zugriff auf den Dienst verwenden.

App-ID {APP_ID}

Diese ID wird zum Auswählen der App verwendet. Sie ermitteln die App-ID im LUIS-Portal, indem Sie oben auf dem Bildschirm für Ihre App auf Verwalten und dann auf Einstellungen klicken.

Bildschirm zum Ermitteln Ihrer App-ID

Erstellungsschlüssel {AUTHORING_KEY}

Dieser Schlüssel wird verwendet, um das App-Paket vom LUIS-Dienst in der Cloud abzurufen und die Abfrageprotokolle wieder in die Cloud hochzuladen. Sie benötigen Ihren Erstellungsschlüssel, wenn Sie Ihre App mithilfe der REST-API exportieren. Dies wird weiter unten in diesem Artikel beschrieben.

Sie können den Erstellungsschlüssel im LUIS-Portal abrufen. Klicken Sie dazu oben auf dem Bildschirm für Ihre App auf Verwalten und dann auf Azure-Ressourcen.

Bildschirm zum Ermitteln Ihres Erstellungsressourcenschlüssels

Erstellungs-APIs für die Paketdatei

Erstellungs-APIs für Paket-Apps:

Der Hostcomputer

Der Host ist ein x64-basierter Computer, auf dem der Docker-Container ausgeführt wird. Dies kann ein lokaler Computer oder ein Docker-Hostingdienst in Azure sein, z. B.:

Containeranforderungen und -empfehlungen

In der nachfolgenden Tabelle sind Mindestwerte und empfohlene Werte für den Containerhost aufgeführt. Ihre Anforderungen ändern sich möglicherweise mit dem Datenverkehrsvolumen.

Container Minimum Empfohlen TPS
(Minimum, Maximum)
LUIS Ein Kern, 2 GB Arbeitsspeicher Ein Kern, 4 GB Arbeitsspeicher 20, 40
  • Jeder Kern muss eine Geschwindigkeit von mindestens 2,6 GHz aufweisen.
  • TPS: Transaktionen pro Sekunde

Kern und Arbeitsspeicher entsprechen den Einstellungen --cpus und --memory, die im Rahmen des Befehls docker run verwendet werden.

Abrufen des Containerimages mit docker pull

Das Containerimage LUIS befindet sich im mcr.microsoft.com-Containerregistrierungssyndikat. Es befindet sich im Repository azure-cognitive-services/language und trägt den Namen luis. Der vollqualifizierte Containerimagename lautet mcr.microsoft.com/azure-cognitive-services/language/luis.

Um die neueste Version des Containers zu verwenden, können Sie das Tag latest verwenden. Eine vollständige Liste der Tags finden Sie auch in der MCR.

Verwenden Sie den Befehl docker pull, um ein Containerimage aus dem mcr.microsoft.com/azure-cognitive-services/language/luis-Repository herunterzuladen.

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

Eine vollständige Beschreibung der verfügbaren Tags, wie das im vorherigen Befehl verwendete latest, finden Sie unter LUIS im Docker-Hub.

Tipp

Mithilfe des Befehls docker images können Sie Ihre heruntergeladenen Containerimages auflisten. Mit dem folgenden Befehl werden beispielsweise die ID, das Repository und das Tag jedes heruntergeladenen Containerimages in Form einer Tabelle aufgelistet:

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

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

Verwenden des Containers

Wenn sich der Container auf dem Hostcomputer befindet, können Sie über den folgenden Prozess mit dem Container arbeiten.

Prozess für die Verwendung von LUIS-Containern (Language Understanding)

  1. Exportieren Sie das Paket für den Container aus dem LUIS-Portal oder über LUIS-APIs.
  2. Verschieben Sie die Paketdatei in das erforderliche Eingabeverzeichnis auf dem Hostcomputer. Sie dürfen die LUIS-Paketdatei nicht umbenennen, ändern, überschreiben oder dekomprimieren.
  3. Führen Sie den Container aus, und verwenden Sie dabei die erforderlichen Einstellungen für Eingabebereitstellung und Abrechnung. Es sind noch weitere Beispiele für den Befehl docker run verfügbar.
  4. Fragen Sie den Vorhersageendpunkt des Containers ab.
  5. Wenn Sie mit dem Container fertig sind, importieren Sie die Endpunktprotokolle aus der Ausgabebereitstellung in das LUIS-Portal und beenden den Container.
  6. Nutzen Sie im LUIS-Portal das aktive Lernen auf der Seite mit den Äußerungen des Überprüfungsendpunkts, um die App zu verbessern.

Die im Container ausgeführte App kann nicht geändert werden. Um die App im Container zu ändern, müssen Sie sie über das LUIS-Portal oder die LUIS-Erstellungs-APIs im LUIS-Dienst ändern. Trainieren und/oder veröffentlichen Sie sie anschließend, laden Sie ein neues Paket herunter, und führen Sie den Container erneut aus.

Die LUIS-App im Container kann nicht zurück in den LUIS-Dienst exportiert werden. Nur die Abfrageprotokolle können hochgeladen werden.

Exportieren gepackter Apps aus LUIS

Der LUIS-Container benötigt eine trainierte oder veröffentlichte LUIS-App, um auf Vorhersageabfragen zu Benutzeräußerungen zu antworten. Um die LUIS-App zu erhalten, verwenden Sie entweder die trainierte oder die veröffentlichte Paket-API.

Der Standardspeicherort ist das Unterverzeichnis input – relativ zum Ausführungsort des docker run-Befehls.

Platzieren Sie die Paketdatei in einem Verzeichnis, und verweisen Sie beim Ausführen des Docker-Containers auf dieses Verzeichnis als die Eingabebereitstellung.

Pakettypen

Das Eingabebereitstellungsverzeichnis kann gleichzeitig die App-Versionen Bereitstellung, Staging und Mit Versionsangabe enthalten. Alle Pakete werden eingebunden.

Pakettyp Abfrageendpunkt-API Abfrageverfügbarkeit Format des Paketdateinamens
Mit Versionsangabe GET, POST Nur Container {APP_ID}_v{APP_VERSION}.gz
Staging GET, POST Azure und Container {APP_ID}_STAGING.gz
Bereitstellung GET, POST Azure und Container {APP_ID}_PRODUCTION.gz

Wichtig

Sie dürfen die LUIS-Paketdateien nicht umbenennen, ändern, überschreiben oder dekomprimieren.

Voraussetzungen für das Packen

Vor dem Packen einer LUIS-Anwendung müssen Sie über Folgendes verfügen:

Voraussetzungen für das Packen Details
Azure-Ressourceninstanz für Azure KI Services Unterstützte Regionen

USA, Westen (westus)
Europa, Westen (westeurope)
Australien, Osten (australiaeast)
Trainierte oder veröffentlichte LUIS-App Ohne nicht unterstützte Abhängigkeiten
Zugriff auf das Dateisystem des Hostcomputers Der Hostcomputer muss eine Eingabebereitstellung zulassen.

Exportieren von App-Paketen im LUIS-Portal

Das LUIS-Portal bietet die Möglichkeit, das trainierte oder veröffentlichte App-Paket zu exportieren.

Exportieren des Pakets einer veröffentlichten App im LUIS-Portal

Das Paket einer veröffentlichten App steht in der Liste Meine Apps zur Verfügung.

  1. Melden Sie sich beim LUIS-Portal an.
  2. Aktivieren Sie in der Liste das Kontrollkästchen links neben dem App-Namen.
  3. Wählen Sie auf der kontextbezogenen Symbolleiste über der Liste die Option Exportieren aus.
  4. Wählen Sie Export for container (GZIP) (Für Container exportieren (GZIP)) aus.
  5. Wählen Sie die Umgebung des Produktionsslots oder des Stagingslots aus.
  6. Das Paket wird über den Browser heruntergeladen.

Exportieren des veröffentlichten Pakets für den Container über das Menü „Exportieren“ auf der App-Seite

Exportieren des Pakets einer App mit Versionsangabe im LUIS-Portal

Das Paket einer App mit Versionsangabe steht in der Liste Versionen zur Verfügung.

  1. Melden Sie sich beim LUIS-Portal an.
  2. Wählen Sie die App in der Liste aus.
  3. Wählen Sie auf der Navigationsleiste der App Verwalten aus.
  4. Wählen Sie auf der linken Navigationsleiste Versionen aus.
  5. Aktivieren Sie in der Liste das Kontrollkästchen links neben dem Versionsnamen.
  6. Wählen Sie auf der kontextbezogenen Symbolleiste über der Liste die Option Exportieren aus.
  7. Wählen Sie Export for container (GZIP) (Für Container exportieren (GZIP)) aus.
  8. Das Paket wird über den Browser heruntergeladen.

Exportieren des trainierten Pakets für den Container über das Menü „Exportieren“ auf der Versionsseite

Exportieren des Pakets einer veröffentlichten App über die API

Verwenden Sie die folgende REST-API-Methode, um eine LUIS-App zu packen, die Sie bereits veröffentlicht haben. Ersetzen Sie die entsprechenden Platzhalterwerte im API-Aufruf durch Ihre eigenen Werte. Verwenden Sie dazu die Tabelle unter der HTTP-Spezifikation.

GET /luis/api/v2.0/package/{APP_ID}/slot/{SLOT_NAME}/gzip HTTP/1.1
Host: {AZURE_REGION}.api.cognitive.microsoft.com
Ocp-Apim-Subscription-Key: {AUTHORING_KEY}
Platzhalter Wert
{APP_ID} Die Anwendungs-ID der veröffentlichten LUIS-App.
{SLOT_NAME} Die Umgebung der veröffentlichten LUIS-App. Verwenden Sie einen der folgenden Werte:
PRODUCTION
STAGING
{AUTHORING_KEY} Der Erstellungsschlüssel des LUIS-Kontos für die veröffentlichte LUIS-App.
Sie finden Ihren Erstellungsschlüssel im LUIS-Portal auf der Seite Benutzereinstellungen.
{AZURE_REGION} Die entsprechende Azure-Region:

westus: USA, Westen
westeurope: Europa, Westen
australiaeast: Australien, Osten

Weitere Informationen zum Herunterladen des veröffentlichten Pakets finden Sie in der API-Dokumentation. Beim erfolgreichen Herunterladen ist die Antwort eine LUIS-Paketdatei. Speichern Sie die Datei an dem Speicherort, der für die Eingabebereitstellung des Containers angegeben wurde.

Exportieren des Pakets einer App mit Versionsangabe über die API

Verwenden Sie die folgende REST-API-Methode, um eine LUIS-Anwendung zu packen, die Sie bereits trainiert haben. Ersetzen Sie die entsprechenden Platzhalterwerte im API-Aufruf durch Ihre eigenen Werte. Verwenden Sie dazu die Tabelle unter der HTTP-Spezifikation.

GET /luis/api/v2.0/package/{APP_ID}/versions/{APP_VERSION}/gzip HTTP/1.1
Host: {AZURE_REGION}.api.cognitive.microsoft.com
Ocp-Apim-Subscription-Key: {AUTHORING_KEY}
Platzhalter Wert
{APP_ID} Die Anwendungs-ID der trainierten LUIS-App.
{APP_VERSION} Die Anwendungsversion der trainierten LUIS-App.
{AUTHORING_KEY} Der Erstellungsschlüssel des LUIS-Kontos für die veröffentlichte LUIS-App.
Sie finden Ihren Erstellungsschlüssel im LUIS-Portal auf der Seite Benutzereinstellungen.
{AZURE_REGION} Die entsprechende Azure-Region:

westus: USA, Westen
westeurope: Europa, Westen
australiaeast: Australien, Osten

Weitere Informationen zum Herunterladen des Pakets mit Versionsangabe finden Sie in der API-Dokumentation. Beim erfolgreichen Herunterladen ist die Antwort eine LUIS-Paketdatei. Speichern Sie die Datei an dem Speicherort, der für die Eingabebereitstellung des Containers angegeben wurde.

Ausführen des Containers mit docker run

Verwenden Sie den Befehl docker run, um den Container auszuführen. Genaue Informationen dazu, wie Sie die Werte {ENDPOINT_URI} und {API_KEY} abrufen, erhalten Sie unter Ermitteln erforderlicher Parameter.

Es sind Beispiele für den Befehl docker run verfügbar.

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/language/luis ^
Eula=accept ^
Billing={ENDPOINT_URI} ^
ApiKey={API_KEY}
  • In diesem Beispiel wird das Verzeichnis auf dem Laufwerk C: verwendet, um Berechtigungskonflikte in Windows zu vermeiden. Wenn Sie ein bestimmtes Verzeichnis als Eingabeverzeichnis verwenden möchten, müssen Sie dem Docker-Dienst möglicherweise die erforderliche Berechtigung gewähren.
  • Ändern Sie die Reihenfolge der Argumente nur, wenn Sie mit Docker-Containern vertraut sind.
  • Wenn Sie ein anderes Betriebssystem verwenden, verwenden Sie beim Einbinden die richtige Konsole/das richtige Terminal, die richtige Ordnersyntax und das richtige Zeilenfortsetzungszeichen für Ihr System. In diesen Beispielen wird von einer Windows-Konsole mit dem Zeilenfortsetzungszeichen ^ ausgegangen. Da der Container ein Linux-Betriebssystem ist, verwendet die Zieleinbindung eine linuxartige Ordnersyntax.

Dieser Befehl:

  • Führt einen Container über das LUIS-Containerimage aus
  • Lädt die LUIS-App aus der Eingabebereitstellung unter C:\input auf dem Containerhost
  • Weist zwei CPU-Kerne und 4 GB Arbeitsspeicher zu
  • Verfügbarmachen des TCP-Ports 5000 und Zuweisen einer Pseudo-TTY-Verbindung für den Container
  • Speichert Container und LUIS-Protokolle in der Ausgabebereitstellung unter C:\output auf dem Containerhost
  • Entfernt den Container automatisch, nachdem er beendet wurde. Das Containerimage ist auf dem Hostcomputer weiterhin verfügbar.

Es sind noch weitere Beispiele für den Befehl docker run verfügbar.

Wichtig

Die Optionen Eula, Billing und ApiKey müssen angegeben werden, um den Container auszuführen, andernfalls wird der Container nicht gestartet. Weitere Informationen finden Sie unter Abrechnung. Der ApiKey-Wert ist der Schlüssel von der Seite Azure-Ressourcen im LUIS-Portal. Er ist auch auf der Seite mit den Schlüsseln der Azure Azure AI services-Ressourcen verfügbar.

Ausführen mehrerer Container auf dem gleichen Host

Wenn Sie beabsichtigen, mehrere Container mit offengelegten Ports auszuführen, stellen Sie sicher, dass jeder Container mit einem anderen offengelegten Port ausgeführt wird. Führen Sie beispielsweise den ersten Container an Port 5000 und den zweiten Container an Port 5001 aus.

Sie können diesen Container und einen anderen Azure KI Services-Container zusammen auf dem Host ausführen. Sie können auch mehrere Container desselben Azure KI Services-Containers ausführen.

Vom Container unterstützte Endpunkt-APIs

Sowohl die V2- als auch V3-Version der API ist mit dem Container verfügbar.

Abfragen des Vorhersageendpunkts des Containers

Der Container stellt REST-basierte Endpunkt-APIs für die Abfragevorhersage bereit. Endpunkte für veröffentlichte Apps (Staging oder Produktion) nutzen eine andere Route als Endpunkte für Apps mit Versionsangabe.

Verwenden Sie für Container-APIs den Host http://localhost:5000.

Pakettyp HTTP-Verb Route Abfrageparameter
Veröffentlicht GET, POST /luis/v3.0/apps/{appId}/slots/{slotName}/predict? /luis/prediction/v3.0/apps/{appId}/slots/{slotName}/predict? query={query}
[&verbose]
[&log]
[&show-all-intents]
Mit Versionsangabe GET, POST /luis/v3.0/apps/{appId}/versions/{versionId}/predict? /luis/prediction/v3.0/apps/{appId}/versions/{versionId}/predict query={query}
[&verbose]
[&log]
[&show-all-intents]

Die Abfrageparameter legen fest, was auf welche Weise in der Abfrageantwort zurückgegeben wird:

Query parameter (Abfrageparameter) type Zweck
query Zeichenfolge Die Äußerung des Benutzers.
verbose boolean Ein boolescher Wert, der angibt, ob alle Metadaten für die vorhergesagten Modelle zurückgegeben werden sollen. Der Standardwert ist "false".
log boolean Protokolliert Abfragen, die später für aktives Lernen verwendet werden können. Der Standardwert ist "false".
show-all-intents boolean Ein boolescher Wert, der angibt, ob alle Absichten zurückgegeben werden sollen oder nur die Absicht mit der höchsten Bewertung. Standardwert ist „falsch“.

Abfragen der LUIS-App

Ein Beispiel für einen cURL-Befehl zum Abfragen des Containers für eine veröffentlichte App lautet:

Verwenden Sie die folgende API, um ein Modell in einem Slot abzufragen:

curl -G \
-d verbose=false \
-d log=true \
--data-urlencode "query=turn the lights on" \
"http://localhost:5000/luis/v3.0/apps/{APP_ID}/slots/production/predict"

Um Abfragen an die Stagingumgebung vorzunehmen, ersetzen Sie production in der Route durch staging:

http://localhost:5000/luis/v3.0/apps/{APP_ID}/slots/staging/predict

Verwenden Sie die folgende API, um ein Modell mit Versionsangabe abzufragen:

curl -G \
-d verbose=false \
-d log=false \
--data-urlencode "query=turn the lights on" \
"http://localhost:5000/luis/v3.0/apps/{APP_ID}/versions/{APP_VERSION}/predict"

Importieren der Endpunktprotokolle für aktives Lernen

Wenn eine Ausgabebereitstellung für den LUIS-Container angegeben wurde, werden Protokolldateien von App-Abfragen im Ausgabeverzeichnis gespeichert, wobei {INSTANCE_ID} die Container-ID ist. Das Abfrageprotokoll für die App enthält die Abfrage, die Antwort und die Zeitstempel für jede Vorhersageabfrage, die an den LUIS-Container gesendet wurde.

Der folgende Pfad veranschaulicht die geschachtelte Verzeichnisstruktur für die Protokolldateien des Containers.

/output/luis/{INSTANCE_ID}/

Wählen Sie Ihre App im LUIS-Portal aus, und wählen Sie dann Endpunktprotokolle importieren aus, um diese Protokolle hochzuladen.

Importieren der Protokolldateien des Containers für aktives Lernen

Nachdem Sie das Protokoll hochgeladen haben, überprüfen Sie die Endpunktäußerungen im LUIS-Portal.

Überprüfen auf aktive Container

Es gibt mehrere Möglichkeiten zu überprüfen, ob ein Container aktiv ist. Suchen Sie die externe IP-Adresse und den verfügbar gemachten Port des betreffenden Containers, und öffnen Sie Ihren bevorzugten Webbrowser. Verwenden Sie die folgenden verschiedenen URLs für Anforderungen, um zu überprüfen, ob der Container ausgeführt wird. Die hier aufgeführten Beispiel-URLs für Anforderungen sind http://localhost:5000, aber Ihr spezifischer Container kann variieren. Stellen Sie sicher, dass Sie sich auf die externe IP-Adresse Ihres Containers und den verfügbar gemachten Port beziehen.

Anforderungs-URL Zweck
http://localhost:5000/ Der Container stellt eine Homepage bereit.
http://localhost:5000/ready Diese mit GET angeforderte URL ermöglicht es, zu überprüfen, ob der Container eine Abfrage des Modells akzeptiert. Diese Anforderung kann für Live- und Bereitschaftstests von Kubernetes verwendet werden.
http://localhost:5000/status Diese URL wird auch mit GET angefordert und überprüft, ob der zum Starten des Containers verwendete API-Schlüssel gültig ist, ohne dass eine Endpunktabfrage veranlasst wird. Diese Anforderung kann für Live- und Bereitschaftstests von Kubernetes verwendet werden.
http://localhost:5000/swagger Der Container stellt eine umfassende Dokumentation für die Endpunkte sowie die Funktion Jetzt ausprobieren bereit. Diese Funktion ermöglicht Ihnen die Eingabe Ihrer Einstellungen in einem webbasierten HTML-Formular, sodass Sie die Abfrage ausführen können, ohne Code schreiben zu müssen. Nach der Rückgabe der Abfrage wird ein cURL-Beispielbefehl bereitgestellt, der das erforderliche Format für HTTP-Header und -Text veranschaulicht.

Homepage des Containers

Ausführen des Containers ohne Verbindung zum Internet

Um diesen Container ohne Internetverbindung nutzen zu können, müssen Sie zunächst einen Antrag auf Zugriff stellen und einen Prepaidtarif erwerben. Weitere Informationen finden Sie unter Verwendung von Docker-Containern in nicht verbundenen Umgebungen.

Wenn Sie die Erlaubnis erhalten haben, den Container ohne Internetverbindung zu betreiben, verwenden Sie das folgende Beispiel, das die Formatierung des zu verwendenden docker run-Befehls mit Platzhalterwerten zeigt. Ersetzen Sie diese Platzhalterwerte durch eigene Werte.

Der DownloadLicense=True Parameter in Ihrem docker run-Befehl lädt eine Lizenzdatei herunter, die es Ihrem Docker-Container ermöglicht, auch ohne Internetverbindung zu arbeiten. Sie enthält auch ein Ablaufdatum, nach dem die Lizenzdatei nicht mehr für die Ausführung des Containers gültig ist. Sie können eine Lizenzdatei nur mit dem entsprechenden Container verwenden, für den Sie eine Genehmigung erhalten haben. So können Sie z. B. keine Lizenzdatei für einen Spracherkennungscontainer mit einem Dokument Intelligenz-Container verwenden.

Platzhalter Wert Format oder Beispiel
{IMAGE} Das Containerimage, das Sie verwenden möchten. mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice
{LICENSE_MOUNT} Der Pfad, in den die Lizenz heruntergeladen und eingebunden wird. /host/license:/path/to/license/directory
{ENDPOINT_URI} Der Endpunkt für Ihre Service Request-Authentifizierung. Sie finden ihn im Azure-Portal auf der Seite Key and endpoint (Schlüssel und Endpunkt) Ihrer Ressource. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API_KEY} Der Schlüssel für Ihre Textanalyseressource. Sie finden ihn im Azure-Portal auf der Seite Key and endpoint (Schlüssel und Endpunkt) Ihrer Ressource. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{CONTAINER_LICENSE_DIRECTORY} Speicherort des Lizenzordners im lokalen Dateisystem des Containers. /path/to/license/directory
docker run --rm -it -p 5000:5000 \ 
-v {LICENSE_MOUNT} \
{IMAGE} \
eula=accept \
billing={ENDPOINT_URI} \
apikey={API_KEY} \
DownloadLicense=True \
Mounts:License={CONTAINER_LICENSE_DIRECTORY} 

Nachdem die Lizenzdatei heruntergeladen wurde, können Sie den Container in einer nicht verbundenen Umgebung ausführen. Das folgende Beispiel zeigt die Formatierung des zu verwendenden docker run-Befehls mit Platzhalterwerten. Ersetzen Sie diese Platzhalterwerte durch eigene Werte.

Unabhängig davon, wo der Container ausgeführt wird, muss die Lizenzdatei in den Container eingebunden und der Speicherort des Lizenzordners im lokalen Dateisystem des Containers muss mit Mounts:License= angegeben werden. Außerdem muss eine Ausgabeeinbindung angegeben werden, sodass Einträge für die Abrechnung der Nutzung geschrieben werden können.

Platzhalter Wert Format oder Beispiel
{IMAGE} Das Containerimage, das Sie verwenden möchten. mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice
{MEMORY_SIZE} Die geeignete Größe des Arbeitsspeichers, der für Ihren Container zugeordnet werden soll. 4g
{NUMBER_CPUS} Die geeignete Anzahl von CPUs, die für Ihren Container zugeordnet werden soll. 4
{LICENSE_MOUNT} Der Pfad, in dem sich die Lizenz befindet und eingebunden wird. /host/license:/path/to/license/directory
{OUTPUT_PATH} Der Ausgabepfad für die Protokollierung von Verwendungseinträgen. /host/output:/path/to/output/directory
{CONTAINER_LICENSE_DIRECTORY} Speicherort des Lizenzordners im lokalen Dateisystem des Containers. /path/to/license/directory
{CONTAINER_OUTPUT_DIRECTORY} Speicherort des Ausgabeordners im lokalen Dateisystem des Containers. /path/to/output/directory
docker run --rm -it -p 5000:5000 --memory {MEMORY_SIZE} --cpus {NUMBER_CPUS} \ 
-v {LICENSE_MOUNT} \ 
-v {OUTPUT_PATH} \
{IMAGE} \
eula=accept \
Mounts:License={CONTAINER_LICENSE_DIRECTORY}
Mounts:Output={CONTAINER_OUTPUT_DIRECTORY}

Beenden des Containers

Zum Herunterfahren des Containers drücken Sie in der Befehlszeilenumgebung, in der der Container ausgeführt wird, STRG+C.

Problembehandlung

Wenn Sie den Container mit einer Ausgabenbereitstellung ausführen und die Protokollierung aktiviert ist, generiert der Container Protokolldateien. Diese sind hilfreich, um Probleme beim Starten oder Ausführen des Containers zu beheben.

Tipp

Weitere Informationen und Leitfäden zur Problembehandlung finden Sie unter Häufig gestellte Fragen (FAQ) zu Azure KI-Containern.

Wenn Sie Probleme beim Ausführen eines Azure KI Services-Containers haben, können Sie versuchen, den Microsoft-Diagnosecontainer zu verwenden. Verwenden Sie diesen Container zum Diagnostizieren häufiger Fehler in Ihrer Bereitstellungsumgebung, die ggf. verhindern, dass Azure KI-Container wie erwartet funktionieren.

Zum Abrufen des Containers verwenden Sie den folgenden Befehl: docker pull

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

Führen Sie dann den Container aus. Ersetzen Sie {ENDPOINT_URI} durch Ihren Endpunkt, und ersetzen Sie {API_KEY} durch den Schlüssel für Ihre Ressource:

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Der Container überprüft die Netzwerkkonnektivität mit dem Abrechnungsendpunkt.

Abrechnung

Der LUIS-Container sendet Abrechnungsinformationen an Azure und verwendet dafür eine entsprechende Azure KI Services-Ressource in Ihrem Azure-Konto.

Abfragen des Containers werden gemäß des Tarifs der Azure-Ressource in Rechnung gestellt, die für den Parameter ApiKey verwendet wird.

Azure KI Services-Container sind nicht zur Ausführung lizenziert, wenn keine Verbindung mit dem Endpunkt zur Verbrauchsmessung oder Abrechnung besteht. Sie müssen sicherstellen, dass die Container jederzeit Abrechnungsinformationen an den Abrechnungsendpunkt übermitteln können. Azure KI Services-Container senden keine Kundendaten (z. B. das analysierte Bild oder den analysierten Text) an Microsoft.

Herstellen einer Verbindung mit Azure

Der Container benötigt die Abrechnungsargumentwerte, um ausgeführt werden zu können. Diese Werte ermöglichen es dem Container, eine Verbindung mit dem Abrechnungsendpunkt herzustellen. Der Container meldet die Nutzung etwa alle 10 bis 15 Minuten. Wenn der Container nicht innerhalb des zulässigen Zeitfensters eine Verbindung mit Azure herstellt, wird der Container weiterhin ausgeführt, verarbeitet aber keine Anfragen, bis der Abrechnungsendpunkt wiederhergestellt wurde. Es erfolgen 10 Verbindungsversuche im gleichen Zeitintervall von 10 bis 15 Minuten. Wenn die Verbindung mit dem Abrechnungsendpunkt nicht innerhalb der 10 Versuche hergestellt werden kann, wird die Bereitstellung von Anforderungen durch den Container beendet. Ein Beispiel der zur Abrechnung an Microsoft gesendeten Informationen finden Sie in den häufig gestellten Fragen (FAQ) zu Azure KI Services-Containern.

Abrechnungsargumente

Der Befehl docker run startet den Container, wenn alle drei der folgenden Optionen über gültige Werte verfügen:

Option Beschreibung
ApiKey Der API-Schlüssel der Azure KI Services-Ressource, der zum Nachverfolgen von Abrechnungsinformationen verwendet wird.
Der Wert dieser Option muss für die bereitgestellte Ressource, die in Billing angegeben wurde, auf einen API-Schlüssel festgelegt werden.
Billing Der Endpunkt der Azure KI Services-Ressource, der zum Nachverfolgen von Abrechnungsinformationen verwendet wird
Der Wert dieser Option muss auf den Endpunkt-URI einer bereitgestellten Azure-Ressource festgelegt werden.
Eula Gibt an, dass Sie die Lizenz für den Container akzeptiert haben.
Der Wert dieser Option muss auf accept festgelegt werden.

Weitere Informationen zu diesen Optionen finden Sie unter Konfigurieren von Containern.

Zusammenfassung

In diesem Artikel haben Sie die Konzepte und den Workflow zum Herunterladen, Installieren und Ausführen von LUIS-Containern (Language Understanding) kennengelernt. Zusammenfassung:

  • Language Understanding (LUIS) bietet einen Linux-Container für Docker, der Vorhersagen für Endpunktabfragen zu Äußerungen bereitstellt.
  • Containerimages werden aus Microsoft Container Registry (MCR) heruntergeladen.
  • Containerimages werden in Docker ausgeführt.
  • Sie können die REST-API verwenden, um die Containerendpunkte abzufragen, indem Sie den Host-URI des Containers angeben.
  • Bei der Instanziierung eines Containers müssen Sie Abrechnungsinformationen angeben.

Wichtig

Für die Ausführung von Azure KI Services-Containern besteht keine Lizenz, wenn sie nicht zu Messzwecken mit Azure verbunden sind. Kunden müssen sicherstellen, dass Container jederzeit Abrechnungsinformationen an den Messungsdienst übermitteln können. Azure KI-Container senden keine Kundendaten (etwa das analysierte Bild oder den analysierten Text) an Microsoft.

Nächste Schritte