Instalace a spuštění kontejnerů
Tento obsah se vztahuje na:v3.0 (GA)
v3.1 (GA)
Azure AI Document Intelligence je služba Azure AI, která umožňuje vytvářet automatizovaný software pro zpracování dat pomocí technologie strojového učení. Funkce Document Intelligence umožňuje identifikovat a extrahovat text, páry klíč/hodnota, značky výběru, data tabulky a další informace z dokumentů. Výsledky se doručují jako strukturovaná data, která .. /obsahuje relace v původním souboru. Kontejnery zpracovávají pouze data poskytnutá jim a využívají pouze prostředky, ke kterým mají přístup. Kontejnery nemůžou zpracovávat data z jiných oblastí.
V tomto článku se dozvíte, jak stahovat, instalovat a spouštět kontejnery Document Intelligence. Kontejnery umožňují spustit službu Document Intelligence ve vlastním prostředí. Kontejnery jsou skvělé pro splnění určitých požadavků na zabezpečení a zásady správného řízení dat.
Kontejnery Document Intelligence verze 3.1 podporují modely čtení, rozložení, dokumentu ID, potvrzení a faktury.
Kontejnery Document Intelligence v3.0 podporují čtení, rozložení, obecný dokument, vizitku a vlastní modely.
Podpora verzí
Podpora kontejnerů je aktuálně dostupná s verzí v3.0: 2022-08-31 (GA)
Document Intelligence pro všechny modely a v3.1 2023-07-31 (GA)
pro modely Čtení, Rozložení, DOKUMENT ID, Potvrzení a Faktury:
-
REST API
v3.0: 2022-08-31 (GA)
-
REST API
v3.1: 2023-07-31 (GA)
-
Cílení na klientské knihovny
REST API v3.0: 2022-08-31 (GA)
-
Cílení na klientské knihovny
REST API v3.1: 2023-07-31 (GA)
Požadavky
Abyste mohli začít, potřebujete aktivní účet Azure. Pokud žádné nemáte, můžete si vytvořit bezplatný účet.
K používání kontejnerů Document Intelligence potřebujete také následující:
Požaduje se | Účel |
---|---|
Znalost Dockeru | Měli byste mít základní znalosti konceptů Dockeru, jako jsou registry, úložiště, kontejnery a image kontejnerů, a také znalosti základní docker terminologie a příkazů. |
Nainstalovaný modul Dockeru |
|
Prostředek Document Intelligence | Jednoúčelový prostředek Azure AI Document Intelligence nebo více služeb na webu Azure Portal. Pokud chcete kontejnery používat, musíte mít přidružený klíč a identifikátor URI koncového bodu. Obě hodnoty jsou k dispozici na webu Azure Portal na stránce Klíče document Intelligence a koncový bod :
|
Volitelné | Účel |
---|---|
Azure CLI (rozhraní příkazového řádku) | Azure CLI umožňuje používat sadu online příkazů k vytváření a správě prostředků Azure. Je k dispozici pro instalaci v prostředích s Windows, macOS a Linuxem a dá se spouštět v kontejneru Dockeru a v Azure Cloud Shellu. |
Požadavky na hostitelský počítač
Hostitel je počítač založený na platformě x64, na kterém běží kontejner Dockeru. Může to být počítač v místním prostředí nebo hostitelská služba Dockeru v Azure, například:
- Azure Kubernetes Service.
- Azure Container Instances.
- Cluster Kubernetes nasazený do služby Azure Stack. Další informace najdete v tématu Nasazení Kubernetes do služby Azure Stack.
Poznámka:
Všimněte si, že kontejner studio nelze nasadit a spustit ve službě Azure Kubernetes Service. Kontejner Studio se podporuje jenom pro spuštění na místním počítači.
Požadavky na kontejnery a doporučení
Požadované podpůrné kontejnery
Následující tabulka uvádí jeden nebo více podpůrných kontejnerů pro každý kontejner Document Intelligence, který stáhnete. Další informace najdete v části Fakturace .
Kontejner funkcí | Podpůrné kontejnery |
---|---|
Přečíst | Nepovinné |
Rozložení | Nepovinné |
Vizitka | Přečíst |
Obecný dokument | Rozložení |
Faktura | Rozložení |
Paragon | Čtení nebo rozložení |
Dokument ID | Přečíst |
Vlastní šablona | Rozložení |
Doporučená jádra procesoru a paměť
Poznámka:
Minimální a doporučené hodnoty jsou založené na limitech Dockeru, nikoli na prostředcích hostitelského počítače.
Kontejnery Document Intelligence
Kontejner | Minimum | Doporučeno |
---|---|---|
Read |
8 jádra, 10 GB paměti |
8 jádra, 24 GB paměti |
Layout |
8 jádra, 16 GB paměti |
8 jádra, 24 GB paměti |
Business Card |
8 jádra, 16 GB paměti |
8 jádra, 24 GB paměti |
General Document |
8 jádra, 12 GB paměti |
8 jádra, 24 GB paměti |
ID Document |
8 jádra, 8 GB paměti |
8 jádra, 24 GB paměti |
Invoice |
8 jádra, 16 GB paměti |
8 jádra, 24 GB paměti |
Receipt |
8 jádra, 11 GB paměti |
8 jádra, 24 GB paměti |
Custom Template |
8 jádra, 16 GB paměti |
8 jádra, 24 GB paměti |
- Každé jádro musí mít alespoň 2,6 gigahertz (GHz) nebo rychlejší.
- Jádro a paměť odpovídají
--cpus
nastavením,--memory
které se používají jako součástdocker compose
příkazu nebodocker run
příkazu.
Tip
K výpisu stažených imagí kontejnerů můžete použít příkaz docker images . Následující příkaz například vypíše ID, úložiště a značku každé stažené image kontejneru, která je formátovaná jako tabulka:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Spuštění kontejneru pomocí příkazu docker-compose up
Nahraďte hodnoty {ENDPOINT_URI} a {API_KEY} identifikátorem URI koncového bodu prostředku a klíčem ze stránky prostředku Azure.
Ujistěte se, že je hodnota nastavená
EULA
na přijetí.Hodnota
EULA
aBilling
ApiKey
hodnoty musí být zadány. V opačném případě nelze kontejner spustit.
Důležité
Klíče se používají pro přístup k vašemu prostředku Document Intelligence. Své klíče s nikým nesdílejte. Ukládejte je bezpečně, například pomocí služby Azure Key Vault. Doporučujeme je také pravidelně obnovovat. K volání rozhraní API je nutný jenom jeden klíč. Během obnovování prvního klíče můžete pro nepřerušený přístup ke službě použít druhý klíč.
Následující ukázka kódu je samostatný docker compose
příklad pro spuštění kontejneru Document Intelligence Layout. Pomocí docker compose
souboru YAML nakonfigurujete služby vaší aplikace pomocí souboru YAML. Potom pomocí docker-compose up
příkazu vytvoříte a spustíte všechny služby z vaší konfigurace. Zadejte hodnoty {FORM_RECOGNIZER_ENDPOINT_URI} a {FORM_RECOGNIZER_KEY} pro instanci kontejneru layout.
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
Teď můžete službu spustit pomocí příkazu docker compose :
docker-compose up
Vytvoření souboru docker compose
Pojmenujte tento soubor docker-compose.yml
Následující ukázka kódu je samostatný
docker compose
příklad pro společné spouštění kontejnerů šablon Document Intelligence Layout, Studio a Custom Template. Pomocídocker compose
souboru YAML nakonfigurujete služby vaší aplikace pomocí souboru YAML. Pak pomocídocker-compose up
příkazu vytvoříte a spustíte všechny služby z vaší konfigurace.
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.0:latest
environment:
eula: accept
apikey: ${FORM_RECOGNIZER_KEY}
billing: ${FORM_RECOGNIZER_ENDPOINT_URI}
Logging:Console:LogLevel:Default: Information
SharedRootFolder: /share
Mounts:Shared: /share
Mounts:Output: /logs
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /share
- 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.0: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: /share
Mounts:Shared: /share
Mounts:Output: /logs
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /share
- 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)
Vytvoření souboru docker compose
Pojmenujte tento soubor docker-compose.yml
Následující ukázka kódu je samostatný
docker compose
příklad pro společné spouštění kontejnerů šablon Document Intelligence Layout, Studio a Custom Template. Pomocídocker compose
souboru YAML nakonfigurujete služby vaší aplikace pomocí souboru YAML. Pak pomocídocker-compose up
příkazu vytvoříte a spustíte všechny služby z vaší konfigurace.
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: /share
Mounts:Shared: /share
Mounts:Output: /logs
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /share
- 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: /share
Mounts:Shared: /share
Mounts:Output: /logs
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /share
- 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.1
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)
Kontejner vlastních šablon a kontejner rozložení může používat fronty Azure Storage nebo ve frontách paměti. Proměnné Storage:ObjectStore:AzureBlob:ConnectionString
prostředí a queue:azure:connectionstring
proměnné prostředí je potřeba nastavit jenom v případě, že používáte fronty Azure Storage. Při místním spuštění odstraňte tyto proměnné.
Ujistěte se, že je služba spuštěná.
Abyste zajistili, že je služba spuštěná a spuštěná. Tyto příkazy spusťte v prostředí Ubuntu.
$cd <folder containing the docker-compose file>
$source .env
$docker-compose up
Kontejnery vlastních šablon vyžadují několik různých konfigurací a podporují další volitelné konfigurace.
Nastavení | Požadováno | Popis |
---|---|---|
EULA |
Ano | Příklad přijetí licence: Eula=accept |
Fakturace | Ano | Identifikátor URI koncového bodu fakturace prostředku FR |
ApiKey | Ano | Klíč koncového bodu prostředku FR |
Queue:Azure:ConnectionString | No | Azure Queue připojovací řetězec |
Storage:ObjectStore:AzureBlob:ConnectionString | No | Azure Blob připojovací řetězec |
HealthCheck:MemoryUpperboundInMB | No | Prahová hodnota paměti pro hlášení, že stav života není v pořádku. Výchozí: Stejná jako doporučená paměť |
StorageTimeToLiveInMinutes | No |
TTL doba trvání pro odebrání všech dočasných a konečných souborů. Výchozí nastavení: Dva dny, TTL může být nastaveno mezi pěti minut a sedmi dny. |
Úkol:MaxRunningTimeSpanInMinutes | No | Maximální doba běhu pro zpracování požadavku jako časového limitu Výchozí hodnota: 60 minut |
HTTP_PROXY_BYPASS_URLS | No | Zadejte adresy URL pro obejití příkladu proxy serveru: HTTP_PROXY_BYPASS_URLS = abc.com, xyz.com |
AzureCognitiveServiceReadHost (účtenka, pouze kontejnery IdDocument) | Ano | Zadání identifikátoru URI kontejneru pro čtení: AzureCognitiveServiceReadHost=http://onprem-frread:5000 |
AzureCognitiveServiceLayoutHost (pouze dokument, kontejnery faktur) | Ano | Určení kontejneru rozložení uri Example:AzureCognitiveServiceLayoutHost=http://onprem-frlayout:5000 |
Trénování modelu pomocí nástroje Document Intelligence Studio
Shromážděte sadu alespoň pěti forem stejného typu. Tato data použijete k trénování modelu a otestování formuláře. Můžete použít ukázkovou datovou sadu (stažení a extrakce sample_data.zip).
Jakmile můžete ověřit, že kontejnery běží, otevřete prohlížeč a přejděte do koncového bodu, ve kterém máte nasazené kontejnery. Pokud je toto nasazení vaším místním počítačem, koncový bod je
[http://localhost:5001](http://localhost:5001)
.Vyberte dlaždici vlastního modelu extrakce.
Create project
Vyberte možnost.Zadejte název projektu a volitelně i popis.
V kroku Konfigurace prostředku zadejte koncový bod vašemu vlastnímu modelu šablony. Pokud jste kontejnery nasadili na místní počítač, použijte tuto adresu URL
[http://localhost:5000](http://localhost:5000)
.Zadejte podsložku pro umístění trénovacích dat ve složce souborů.
Nakonec vytvořte projekt.
Teď byste měli mít vytvořený projekt připravený k označování. Nahrajte trénovací data a začněte popisovat. Pokud s popisováním začínáte, podívejte se na sestavení a trénování vlastního modelu.
Trénovat pomocí rozhraní API
Pokud plánujete volat rozhraní API přímo pro trénování modelu, rozhraní API pro trénování vlastního modelu šablony vyžaduje soubor ZIP s kódováním Base64, který je obsahem projektu označování. Soubory PDF nebo obrázku můžete vynechat a odeslat pouze soubory JSON.
Jakmile máte datovou sadu označenou a *.ocr.json, *.labels.json a fields.json soubory přidané do souboru ZIP, vygenerujte řetězec kódovaný pomocí příkazů PowerShellu.
$bytes = [System.IO.File]::ReadAllBytes("<your_zip_file>.zip")
$b64String = [System.Convert]::ToBase64String($bytes, [System.Base64FormattingOptions]::None)
K odeslání požadavku použijte rozhraní API modelu sestavení.
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"
}
}
Ověřte, že je služba spuštěná.
Existuje několik způsobů, jak ověřit, že je kontejner spuštěný:
Kontejner poskytuje domovskou stránku
\
jako vizuální ověření, že kontejner běží.Můžete otevřít oblíbený webový prohlížeč a přejít na externí IP adresu a vystavený port kontejneru. Pomocí uvedených adres URL požadavků ověřte, že kontejner běží. Uvedené ukázkové adresy URL požadavků jsou
http://localhost:5000
, ale váš konkrétní kontejner se může lišit. Mějte na paměti, že přejdete na externí IP adresu kontejneru a vystavený port.Adresa URL požadavku Účel http:// localhost:5000/ Kontejner poskytuje domovskou stránku. http:// localhost:5000/ready Požadavek get, tento požadavek poskytuje ověření, že kontejner je připraven přijmout dotaz na model. Tento požadavek je možné použít pro sondy připravenosti a aktivity Kubernetes. http:// localhost:5000/status Požadavek pomocí příkazu GET tento požadavek ověří, jestli je klíč api-key použitý ke spuštění kontejneru platný, aniž by způsoboval dotaz koncového bodu. Tento požadavek je možné použít pro sondy připravenosti a aktivity Kubernetes. http:// localhost:5000/swagger V kontejneru je ke koncovým bodům a k funkci Vyzkoušet kompletní dokumentace. Pomocí této funkce můžete zadat nastavení do webového formuláře HTML a vytvořit dotaz, aniž byste museli psát žádný kód. Po vrácení dotazu se zobrazí ukázkový příkaz CURL, který předvede požadované hlavičky HTTP a základní formát.
Zastavení kontejnerů
Pokud chcete kontejnery zastavit, použijte následující příkaz:
docker-compose down
Fakturace
Kontejnery Document Intelligence odesílají fakturační údaje do Azure pomocí prostředku Document Intelligence na vašem účtu Azure.
Dotazy na kontejner se účtují na cenové úrovni prostředku Azure používaného pro rozhraní API Key
. Fakturace se vypočítá pro každou instanci kontejneru, která se používá ke zpracování dokumentů a obrázků.
Pokud se zobrazí následující chyba: Kontejner není v platném stavu. Ověření předplatného selhalo se stavem OutOfQuota, klíč rozhraní API je mimo kvótu. Je to indikátor, že vaše kontejnery nekomuneruje s koncovým bodem fakturace.
Připojení k Azure
Kontejner potřebuje ke spuštění hodnoty fakturačních argumentů. Tyto hodnoty umožňují kontejneru připojit se ke koncovému bodu fakturace. Kontejner hlásí využití přibližně každých 10 až 15 minut. Pokud se kontejner v povoleném časovém intervalu nepřipojí k Azure, kontejner se bude dál spouštět, ale nebude obsluhovat dotazy, dokud se neobnoví koncový bod fakturace. Připojení se pokouší 10krát ve stejném časovém intervalu 10 až 15 minut. Pokud se během 10 pokusů nemůže připojit ke koncovému bodu fakturace, kontejner přestane obsluhovat požadavky. Příklad informací odeslaných Microsoftu pro fakturaci najdete v nejčastějších dotazech ke kontejneru Azure AI.
Argumenty fakturace
Příkaz docker-compose up spustí kontejner, když jsou k dispozici všechny tři z následujících možností s platnými hodnotami:
Možnost | Popis |
---|---|
ApiKey |
Klíč prostředku služeb Azure AI, který se používá ke sledování fakturačních údajů. Hodnota této možnosti musí být nastavena na klíč pro zřízený prostředek zadaný v Billing . |
Billing |
Koncový bod prostředku služeb Azure AI, který se používá ke sledování fakturačních údajů. Hodnota této možnosti musí být nastavená na identifikátor URI koncového bodu zřízeného prostředku Azure. |
Eula |
Označuje, že jste přijali licenci pro kontejner. Hodnota této možnosti musí být nastavena tak, aby přijímala. |
Další informace o těchto možnostech najdete v tématu Konfigurace kontejnerů.
Shrnutí
A je to! V tomto článku jste se seznámili s koncepty a pracovními postupy pro stahování, instalaci a spouštění kontejnerů Document Intelligence. Souhrnně:
- Document Intelligence poskytuje sedm linuxových kontejnerů pro Docker.
- Image kontejnerů se stáhnou z mcr.
- Image kontejnerů se spouštějí v Dockeru.
- Při vytváření instance kontejneru je nutné zadat fakturační údaje.
Důležité
Kontejnery Azure AI nemají licenci ke spuštění bez připojení k Azure pro měření. Zákazníci musí kontejnerům umožnit, aby vždy komunikují s fakturačními údaji se službou měření. Kontejnery Azure AI neodesílají zákaznická data (například obrázek nebo text analyzovaný) do Microsoftu.