Dieser Inhalt gilt für: Version 3.0 (GA) Version 3.1 (GA)
Azure KI Dokument Intelligenz ist ein Azure KI-Dienst, der Ihnen ermöglicht, unter Verwendung von Technologien zum maschinellen Lernen Software für die automatisierte Datenverarbeitung zu entwickeln. Mit Dokument Intelligenz identifizieren und extrahieren Sie Text, Schlüssel-Wert-Paare, Auswahlmarkierungen, Tabellendaten und Ähnliches aus Ihren Dokumenten. Als Ergebnis werden strukturierte Daten ausgegeben, die die Beziehungen in der Originaldatei enthalten. Container verarbeiten nur die ihnen bereitgestellten Daten und nutzen ausschließlich die Ressourcen, auf die sie Zugriff haben. Container können keine Daten aus anderen Regionen verarbeiten.
In diesem Artikel erfahren Sie, wie Sie Document Intelligence-Container herunterladen, installieren und ausführen. Container ermöglichen Ihnen, den Dokument Intelligenz-Dienst in Ihrer eigenen Umgebung auszuführen. Container eignen sich hervorragend für bestimmte Sicherheits- und Datengovernanceanforderungen.
Modelle für Lesen, Layout, Ausweisdokumente, Belege und Rechnungen werden von Dokument Intelligenz v3.1-Containern unterstützt.
Modelle für Lesen, Layout, Allgemeine Dokumente, Visitenkarten und Benutzerdefiniert werden von Dokument Intelligenz v3.0-Containern unterstützt.
Versionsunterstützung
Die Unterstützung für Container ist derzeit mit der Dokument Intelligenz-Version v3.0: 2022-08-31 (GA)
für alle Modelle und mit Version v3.1 2023-07-31 (GA)
für Lese-, Layout-, Ausweisdokument-, Belegs- und Rechnungsmodelle verfügbar:
Voraussetzungen
Sie benötigen ein aktives Azure-Konto, um zu beginnen. Falls Sie noch kein Konto haben, können Sie ein kostenloses Konto erstellen.
Außerdem benötigen Sie Folgendes, um Dokument Intelligenz-Container verwenden zu können:
Erforderlich |
Zweck |
Kenntnisse zu Docker |
Sie sollten über Grundkenntnisse der Konzepte von Docker, einschließlich Registrierungen, Repositorys, Container und Containerimages, verfügen und die grundlegenden Begriffe und Befehle für docker kennen. |
Installierte Docker-Engine |
- Die Docker-Engine muss auf einem Hostcomputer installiert sein. Für die Docker-Umgebung stehen Konfigurationspakete für macOS, Windows und Linux zur Verfügung. Eine Einführung in Docker und Container finden Sie in der Docker-Übersicht.
- 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.
|
Dokument Intelligenz-Ressource |
Eine Azure KI Dokument Intelligenz-Ressource (einzelner Dienst) oder eine für mehrere Dienste im Azure-Portal Um die Container verwenden zu können, benötigen Sie den zugeordneten Schlüssel und den Endpunkt-URI. Beide Werte finden Sie im Azure-Portal auf der Seite Schlüssel und Endpunkt für Dokument Intelligenz: - {FORM_RECOGNIZER_KEY}: Einer der beiden verfügbaren Ressourcenschlüssel
- {FORM_RECOGNIZER_ENDPOINT_URI} : Der Endpunkt für die Ressource zum Nachverfolgen von Abrechnungsinformationen.
|
Optional |
Zweck |
Azure CLI (Befehlszeilenschnittstelle) |
Mit der Azure-Befehlszeilenschnittstelle können Sie eine Reihe von Onlinebefehlen verwenden, um Azure-Ressourcen zu erstellen und zu verwalten. Sie ist für die Installation in Windows-, macOS- und Linux-Umgebungen verfügbar und kann in einem Docker-Container und in Azure Cloud Shell ausgeführt werden. |
Anforderungen an 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.:
Hinweis
Beachten Sie, dass der Studio-Container nicht in Azure Kubernetes Service bereitgestellt und ausgeführt werden kann. Die Ausführung des Studio-Containers wird nur auf dem lokalen Computer unterstützt.
Containeranforderungen und -empfehlungen
Erforderliche unterstützende Container
Die folgende Tabelle enthält mindestens einen Hilfscontainer für jeden Dokument Intelligenz-Container, den Sie herunterladen. Weitere Informationen finden Sie im Abschnitt Abrechnung.
Featurecontainer |
Hilfscontainer |
Lesen |
Nicht erforderlich |
Layout |
Nicht erforderlich |
Visitenkarte |
Lesen |
Allgemeines Dokument |
Layout |
Rechnung |
Layout |
Rechnung |
Lesen oder Layout |
Ausweisdokument |
Lesen |
Benutzerdefinierte Vorlage |
Layout |
Empfohlene CPU-Kerne und Arbeitsspeicher
Hinweis
Die Mindestanforderungen und empfohlenen Werte basieren auf Docker-Grenzwerten und nicht auf den Ressourcen des Hostcomputers.
Dokument Intelligenz-Container
Container |
Minimum |
Empfohlen |
Read |
8 Kerne, 10 GB Arbeitsspeicher |
8 Kerne, 24 GB Arbeitsspeicher |
Layout |
8 Kerne, 16 GB Arbeitsspeicher |
8 Kerne, 24 GB Arbeitsspeicher |
Business Card |
8 Kerne, 16 GB Arbeitsspeicher |
8 Kerne, 24 GB Arbeitsspeicher |
General Document |
8 Kerne, 12 GB Arbeitsspeicher |
8 Kerne, 24 GB Arbeitsspeicher |
ID Document |
8 Kerne, 8 GB Arbeitsspeicher |
8 Kerne, 24 GB Arbeitsspeicher |
Invoice |
8 Kerne, 16 GB Arbeitsspeicher |
8 Kerne, 24 GB Arbeitsspeicher |
Receipt |
8 Kerne, 11 GB Arbeitsspeicher |
8 Kerne, 24 GB Arbeitsspeicher |
Custom Template |
8 Kerne, 16 GB Arbeitsspeicher |
8 Kerne, 24 GB Arbeitsspeicher |
- Jeder Kern muss eine Geschwindigkeit von mindestens 2,6 GHz aufweisen.
- Kern und Arbeitsspeicher entsprechen den Einstellungen
--cpus
und --memory
, die im Befehl docker compose
oder docker run
verwendet werden.
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>
Ausführen des Containers mit dem Befehl docker-compose up
Ersetzen Sie die Werte {ENDPOINT_URI} und {API_KEY} durch Ihren Ressourcenendpunkt-URI und den Schlüssel von der Azure-Ressourcenseite.
Stellen Sie sicher, dass der Wert von EULA
auf Akzeptieren festgelegt ist.
Die Werte für EULA
, Billing
und ApiKey
müssen angegeben werden, andernfalls kann der Container nicht gestartet werden.
Wichtig
Die Schlüssel werden für den Zugriff auf Ihre Dokument Intelligenz-Ressource verwendet. Geben Sie Ihre Schlüssel nicht weiter. Speichern Sie diese beispielsweise sicher mit Azure Key Vault. Es wird außerdem empfohlen, diese Schlüssel regelmäßig neu zu generieren. Für einen API-Aufruf ist nur ein Schlüssel erforderlich. Beim erneuten Generieren des ersten Schlüssels können Sie den zweiten Schlüssel für kontinuierlichen Zugriff auf den Dienst verwenden.
Das folgende Codebeispiel ist ein eigenständiges Beispiel für docker compose
zum Ausführen des Layoutcontainers von Dokument Intelligenz. Bei docker compose
verwenden Sie eine YAML-Datei, um die Dienste Ihrer Anwendung zu konfigurieren. Dann erstellen und starten Sie mit dem Befehl docker-compose up
alle Dienste aus Ihrer Konfiguration. Geben Sie die Werte für {FORM_RECOGNIZER_ENDPOINT_URI} und {{FORM_RECOGNIZER_KEY} für Ihre Containerinstanz „Layout“ ein.
version: "3.9"
services:
azure-form-recognizer-read:
container_name: azure-form-recognizer-read
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/read-3.1
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- apiKey={FORM_RECOGNIZER_KEY}
ports:
- "5000:5000"
networks:
- ocrvnet
networks:
ocrvnet:
driver: bridge
Jetzt können Sie den Dienst mit dem Befehl docker compose starten:
docker-compose up
Das folgende Codebeispiel ist ein eigenständiges Beispiel für docker compose
zum Ausführen des Containers für „Allgemeines Dokument“ von Dokument Intelligenz. Bei docker compose
verwenden Sie eine YAML-Datei, um die Dienste Ihrer Anwendung zu konfigurieren. Dann erstellen und starten Sie mit dem Befehl docker-compose up
alle Dienste aus Ihrer Konfiguration. Geben Sie die Werte für {FORM_RECOGNIZER_ENDPOINT_URI} und {FORM_RECOGNIZER_KEY} für Ihre Containerinstanzen „Allgemeines Dokument" und „Layout“ ein.
version: "3.9"
services:
azure-cognitive-service-document:
container_name: azure-cognitive-service-document
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/document-3.0
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- apiKey={FORM_RECOGNIZER_KEY}
- AzureCognitiveServiceLayoutHost=http://azure-cognitive-service-layout:5000
ports:
- "5000:5050"
azure-cognitive-service-layout:
container_name: azure-cognitive-service-layout
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.0
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- apiKey={FORM_RECOGNIZER_KEY}
Jetzt können Sie den Dienst mit dem Befehl docker compose starten:
docker-compose up
Angesichts der Ressourcen auf dem Computer kann es einige Zeit dauern, bis der Container „Allgemeines Dokument“ gestartet wird.
Das folgende Codebeispiel ist ein eigenständiges Beispiel für docker compose
zum Ausführen des Layoutcontainers von Dokument Intelligenz. Bei docker compose
verwenden Sie eine YAML-Datei, um die Dienste Ihrer Anwendung zu konfigurieren. Dann erstellen und starten Sie mit dem Befehl docker-compose up
alle Dienste aus Ihrer Konfiguration. Geben Sie die Werte für {FORM_RECOGNIZER_ENDPOINT_URI} und {{FORM_RECOGNIZER_KEY} für Ihre Containerinstanz „Layout“ ein.
version: "3.9"
services:
azure-form-recognizer-layout:
container_name: azure-form-recognizer-layout
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.1
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- apiKey={FORM_RECOGNIZER_KEY}
ports:
- "5000:5000"
networks:
- ocrvnet
networks:
ocrvnet:
driver: bridge
Jetzt können Sie den Dienst mit dem Befehl docker compose starten:
docker-compose up
Das folgende Codebeispiel ist ein eigenständiges Beispiel für docker compose
zum Ausführen des Rechnungscontainers von Dokument Intelligenz. Bei docker compose
verwenden Sie eine YAML-Datei, um die Dienste Ihrer Anwendung zu konfigurieren. Dann erstellen und starten Sie mit dem Befehl docker-compose up
alle Dienste aus Ihrer Konfiguration. Geben Sie die Werte für {FORM_RECOGNIZER_ENDPOINT_URI} und {FORM_RECOGNIZER_KEY} für Ihre Containerinstanzen „Rechnung“ und „Layout“ ein.
Sie müssen das 3.1 GA-Layoutimage als Upstreamimage für 3.0 GA- und 3.1 GA-Rechnungsmodelle verwenden.
version: "3.9"
services:
azure-cognitive-service-invoice:
container_name: azure-cognitive-service-invoice
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice-3.1
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- apiKey={FORM_RECOGNIZER_KEY}
- AzureCognitiveServiceLayoutHost=http://azure-cognitive-service-layout:5000
ports:
- "5000:5050"
azure-cognitive-service-layout:
container_name: azure-cognitive-service-layout
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.1
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- apiKey={FORM_RECOGNIZER_KEY}
Jetzt können Sie den Dienst mit dem Befehl docker compose starten:
docker-compose up
Das folgende Codebeispiel ist ein eigenständiges Beispiel für docker compose
zum Ausführen des Containers für „Allgemeines Dokument“ von Dokument Intelligenz. Bei docker compose
verwenden Sie eine YAML-Datei, um die Dienste Ihrer Anwendung zu konfigurieren. Dann erstellen und starten Sie mit dem Befehl docker-compose up
alle Dienste aus Ihrer Konfiguration. Geben Sie die Werte für {FORM_RECOGNIZER_ENDPOINT_URI} und {FORM_RECOGNIZER_KEY} für Ihre Containerinstanzen für „Beleg“ und „Lesen“ ein.
Sie können 3.1 GA-Layoutimage als Upstream- anstatt als Leseimage verwenden.
version: "3.9"
services:
azure-cognitive-service-receipt:
container_name: azure-cognitive-service-receipt
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/receipt-3.1
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- apiKey={FORM_RECOGNIZER_KEY}
- AzureCognitiveServiceReadHost=http://azure-cognitive-service-read:5000
ports:
- "5000:5050"
azure-cognitive-service-read:
container_name: azure-cognitive-service-read
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/read-3.1
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- apiKey={FORM_RECOGNIZER_KEY}
Jetzt können Sie den Dienst mit dem Befehl docker compose starten:
docker-compose up
Das folgende Codebeispiel ist ein eigenständiges Beispiel für docker compose
zum Ausführen des Containers für „Allgemeines Dokument“ von Dokument Intelligenz. Bei docker compose
verwenden Sie eine YAML-Datei, um die Dienste Ihrer Anwendung zu konfigurieren. Dann erstellen und starten Sie mit dem Befehl docker-compose up
alle Dienste aus Ihrer Konfiguration. Geben Sie die Werte für {FORM_RECOGNIZER_ENDPOINT_URI} und {FORM_RECOGNIZER_KEY} für Ihre Containerinstanzen für „ID“ und „Lesen“ ein.
Sie können 3.1 GA-Layoutimage als Upstream- anstatt als Leseimage verwenden.
version: "3.9"
services:
azure-cognitive-service-id-document:
container_name: azure-cognitive-service-id-document
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/id-document-3.1
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- apiKey={FORM_RECOGNIZER_KEY}
- AzureCognitiveServiceReadHost=http://azure-cognitive-service-read:5000
ports:
- "5000:5050"
azure-cognitive-service-read:
container_name: azure-cognitive-service-read
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/read-3.1
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- apiKey={FORM_RECOGNIZER_KEY}
Jetzt können Sie den Dienst mit dem Befehl docker compose starten:
docker-compose up
version: "3.9"
services:
azure-cognitive-service-invoice:
container_name: azure-cognitive-service-businesscard
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/businesscard-3.0
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- apiKey={FORM_RECOGNIZER_KEY}
- AzureCognitiveServiceLayoutHost=http://azure-cognitive-service-layout:5000
ports:
- "5000:5050"
azure-cognitive-service-layout:
container_name: azure-cognitive-service-layout
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.0
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- apiKey={FORM_RECOGNIZER_KEY}
Zusätzlich zu den Voraussetzungen müssen Sie folgende Schritte zum Verarbeiten eines benutzerdefinierten Dokuments ausführen:
Erstellen eines Ordners und Speichern der folgenden Dateien
- Geben Sie diesem Ordner den Namen Dateien.
- Wir verweisen auf den Dateipfad für diesen Ordner als {FILE_MOUNT_PATH}.
- Kopieren Sie den Dateipfad an einem geeigneten Speicherort, Sie müssen ihn ihrer .env-Datei hinzufügen. Wenn der Ordner beispielsweise „Dateien“ heißt und sich im gleichen Ordner wie die
docker-compose
-Datei befindet, lautet der Eintrag in der ENV-Datei FILE_MOUNT_PATH="./files"
.
Erstellen Sie einen Ordner zum Speichern der Protokolle, die vom Dokument Intelligenz-Dienst auf Ihrem lokalen Computer geschrieben werden.
- Geben Sie diesem Ordner den Namen output.
- Wir verweisen auf den Dateipfad für diesen Ordner als {OUTPUT_MOUNT_PATH}.
- Kopieren Sie den Dateipfad an einem geeigneten Speicherort, Sie müssen ihn ihrer .env-Datei hinzufügen. Wenn der Ordner beispielsweise „Ausgabe“ heißt und sich im gleichen Ordner wie die
docker-compose
-Datei befindet, lautet der Eintrag in der ENV-Datei OUTPUT_MOUNT_PATH="./output"
Erstellen eines Ordners zum Speichern der internen Verarbeitung, die zwischen den Containern freigegeben ist
- Geben Sie diesem Ordner den Namen shared.
- Wir verweisen auf den Dateipfad für diesen Ordner als {SHARED_MOUNT_PATH}.
- Kopieren Sie den Dateipfad an einem geeigneten Speicherort, Sie müssen ihn ihrer .env-Datei hinzufügen. Wenn der Ordner beispielsweise „Freigegeben“ heißt und sich im gleichen Ordner wie die
docker-compose
-Datei befindet, lautet der Eintrag in der ENV-Datei SHARED_MOUNT_PATH="./share"
.
- Geben Sie diesem Ordner den Namen db.
- Wir verweisen auf den Dateipfad für diesen Ordner als {DB_MOUNT_PATH}.
- Kopieren Sie den Dateipfad an einem geeigneten Speicherort, Sie müssen ihn ihrer .env-Datei hinzufügen. Wenn der Ordner beispielsweise „db“ heißt und sich im gleichen Ordner wie die
docker-compose
-Datei befindet, lautet der Eintrag in der ENV-Datei DB_MOUNT_PATH="./db"
.
Erstellen einer Umgebungsdatei
Geben Sie dieser Datei den Namen .env.
Deklarieren Sie die folgenden Umgebungsvariablen:
SHARED_MOUNT_PATH="./share"
OUTPUT_MOUNT_PATH="./output"
FILE_MOUNT_PATH="./files"
DB_MOUNT_PATH="./db"
FORM_RECOGNIZER_ENDPOINT_URI="YourFormRecognizerEndpoint"
FORM_RECOGNIZER_KEY="YourFormRecognizerKey"
NGINX_CONF_FILE="./nginx.conf"
Erstellen einer nginx-Datei
Geben Sie dieser Datei den Namen nginx.conf.
Geben Sie die folgende Konfiguration ein:
worker_processes 1;
events { worker_connections 1024; }
http {
sendfile on;
client_max_body_size 90M;
upstream docker-custom {
server azure-cognitive-service-custom-template:5000;
}
upstream docker-layout {
server azure-cognitive-service-layout:5000;
}
server {
listen 5000;
location = / {
proxy_set_header Host $host:$server_port;
proxy_set_header Referer $scheme://$host:$server_port;
proxy_pass http://docker-custom/;
}
location /status {
proxy_pass http://docker-custom/status;
}
location /test {
return 200 $scheme://$host:$server_port;
}
location /ready {
proxy_pass http://docker-custom/ready;
}
location /swagger {
proxy_pass http://docker-custom/swagger;
}
location /formrecognizer/documentModels/prebuilt-layout {
proxy_set_header Host $host:$server_port;
proxy_set_header Referer $scheme://$host:$server_port;
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Headers' 'cache-control,content-type,ocp-apim-subscription-key,x-ms-useragent' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
add_header 'Access-Control-Expose-Headers' '*' always;
if ($request_method = 'OPTIONS') {
return 200;
}
proxy_pass http://docker-layout/formrecognizer/documentModels/prebuilt-layout;
}
location /formrecognizer/documentModels {
proxy_set_header Host $host:$server_port;
proxy_set_header Referer $scheme://$host:$server_port;
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Headers' 'cache-control,content-type,ocp-apim-subscription-key,x-ms-useragent' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE' always;
add_header 'Access-Control-Expose-Headers' '*' always;
if ($request_method = 'OPTIONS') {
return 200;
}
proxy_pass http://docker-custom/formrecognizer/documentModels;
}
location /formrecognizer/operations {
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Headers' 'cache-control,content-type,ocp-apim-subscription-key,x-ms-useragent' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE, PATCH' always;
add_header 'Access-Control-Expose-Headers' '*' always;
if ($request_method = OPTIONS ) {
return 200;
}
proxy_pass http://docker-custom/formrecognizer/operations;
}
}
}
Erstellen Sie die Datei docker compose
Geben Sie der Datei den Namen docker-compose.yml.
Das folgende Codebeispiel ist ein eigenständiges docker compose
-Beispiel zum gemeinsamen Ausführen der Dokument Intelligenz-Container für „Layout“, „Studio“ und „Benutzerdefinierte Vorlage“. Bei docker compose
verwenden Sie eine YAML-Datei, um die Dienste Ihrer Anwendung zu konfigurieren. Dann erstellen und starten Sie mit dem Befehl docker-compose up
alle Dienste aus Ihrer Konfiguration.
version: '3.3'
services:
nginx:
image: nginx:alpine
container_name: reverseproxy
depends_on:
- layout
- custom-template
volumes:
- ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf
ports:
- "5000:5000"
layout:
container_name: azure-cognitive-service-layout
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.1:latest
environment:
eula: accept
apikey: ${FORM_RECOGNIZER_KEY}
billing: ${FORM_RECOGNIZER_ENDPOINT_URI}
Logging:Console:LogLevel:Default: Information
SharedRootFolder: /shared
Mounts:Shared: /shared
Mounts:Output: /logs
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /shared
- type: bind
source: ${OUTPUT_MOUNT_PATH}
target: /logs
expose:
- "5000"
custom-template:
container_name: azure-cognitive-service-custom-template
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/custom-template-3.1:latest
restart: always
depends_on:
- layout
environment:
AzureCognitiveServiceLayoutHost: http://azure-cognitive-service-layout:5000
eula: accept
apikey: ${FORM_RECOGNIZER_KEY}
billing: ${FORM_RECOGNIZER_ENDPOINT_URI}
Logging:Console:LogLevel:Default: Information
SharedRootFolder: /shared
Mounts:Shared: /shared
Mounts:Output: /logs
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /shared
- type: bind
source: ${OUTPUT_MOUNT_PATH}
target: /logs
expose:
- "5000"
studio:
container_name: form-recognizer-studio
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/studio:3.0
environment:
ONPREM_LOCALFILE_BASEPATH: /onprem_folder
STORAGE_DATABASE_CONNECTION_STRING: /onprem_db/Application.db
volumes:
- type: bind
source: ${FILE_MOUNT_PATH} # path to your local folder
target: /onprem_folder
- type: bind
source: ${DB_MOUNT_PATH} # path to your local folder
target: /onprem_db
ports:
- "5001:5001"
user: "1000:1000" # echo $(id -u):$(id -g)
Der Container für benutzerdefinierte Vorlagen und der Layoutcontainer können Azure Storage-Warteschlangen oder Warteschlangen im Arbeitsspeicher verwenden. Die Umgebungsvariablen Storage:ObjectStore:AzureBlob:ConnectionString
und queue:azure:connectionstring
müssen nur festgelegt werden, wenn Sie Azure Storage-Warteschlangen verwenden. Wenn Sie lokal ausführen, löschen Sie diese Variablen.
Stellen Sie sicher, dass der Dienst ausgeführt wird
Stellen Sie sicher, dass der Dienst betriebsbereit ist, indem Sie diese Befehle in einer Ubuntu-Shell ausführen.
$cd <folder containing the docker-compose file>
$source .env
$docker-compose up
Die Container für „Benutzerdefinierte Vorlage“ erfordern einige unterschiedliche Konfigurationen und unterstützen weitere optionale Konfigurationen.
Einstellung |
Erforderlich |
Beschreibung |
EULA |
Ja |
Beispiel für die Lizenzakzeptanz: Eula=accept |
Abrechnung |
Ja |
Abrechnungsendpunkt-URI der FR-Ressource |
ApiKey |
Ja |
Der Endpunktschlüssel der FR-Ressource |
Queue:Azure:ConnectionString |
Nein |
Verbindungszeichenfolge der Azure-Warteschlange |
Storage:ObjectStore:AzureBlob:ConnectionString |
Nein |
Azure Blob-Verbindungszeichenfolge |
HealthCheck:MemoryUpperboundInMB |
Nein |
Arbeitsspeicherschwellenwert für die Meldung von fehlerhaft bis Live. Standard: Gleich wie der empfohlene Arbeitsspeicher |
StorageTimeToLiveInMinutes |
No |
TTL -Dauer zum Entfernen aller Zwischendateien und endgültigen Dateien. Standard: Zwei Tage, TTL kann zwischen fünf Minuten und sieben Tagen festgelegt werden |
Task:MaxRunningTimeSpanInMinutes |
Nein |
Maximale Laufzeit für die Behandlung von Anforderungen als Timeout. Standardwert: 60 Minuten |
HTTP_PROXY_BYPASS_URLS |
Nein |
Angeben von URLs zum Umgehen des Proxys, Beispiel: HTTP_PROXY_BYPASS_URLS = abc.com, xyz.com |
AzureCognitiveServiceReadHost (Nur Container für Beleg, ID-Dokument) |
Ja |
Angeben der Container-URI für „Lesen“, Example:AzureCognitiveServiceReadHost=http://onprem-frread:5000 |
AzureCognitiveServiceLayoutHost (Nur Container für „Dokument“, „Rechnung“) |
Ja |
Angeben der Container-URI für „Layout“ Example:AzureCognitiveServiceLayoutHost=http://onprem-frlayout:5000 |
Trainieren von Modellen mit Dokument Intelligenz Studio
Sammeln Sie eine Gruppe von mindestens fünf Formularen des gleichen Typs. Diese Daten verwenden Sie zum Trainieren des Modells und zum Testen eines Formulars. Sie können ein Beispieldataset verwenden (sample_data.zip herunterladen und extrahieren).
Nachdem Sie bestätigen können, dass die Container ausgeführt werden, öffnen Sie einen Browser, und navigieren Sie zu dem Endpunkt, auf dem Sie die Container bereitgestellt haben. Wenn es sich bei dieser Bereitstellung um Ihren lokalen Computer handelt, ist [http://localhost:5001](http://localhost:5001)
der Endpunkt .
Wählen Sie die Kachel „benutzerdefiniertes Extraktionsmodell“ aus.
Wählen Sie die Create project
-Option aus.
Angeben eines Projektnamens und optional einer Beschreibung
Geben Sie im Schritt „Ihre Ressource konfigurieren“ den Endpunkt für Ihr benutzerdefiniertes Vorlagenmodell an. Wenn Sie die Container auf Ihrem lokalen Computer bereitgestellt haben, verwenden Sie die URL [http://localhost:5000](http://localhost:5000)
.
Geben Sie einen Unterordner an, in dem sich Ihre Trainingsdaten im Ordner „Dateien“ befinden.
Erstellen Sie schließlich das Projekt
Sie sollten nun ein Projekt erstellt haben, das für das Bezeichnen bereit ist. Laden Sie Ihre Trainingsdaten hoch, und beginnen Sie mit dem Bezeichnen. Weitere Informationen zum Bezeichnen finden Sie unter Erstellen und Trainieren eines benutzerdefinierten Modells.
Verwenden der API zum Trainieren
Wenn Sie die APIs direkt aufrufen möchten, um ein Modell zu trainieren, erfordert die API zum Trainieren des benutzerdefinierten Vorlagenmodells eine base64-codierte ZIP-Datei, die den Inhalt Ihres Bezeichnungsprojekts darstellt. Sie können die PDF- oder Bilddateien weglassen und nur die JSON-Dateien übermitteln.
Sobald Sie Ihr Dataset bezeichnet und *.ocr.json, *.labels.json und fields.json einer ZIP-Datei hinzugefügt haben, verwenden Sie die PowerShell-Befehle, um die base64-codierte Zeichenfolge zu generieren.
$bytes = [System.IO.File]::ReadAllBytes("<your_zip_file>.zip")
$b64String = [System.Convert]::ToBase64String($bytes, [System.Base64FormattingOptions]::None)
Verwenden Sie die API „Modell erstellen“, um die Anforderung zu posten.
POST http://localhost:5000/formrecognizer/documentModels:build?api-version=2023-07-31
{
"modelId": "mymodel",
"description": "test model",
"buildMode": "template",
"base64Source": "<Your base64 encoded string>",
"tags": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
Überprüfen Sie, ob der Dienst ausgeführt wird.
Es gibt mehrere Möglichkeiten zu überprüfen, ob ein Container aktiv ist:
Der Container stellt eine Homepage unter \
als visuelle Validierung zur Verfügung, dass der Container ausgeführt wird.
Sie können Ihren bevorzugten Webbrowser öffnen und zu der externen IP-Adresse und dem verfügbar gemachten Port des betreffenden Containers navigieren. Verwenden Sie die aufgeführten Anforderungs-URLs, um zu überprüfen, ob der Container ausgeführt wird. Die aufgeführten Beispiel-URLs für Anforderungen lauten http://localhost:5000
, aber Ihr spezifischer Container kann variieren. Denken Sie daran, dass Sie zur externen IP-Adresse Ihres Containers und zum verfügbar gemachten Port navigieren.
Anforderungs-URL |
Zweck |
http://localhost:5000/ |
Der Container stellt eine Startseite bereit. |
http://localhost:5000/ready |
Dies ermöglicht eine Überprüfung mit GET-Anforderung, dass der Container bereit ist, eine Abfrage des Modells zu akzeptieren. Diese Anforderung kann für Live- und Bereitschaftstests von Kubernetes verwendet werden. |
http://localhost:5000/status |
Dies ermöglicht auch eine Überprüfung mit GET-Anforderung, dass 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. |
|
|
Beenden der Container
Zum Beenden des Containers verwenden Sie den folgenden Befehl:
docker-compose down
Abrechnung
Die Dokument Intelligenz-Container senden Abrechnungsinformationen an Azure, indem sie eine Dokument Intelligenz-Ressource in Ihrem Azure-Konto verwenden.
Abfragen des Containers werden mit dem Tarif der Azure-Ressource abgerechnet, die für den API-Key
verwendet wird. Die Abrechnung wird für jede Containerinstanz berechnet, die zum Verarbeiten Ihrer Dokumente und Bilder verwendet wird.
Falls Sie folgenden Fehler erhalten: Container befindet sich nicht in einem gültigen Zustand. Fehler bei der Abonnementüberprüfung mit dem Status „OutOfQuota“ – API-Schlüssel hat das Kontingent überschritten. Dies ist ein Indikator, dass Ihre Container nicht mit dem Abrechnungsendpunkt kommunizieren.
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 für die Informationen, die für die Abrechnung an Microsoft gesendet werden, finden Sie in den Häufig gestellten Fragen (FAQ) zu Azure KI-Containern.
Abrechnungsargumente
Der Befehl docker-compose up startet den Container, wenn alle drei der folgenden Optionen über gültige Werte verfügen:
Option |
Beschreibung |
ApiKey |
Der Schlüssel der Azure KI Services-Ressource, der zum Nachverfolgen der Abrechnungsinformationen verwendet wird Der Wert dieser Option muss für die bereitgestellte Ressource, die in Billing angegeben wurde, auf einen Schlüssel festgelegt werden. |
Billing |
Der Endpunkt der Azure KI Services-Ressource, der zum Nachverfolgen der 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
Das ist alles! In diesem Artikel haben Sie die Konzepte und Workflows zum Herunterladen, Installieren und Ausführen von Dokument Intelligenz-Containern kennengelernt. Zusammenfassung:
- Dokument Intelligenz stellt sieben Linux-Container für Docker bereit.
- Containerimages werden aus der MCR heruntergeladen.
- Containerimages werden in Docker ausgeführt.
- Bei der Instanziierung eines Containers müssen Sie die 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