Instalowanie i uruchamianie kontenerów
Ta zawartość dotyczy:wersja 3.0 (ogólna dostępność)
w wersji 3.1 (ogólna dostępność)
Azure AI Document Intelligence to usługa azure AI, która umożliwia tworzenie zautomatyzowanego oprogramowania do przetwarzania danych przy użyciu technologii uczenia maszynowego. Analiza dokumentów umożliwia identyfikowanie i wyodrębnianie tekstu, par klucz/wartość, znaczniki wyboru, dane tabeli i nie tylko z dokumentów. Wyniki są dostarczane jako dane ustrukturyzowane, które .. /zawiera relacje w oryginalnym pliku. Kontenery przetwarzają tylko podane im dane i korzystają wyłącznie z zasobów, do których mają dostęp. Kontenery nie mogą przetwarzać danych z innych regionów.
Z tego artykułu dowiesz się, jak pobierać, instalować i uruchamiać kontenery analizy dokumentów. Kontenery umożliwiają uruchamianie usługi Analizy dokumentów we własnym środowisku. Kontenery doskonale nadają się do określonych wymagań w zakresie zabezpieczeń i zarządzania danymi.
Modele odczytu, układu, identyfikatora dokumentu, paragonu i faktury są obsługiwane przez kontenery analizy dokumentów w wersji 3.1.
Kontenery Read, Layout, General Document, Business Card i Custom są obsługiwane przez kontenery analizy dokumentów w wersji 3.0.
Obsługa wersji
Obsługa kontenerów jest obecnie dostępna w wersji v3.0: 2022-08-31 (GA)
analizy dokumentów dla wszystkich modeli oraz v3.1 2023-07-31 (GA)
modeli odczytu, układu, dokumentu identyfikatora, paragonu i faktury:
-
INTERFEJS API REST
v3.0: 2022-08-31 (GA)
-
INTERFEJS API REST
v3.1: 2023-07-31 (GA)
-
Określanie elementów docelowych bibliotek klienckich
REST API v3.0: 2022-08-31 (GA)
-
Określanie elementów docelowych bibliotek klienckich
REST API v3.1: 2023-07-31 (GA)
Wymagania wstępne
Do rozpoczęcia pracy potrzebne jest aktywne konto platformy Azure. Jeśli nie masz, możesz utworzyć bezpłatne konto.
Do korzystania z kontenerów analizy dokumentów potrzebne są również następujące elementy:
Wymagania | Purpose |
---|---|
Znajomość platformy Docker | Musisz mieć podstawową wiedzę na temat pojęć związanych z platformą Docker, takich jak rejestry, repozytoria, kontenery i obrazy kontenerów, a także znajomość podstawowej docker terminologii i poleceń. |
Zainstalowany aparat platformy Docker |
|
Zasób analizy dokumentów | Usługa Azure AI Document Intelligence lub zasób z wieloma usługami w witrynie Azure Portal. Aby korzystać z kontenerów, musisz mieć skojarzony klucz i identyfikator URI punktu końcowego. Obie wartości są dostępne na stronie Klucze analizy dokumentów i punkt końcowy w witrynie Azure Portal:
|
Opcjonalnie | Purpose |
---|---|
Interfejs wiersza polecenia platformy Azure (interfejs wiersza polecenia) | Interfejs wiersza polecenia platformy Azure umożliwia tworzenie zasobów platformy Azure i zarządzanie nimi za pomocą zestawu poleceń online. Jest ona dostępna do zainstalowania w środowiskach systemu Windows, macOS i Linux oraz może być uruchamiana w kontenerze platformy Docker i usłudze Azure Cloud Shell. |
Wymagania dotyczące komputera hosta
Host to komputer oparty na architekturze x64 z uruchomionym kontenerem platformy Docker. Może to być komputer lokalny lub usługa hostingu platformy Docker na platformie Azure, taka jak:
- Azure Kubernetes Service.
- Azure Container Instances.
- Klaster Kubernetes wdrożony w usłudze Azure Stack. Aby uzyskać więcej informacji, zobacz Wdrażanie rozwiązania Kubernetes w usłudze Azure Stack.
Uwaga
Należy pamiętać, że nie można wdrożyć i uruchomić kontenera studio w usłudze Azure Kubernetes Service. Kontener studio jest obsługiwany tylko do uruchamiania na komputerze lokalnym.
Wymagania i zalecenia dotyczące kontenerów
Wymagane kontenery pomocnicze
W poniższej tabeli wymieniono co najmniej jeden kontener pomocniczy dla każdego pobranego kontenera analizy dokumentów. Aby uzyskać więcej informacji, zobacz sekcję Rozliczenia .
Kontener funkcji | Obsługa kontenerów |
---|---|
Przeczytaj | Niewymagane |
Układ | Niewymagane |
Wizytówka | Przeczytaj |
Dokument ogólny | Układ |
Faktura | Układ |
Paragon | Odczyt lub układ |
Identyfikator dokumentu | Przeczytaj |
Szablon niestandardowy | Układ |
Zalecane rdzenie procesora CPU i pamięć
Uwaga
Minimalne i zalecane wartości są oparte na limitach platformy Docker, a nie na zasobach maszyny hosta.
Kontenery analizy dokumentów
Kontener | Minimum | Zalecane |
---|---|---|
Read |
8 rdzenie, pamięć 10 GB |
8 rdzenie, pamięć 24 GB |
Layout |
8 rdzenie, 16 GB pamięci |
8 rdzenie, pamięć 24 GB |
Business Card |
8 rdzenie, 16 GB pamięci |
8 rdzenie, pamięć 24 GB |
General Document |
8 rdzenie, pamięć 12 GB |
8 rdzenie, pamięć 24 GB |
ID Document |
8 rdzenie, 8 GB pamięci |
8 rdzenie, pamięć 24 GB |
Invoice |
8 rdzenie, 16 GB pamięci |
8 rdzenie, pamięć 24 GB |
Receipt |
8 rdzenie, 11 GB pamięci |
8 rdzenie, pamięć 24 GB |
Custom Template |
8 rdzenie, 16 GB pamięci |
8 rdzenie, pamięć 24 GB |
- Każdy rdzeń musi być co najmniej 2,6 gigahertz (GHz) lub szybszy.
- Rdzeń i pamięć odpowiadają
--cpus
ustawieniu i--memory
, które są używane w ramachdocker compose
polecenia lubdocker run
.
Napiwek
Możesz użyć polecenia docker images , aby wyświetlić listę pobranych obrazów kontenerów. Na przykład następujące polecenie wyświetla identyfikator, repozytorium i tag każdego pobranego obrazu kontenera sformatowane jako tabela:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Uruchamianie kontenera za pomocą polecenia docker-compose up
Zastąp wartości {ENDPOINT_URI} i {API_KEY} identyfikatorem URI punktu końcowego zasobu oraz kluczem ze strony zasobu platformy Azure.
Upewnij się, że wartość jest ustawiona
EULA
na akceptowanie.EULA
Należy określić wartości ,Billing
iApiKey
. W przeciwnym razie nie można uruchomić kontenera.
Ważne
Klucze są używane do uzyskiwania dostępu do zasobu analizy dokumentów. Nie udostępniaj swoich kluczy. Przechowuj je bezpiecznie, na przykład przy użyciu usługi Azure Key Vault. Zalecamy również regularne ponowne generowanie tych kluczy. Tylko jeden klucz jest wymagany do wykonania wywołania interfejsu API. Podczas ponownego generowania pierwszego klucza można używać drugiego klucza, aby nadal uzyskiwać dostęp do usługi.
- Przeczytaj
- Dokument ogólny
- Układ
- Faktura
- Paragon
- Identyfikator dokumentu
- Wizytówka
- Okres niestandardowy
Poniższy przykładowy kod jest przykładem samodzielnego docker compose
uruchamiania kontenera układu analizy dokumentów. Za pomocą docker compose
polecenia użyjesz pliku YAML, aby skonfigurować usługi aplikacji. Następnie za docker-compose up
pomocą polecenia utworzysz i uruchomisz wszystkie usługi z konfiguracji. Wprowadź wartości {FORM_RECOGNIZER_ENDPOINT_URI} i {FORM_RECOGNIZER_KEY} dla wystąpienia kontenera układu.
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
Teraz możesz uruchomić usługę za pomocą polecenia docker compose :
docker-compose up
Tworzenie pliku docker compose
Nadaj temu plikowi nazwę docker-compose.yml
Poniższy przykładowy kod jest przykładem samodzielnego
docker compose
uruchamiania razem kontenerów układu analizy dokumentów, programu Studio i szablonu niestandardowego. Za pomocądocker compose
polecenia użyjesz pliku YAML, aby skonfigurować usługi aplikacji. Następnie za pomocądocker-compose up
polecenia utworzysz i uruchomisz wszystkie usługi z poziomu konfiguracji.
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)
Tworzenie pliku docker compose
Nadaj temu plikowi nazwę docker-compose.yml
Poniższy przykładowy kod jest przykładem samodzielnego
docker compose
uruchamiania razem kontenerów układu analizy dokumentów, programu Studio i szablonu niestandardowego. Za pomocądocker compose
polecenia użyjesz pliku YAML, aby skonfigurować usługi aplikacji. Następnie za pomocądocker-compose up
polecenia utworzysz i uruchomisz wszystkie usługi z poziomu konfiguracji.
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)
Kontener szablonu niestandardowego i kontener układu mogą używać kolejek usługi Azure Storage lub w kolejkach pamięci.
Storage:ObjectStore:AzureBlob:ConnectionString
Zmienne środowiskowe i queue:azure:connectionstring
muszą być ustawiane tylko w przypadku korzystania z kolejek usługi Azure Storage. W przypadku uruchamiania lokalnego usuń te zmienne.
Upewnij się, że usługa jest uruchomiona
Aby upewnić się, że usługa jest uruchomiona. Uruchom te polecenia w powłoce systemu Ubuntu.
$cd <folder containing the docker-compose file>
$source .env
$docker-compose up
Kontenery szablonów niestandardowych wymagają kilku różnych konfiguracji i obsługują inne opcjonalne konfiguracje.
Ustawienie | Wymagania | opis |
---|---|---|
EULA |
Tak | Przykład akceptacji licencji: Eula=accept |
Rozliczenia | Tak | Identyfikator URI punktu końcowego rozliczeń zasobu usługi FR |
ApiKey | Tak | Klucz punktu końcowego zasobu usługi FR |
Queue:Azure:ConnectionString | Nie. | Parametry połączenia kolejki platformy Azure |
Storage:ObjectStore:AzureBlob:ConnectionString | Nie. | Parametry połączenia obiektów blob platformy Azure |
HealthCheck:MemoryUpperboundInMB | Nie. | Próg pamięci dla raportowania złej kondycji dla utrzymania. Wartość domyślna: taka sama jak zalecana pamięć |
StorageTimeToLiveInMinutes | Nie. |
TTL czas trwania usuwania wszystkich plików pośrednich i końcowych. Ustawienie domyślne: Dwa dni TTL można ustawić od pięciu minut do siedmiu dni |
Zadanie:MaxRunningTimeSpanInMinutes | Nie. | Maksymalny czas wykonywania dla traktowania żądania jako limitu czasu. Ustawienie domyślne: 60 minut |
HTTP_PROXY_BYPASS_URLS | Nie. | Określ adresy URL dla pomijania serwera proxy Przykład: HTTP_PROXY_BYPASS_URLS = abc.com, xyz.com |
AzureCognitiveServiceReadHost (paragon, tylko kontenery IdDocument) | Tak | Określ identyfikator URI kontenera odczytu— przykład: AzureCognitiveServiceReadHost=http://onprem-frread:5000 |
AzureCognitiveServiceLayoutHost (tylko dokument, kontenery faktur) | Tak | Określ identyfikator URI kontenera układu: AzureCognitiveServiceLayoutHost=http://onprem-frlayout:5000 |
Trenowanie modelu za pomocą programu Document Intelligence Studio
Zbierz zestaw co najmniej pięciu formularzy tego samego typu. Te dane służą do trenowania modelu i testowania formularza. Możesz użyć przykładowego zestawu danych (pobierz i wyodrębnij sample_data.zip).
Po potwierdzeniu, że kontenery są uruchomione, otwórz przeglądarkę i przejdź do punktu końcowego, w którym wdrożono kontenery. Jeśli to wdrożenie jest maszyną lokalną, punkt końcowy to
[http://localhost:5001](http://localhost:5001)
.Wybierz kafelek niestandardowego modelu wyodrębniania.
Create project
Wybierz opcję.Podaj nazwę projektu i opcjonalnie opis
W kroku "Skonfiguruj zasób" podaj punkt końcowy dla niestandardowego modelu szablonu. Jeśli kontenery zostały wdrożone na komputerze lokalnym, użyj tego adresu URL
[http://localhost:5000](http://localhost:5000)
.Podaj podfolder miejsca, w którym znajdują się dane szkoleniowe w folderze plików.
Na koniec utwórz projekt
Teraz powinien zostać utworzony projekt gotowy do etykietowania. Przekaż dane szkoleniowe i rozpocznij etykietowanie. Jeśli dopiero zaczynasz etykietowanie, zobacz Tworzenie i trenowanie modelu niestandardowego.
Trenowanie przy użyciu interfejsu API
Jeśli planujesz wywołać interfejsy API bezpośrednio w celu wytrenowania modelu, niestandardowy interfejs API trenowania modelu szablonu wymaga zakodowanego w formacie base64 pliku zip, który jest zawartością projektu etykietowania. Możesz pominąć pliki PDF lub obrazy i przesłać tylko pliki JSON.
Gdy zestaw danych jest oznaczony etykietą i *.ocr.json, *.labels.json i pliki fields.json dodane do pliku zip, użyj poleceń programu PowerShell, aby wygenerować ciąg zakodowany w formacie base64.
$bytes = [System.IO.File]::ReadAllBytes("<your_zip_file>.zip")
$b64String = [System.Convert]::ToBase64String($bytes, [System.Base64FormattingOptions]::None)
Użyj interfejsu API modelu kompilacji, aby opublikować żądanie.
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"
}
}
Sprawdź, czy usługa jest uruchomiona
Istnieje kilka sposobów sprawdzania, czy kontener jest uruchomiony:
Kontener udostępnia stronę główną w
\
postaci wizualnej weryfikacji uruchomionej kontenera.Możesz otworzyć ulubioną przeglądarkę internetową i przejść do zewnętrznego adresu IP i uwidocznić port danego kontenera. Użyj wymienionych adresów URL żądań, aby zweryfikować, czy kontener jest uruchomiony. Wymienione przykładowe adresy URL żądań to
http://localhost:5000
, ale określony kontener może się różnić. Pamiętaj, że przechodzisz do zewnętrznego adresu IP kontenera i uwidaczniasz port.Adres URL żądania Purpose http:// localhost:5000/ Kontener zawiera stronę główną. http:// localhost:5000/ready Żądanie get zapewnia weryfikację, że kontener jest gotowy do akceptowania zapytania względem modelu. To żądanie może służyć do sond gotowości i gotowości platformy Kubernetes. http:// localhost:5000/status Zażądano polecenia GET. To żądanie sprawdza, czy klucz api-key używany do uruchamiania kontenera jest prawidłowy bez powodowania zapytania punktu końcowego. To żądanie może służyć do sond gotowości i gotowości platformy Kubernetes. http:// localhost:5000/swagger Kontener zawiera pełen zestaw dokumentacji dla punktów końcowych oraz funkcję Wypróbuj. Dzięki tej funkcji możesz wprowadzić ustawienia w formularzu HTML opartym na sieci Web i utworzyć zapytanie bez konieczności pisania kodu. Po powrocie zapytania zostanie udostępnione przykładowe polecenie CURL, aby zademonstrować wymagane nagłówki HTTP i format treści.
Zatrzymywanie kontenerów
Aby zatrzymać kontenery, użyj następującego polecenia:
docker-compose down
Rozliczenia
Kontenery analizy dokumentów wysyłają informacje rozliczeniowe na platformę Azure przy użyciu zasobu analizy dokumentów na koncie platformy Azure.
Zapytania do kontenera są rozliczane w warstwie cenowej zasobu platformy Azure używanego dla interfejsu API Key
. Rozliczenia są obliczane dla każdego wystąpienia kontenera używanego do przetwarzania dokumentów i obrazów.
Jeśli wystąpi następujący błąd: Kontener nie jest w prawidłowym stanie. Sprawdzanie poprawności subskrypcji nie powiodło się, a stan "OutOfQuota" interfejsu API jest poza limitem przydziału. Jest to wskaźnik, że kontenery nie są komunikacją z punktem końcowym rozliczeń.
Łączenie się z platformą Azure
Do uruchomienia kontenera potrzebne są wartości argumentów rozliczeniowych. Te wartości umożliwiają kontenerowi łączenie się z punktem końcowym rozliczeń. Kontener raportuje użycie co około 10 do 15 minut. Jeśli kontener nie łączy się z platformą Azure w dozwolonym przedziale czasu, kontener będzie nadal działać, ale nie obsługuje zapytań, dopóki punkt końcowy rozliczeń nie zostanie przywrócony. Próba nawiązania połączenia jest podejmowana 10 razy w tym samym przedziale czasu od 10 do 15 minut. Jeśli nie może nawiązać połączenia z punktem końcowym rozliczeń w ciągu 10 prób, kontener przestanie obsługiwać żądania. Zobacz Często zadawane pytania dotyczące kontenera usługi Azure AI, aby uzyskać przykład informacji wysyłanych do firmy Microsoft na potrzeby rozliczeń.
Argumenty rozliczeniowe
Polecenie docker-compose up uruchamia kontener, gdy wszystkie trzy z następujących opcji są dostarczane z prawidłowymi wartościami:
Opcja | Opis |
---|---|
ApiKey |
Klucz zasobu usług Azure AI używany do śledzenia informacji rozliczeniowych. Wartość tej opcji musi być ustawiona na klucz dla zaaprowizowanego zasobu określonego w Billing pliku . |
Billing |
Punkt końcowy zasobu usług AI platformy Azure używany do śledzenia informacji rozliczeniowych. Wartość tej opcji musi być ustawiona na identyfikator URI punktu końcowego aprowizowanego zasobu platformy Azure. |
Eula |
Wskazuje, że zaakceptowano licencję dla kontenera. Wartość tej opcji należy ustawić tak, aby akceptowała. |
Aby uzyskać więcej informacji na temat tych opcji, zobacz Konfigurowanie kontenerów.
Podsumowanie
I już! W tym artykule przedstawiono pojęcia i przepływy pracy dotyczące pobierania, instalowania i uruchamiania kontenerów analizy dokumentów. Podsumowując:
- Analiza dokumentów udostępnia siedem kontenerów systemu Linux dla platformy Docker.
- Obrazy kontenerów są pobierane z mcr.
- Obrazy kontenerów są uruchamiane na platformie Docker.
- Informacje o rozliczeniach należy określić podczas tworzenia wystąpienia kontenera.
Ważne
Kontenery sztucznej inteligencji platformy Azure nie mają licencji na uruchamianie bez nawiązywania połączenia z platformą Azure na potrzeby pomiaru użytkowania. Klienci muszą umożliwić kontenerom komunikowanie informacji rozliczeniowych z usługą pomiarów przez cały czas. Kontenery sztucznej inteligencji platformy Azure nie wysyłają danych klientów (na przykład obrazu lub tekstu analizowanego) do firmy Microsoft.