Konfigurieren von Dokument Intelligenz-Containern
Die Unterstützung für Container ist derzeit mit der Dokument Intelligenz-Version 2022-08-31 (GA)
für alle Modelle und mit Version 2023-07-31 (GA)
für Lese-, Layout-, Rechnungs-, Belegs- und Ausweisdokumentmodelle verfügbar:
- REST-API
2022-08-31 (GA)
- REST-API
2023-07-31 (GA)
- Clientbibliotheken mit dem Ziel
REST API 2022-08-31 (GA)
- Clientbibliotheken mit dem Ziel
REST API 2023-07-31 (GA)
✔️ Informationen zur unterstützten Containerdokumentation finden Sie unter Konfigurieren von Dokument Intelligenz v3.0-Containern.
Dieser Inhalt gilt für: Version 3.0 (GA) Version 3.1 (GA)
Mithilfe von Dokument Intelligenz-Containern können Sie eine Anwendungsarchitektur erstellen, die sowohl für stabile Cloudfunktionen als auch für das Edge optimiert ist. Container bieten eine minimalistische, isolierte Umgebung, die auf einfache Weise lokal und in der Cloud bereitgestellt werden kann. In diesem Artikel zeigen wir Ihnen, wie Sie die Laufzeitumgebung des Dokument Intelligenz-Containers mithilfe der docker compose
-Befehlsargumente konfigurieren. Die Features von Dokument Intelligenz werden durch sechs Dokument Intelligenz-Funktionscontainer unterstützt – Lesen, Layout, Visitenkarte, Ausweisdokument, Beleg, Rechnung, Benutzerdefiniert. Für diese Container gibt es sowohl erforderliche als auch optionale Einstellungen. Einige Beispiele finden Sie im Abschnitt Beispieldatei „docker-compose.yml“.
Konfigurationseinstellungen
Jeder Container hat die folgenden Konfigurationseinstellungen:
Erforderlich | Einstellung | Zweck |
---|---|---|
Ja | Schlüssel | Nachverfolgen von Abrechnungsinformationen |
Ja | Abrechnung | Gibt den Endpunkt-URI der Dienstressource in Azure an. Weitere Informationen finden Sie unter Abrechnung. Weitere Informationen und eine vollständige Liste der regionalen Endpunkte finden Sie unter Benutzerdefinierte Unterdomänennamen für Azure KI Services. |
Ja | Eula | Gibt an, dass Sie die Lizenz für den Container akzeptiert haben. |
Nein | ApplicationInsights | Ermöglicht das Hinzufügen von Kundensupport für Azure Application Insights für Ihren Container. |
Nein | Fluentd | Schreibt Protokoll- und optional auch Metrikdaten auf einen Fluentd-Server. |
Nein | HTTP-Proxy | Konfiguriert einen HTTP-Proxy für ausgehende Anforderungen. |
Nein | Logging | Bietet Unterstützung für die ASP.NET Core-Protokollierung für Ihren Container. |
Wichtig
Die Einstellungen Key
, Billing
und Eula
werden zusammen verwendet. Sie müssen für alle drei Einstellungen gültige Werte angeben, da der Container andernfalls nicht startet. Weitere Informationen zum Instanziieren eines Containers mithilfe dieser Konfigurationseinstellungen finden Sie unter Abrechnung.
Konfigurationseinstellung für Schlüssel und Abrechnung
Die Key
-Einstellung gibt den Schlüssel der Azure-Ressourcen an, mit dem die Abrechnungsinformationen für den Container verfolgt werden. Beim Wert für den Schlüssel muss es sich um einen gültigen Schlüssel für die Ressource handeln, die im Abschnitt „Abrechnungskonfigurationseinstellung“ für Billing
angegeben wurde.
Die Billing
-Einstellung gibt den Endpunkt-URI der Ressource in Azure an, der zum Messen der Abrechnungsinformationen für den Container verwendet wird. Beim Wert für diese Konfigurationseinstellung muss es sich um einen gültigen URI-Endpunkt für eine Ressource in Azure handeln. Der Container meldet die Nutzung etwa alle 10 bis 15 Minuten.
Diese Einstellungen sind im Azure-Portal auf der Seite Schlüssel und Endpunkt aufgeführt.
EULA
-Einstellung
Die Eula
-Einstellung gibt an, dass Sie die Lizenz für den Container akzeptiert haben. Sie müssen einen Wert für diese Konfigurationseinstellung angeben, und der Wert muss auf accept
festgelegt werden.
Erforderlich | Name | Datentyp | Beschreibung |
---|---|---|---|
Ja | Eula |
String | Zustimmung zur Lizenz Beispiel: Eula=accept |
Azure KI Services-Container werden im Rahmen Ihres Vertrags lizenziert, der Ihre Nutzung von Azure regelt. Wenn Sie über keine Vereinbarung zur Nutzung von Azure verfügen, bestätigen Sie, dass Ihre Vereinbarung zur Nutzung von Azure der Microsoft Online-Abonnementvertrag ist, der die Nutzungsbedingungen für Onlinedienste umfasst. Für Vorschauversionen stimmen Sie auch den ergänzenden Nutzungsbedingungen für Microsoft Azure-Vorschauversionen zu. Durch die Nutzung von Containern stimmen Sie diesen Bedingungen zu.
ApplicationInsights-Einstellung
Die ApplicationInsights
-Einstellung ermöglicht das Hinzufügen von Unterstützung für Azure Application Insights-Telemetriedaten in Ihrem Container. Application Insights ermöglicht eine tief greifende Überwachung Ihrer Container. Sie können ganz einfach die Verfügbarkeit, Leistung und Nutzung Ihrer Container überwachen. Außerdem können Sie schnell Fehler in Ihrem Container erkennen und diagnostizieren.
In der folgenden Tabelle werden die Konfigurationseinstellungen beschrieben, die unter dem Abschnitt ApplicationInsights
unterstützt werden.
Erforderlich | Name | Datentyp | BESCHREIBUNG |
---|---|---|---|
Nein | InstrumentationKey |
String | Der Instrumentierungsschlüssel der Application Insights-Instanz, an die Telemetriedaten für den Container gesendet werden. Weitere Informationen finden Sie unter Application Insights für ASP.NET Core. Beispiel: InstrumentationKey=123456789 |
Fluentd-Einstellungen
Fluentd ist ein Open-Source-Datensammler für die einheitliche Protokollierung. Die Fluentd
-Einstellungen verwalten die Verbindung des Containers mit einem Fluentd-Server. Der Container enthält einen Fluentd-Protokollanbieter, der es Ihrem Container ermöglicht, Protokolldaten (und optional auch Metrikdaten) auf einen Fluentd-Server zu schreiben.
In der folgenden Tabelle werden die Konfigurationseinstellungen beschrieben, die unter dem Abschnitt Fluentd
unterstützt werden.
Name | Datentyp | Beschreibung |
---|---|---|
Host |
String | Die IP-Adresse oder der DNS-Hostname des Fluentd-Servers. |
Port |
Integer | Der Port des Fluentd-Servers. Standardwert: 24224 |
HeartbeatMs |
Integer | Das Heartbeatintervall in Millisekunden. Wurde bis zum Ablauf dieses Intervalls kein Ereignisdatenverkehr gesendet, wird ein Heartbeat an den Fluentd-Server gesendet. Standardwert: 60.000 Millisekunden (eine Minute) |
SendBufferSize |
Integer | Der für Sendevorgänge zugeordnete Netzwerkpufferspeicher (in Byte). Standardwert: 32.768 Byte (32 KB) |
TlsConnectionEstablishmentTimeoutMs |
Integer | Das Timeout (in Millisekunden) für die Herstellung einer SSL/TLS-Verbindung mit dem Fluentd-Server. Der Standardwert beträgt 10.000 Millisekunden (zehn Sekunden). Wenn UseTLS auf FALSE festgelegt ist, wird dieser Wert ignoriert. |
UseTLS |
Boolean | Gibt an, ob der Container für die Kommunikation mit dem Fluentd-Server SSL/TLS verwenden soll. Der Standardwert ist „FALSE“. |
Anmeldeinformationseinstellungen für HTTP-Proxy
Wenn Sie einen HTTP-Proxy für ausgehende Anforderungen konfigurieren müssen, verwenden Sie diese zwei Argumente:
Name | Datentyp | BESCHREIBUNG |
---|---|---|
HTTP_PROXY | string | Der zu verwendende Proxy, z. B. http://proxy:8888 .<proxy-url> |
HTTP_PROXY_CREDS | Zeichenfolge | Beliebige Anmeldeinformationen, die zur Authentifizierung bei dem Proxy erforderlich sind, z. B. username:password . Dieser Wert muss in Kleinbuchstaben eingegeben werden. |
<proxy-user> |
string | Der Benutzer für den Proxy. |
<proxy-password> |
string | Das Kennwort, das dem <proxy-user> für den Proxy zugeordnet ist. |
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> \
Logging-Einstellungen
Die Logging
-Einstellungen dienen zur Verwaltung der ASP.NET Core-Protokollierungsunterstützung für Ihren Container. Sie können für Ihren Container die gleichen Konfigurationseinstellungen und Werte verwenden wie für eine ASP.NET Core-Anwendung.
Der Container unterstützt folgende Protokollanbieter:
Anbieter | Zweck |
---|---|
Konsole | Der ASP.NET Core-Protokollierungsanbieter Console . Alle ASP.NET Core-Konfigurationseinstellungen und Standardwerte für diesen Protokollanbieter werden unterstützt. |
Debuggen | Der ASP.NET Core-Protokollierungsanbieter Debug . Alle ASP.NET Core-Konfigurationseinstellungen und Standardwerte für diesen Protokollanbieter werden unterstützt. |
Datenträger | Der JSON-Protokollanbieter. Dieser Protokollanbieter schreibt Protokolldaten in die Ausgabeeinbindung. |
Dieser Containerbefehl speichert Protokollierungsinformationen im JSON-Format für die Ausgabeeinbindung:
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
Dieser Containerbefehl zeigt Debuginformationen an, denen dbug
vorangestellt ist, während der Container ausgeführt wird:
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
Datenträgerprotokollierung
Der Protokollanbieter Disk
unterstützt folgende Konfigurationseinstellungen:
Name | Datentyp | Beschreibung |
---|---|---|
Format |
String | Das Ausgabeformat für Protokolldateien. Hinweis: Dieser Wert muss auf json festgelegt werden, um den Protokollanbieter zu aktivieren. Wenn dieser Wert bei der Containerinstanziierung angegeben wird, ohne eine Ausgabeeinbindung anzugeben, tritt ein Fehler auf. |
MaxFileSize |
Integer | Die maximale Größe einer Protokolldatei (in MB). Wenn die Größe der aktuellen Protokolldatei diesen Wert erreicht oder übersteigt, wird vom Protokollanbieter eine neue Protokolldatei erstellt. Bei Angabe von „-1“ wird die Größe der Protokolldatei nur durch die maximal zulässige Dateigröße für die Ausgabeeinbindung begrenzt (sofern vorhanden). Der Standardwert ist 1. |
Weitere Informationen zum Konfigurieren der ASP.NET Core-Protokollierungsunterstützung finden Sie unter Protokollierung in ASP.NET Core.
Volumeeinstellungen
Verwenden Sie Volumes, um Daten aus dem Container zu lesen und hinein zu schreiben. Volumes werden bevorzugt zum Beibehalten von Daten verwendet, die von Docker-Containern generiert und verwendet werden. Sie können eine Eingabeeinbindung oder eine Ausgabeeinbindung angeben, indem Sie die volumes
-Option einschließen und type
(binden), source
(Pfad zum Ordner) und target
(Dateipfadparameter) angeben.
Dokument Intelligenz-Container erfordert ein Ein- und ein Ausgabevolume. Das Eingabevolumen kann schreibgeschützt sein (ro
) und ist für den Zugriff auf die Daten erforderlich, die für Training und Bewertung verwendet werden. Das Ausgabevolume muss beschreibbar sein und wird zum Speichern der Modelle und temporären Daten verwendet.
Die genaue Syntax für den Speicherort des Hostvolumes variiert je nach Betriebssystem des Hosts. Darüber hinaus ist der Zugriff auf den Volumespeicherort des Hostcomputers möglicherweise aufgrund eines Konflikts zwischen den vom Docker-Dienstkonto verwendeten Berechtigungen und den für den Einbindungspunkt auf dem Host verwendeten Berechtigungen nicht möglich.
Beispieldatei „docker-compose.yml“
Die Docker Compose-Methode besteht aus drei Schritten:
- Erstellen Sie ein Dockerfile.
- Definieren Sie die Dienste in einer docker-compose.yml-Datei, damit sie zusammen in einer isolierten Umgebung ausgeführt werden können.
- Führen Sie
docker-compose up
aus, um Ihre Dienste zu starten und auszuführen.
Beispiel für einen einzelnen Container
Geben Sie in diesem Beispiel die Werte für {FORM_RECOGNIZER_ENDPOINT_URI} und {FORM_RECOGNIZER_KEY} für Ihre Layoutcontainerinstanz ein.
Layoutcontainer
version: "3.9"
services:
azure-cognitive-service-layout:
container_name: azure-cognitive-service-layout
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- key={FORM_RECOGNIZER_KEY}
ports:
- "5000"
networks:
- ocrvnet
networks:
ocrvnet:
driver: bridge
Beispiel für mehrere Container
Beleg- und OCR-Lesecontainer
In diesem Beispiel geben Sie die Werte {FORM_RECOGNIZER_ENDPOINT_URI} und {FORM_RECOGNIZER_KEY} für Ihren Belegcontainer und die Werte {COMPUTER_VISION_ENDPOINT_URI} und {COMPUTER_VISION_KEY} für Ihren Azure KI Vision-Lesecontainer ein.
version: "3"
services:
azure-cognitive-service-receipt:
container_name: azure-cognitive-service-receipt
image: cognitiveservicespreview.azurecr.io/microsoft/cognitive-services-form-recognizer-receipt:2.1
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- key={FORM_RECOGNIZER_KEY}
- AzureCognitiveServiceReadHost=http://azure-cognitive-service-read:5000
ports:
- "5000:5050"
networks:
- ocrvnet
azure-cognitive-service-read:
container_name: azure-cognitive-service-read
image: mcr.microsoft.com/azure-cognitive-services/vision/read:3.2
environment:
- EULA=accept
- billing={COMPUTER_VISION_ENDPOINT_URI}
- key={COMPUTER_VISION_KEY}
networks:
- ocrvnet
networks:
ocrvnet:
driver: bridge