Sdílet prostřednictvím


Instalace a spuštění kontejnerů

Tento obsah se vztahuje na:Zaškrtnutív3.0 (GA)Zaškrtnutí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:

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í dockerterminologie a příkazů.
Nainstalovaný modul Dockeru
  • Potřebujete nainstalovaný Modul Dockeru na hostitelském počítači. Docker poskytuje balíčky, které nakonfigurují prostředí Dockeru v systému macOS, Windows a Linux. Základní informace o Dockeru a kontejnerech najdete v článku Docker Overview (Přehled Dockeru).
  • Docker musí být nakonfigurovaný tak, aby se kontejnery mohly připojit a odesílat fakturační data do Azure.
  • Ve Windows musí být Docker také nakonfigurovaný tak, aby podporoval kontejnery Linuxu .
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 :
  • {FORM_RECOGNIZER_KEY}: jeden ze dvou dostupných klíčů prostředků.
  • {FORM_RECOGNIZER_ENDPOINT_URI}: koncový bod prostředku použitého ke sledování fakturačních údajů.
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:

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í

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část docker compose příkazu nebo docker 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.

    Snímek obrazovky s klíči webu Azure Portal a stránkou koncového bodu

  • Ujistěte se, že je hodnota nastavená EULA na přijetí.

  • Hodnota EULAa BillingApiKey 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 composesouboru 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

  1. Pojmenujte tento soubor docker-compose.yml

  2. 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 composesouboru 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

  1. Pojmenujte tento soubor docker-compose.yml

  2. 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 composesouboru 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.

Snímek obrazovky s úvodní stránkou kontejnerů Azure

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.

Další kroky