Установка и запуск контейнеров
Это содержимое относится к: версии 3.0 (GA)
версии 3.1 (GA)
Аналитика документов Azure — это служба ИИ Azure, которая позволяет создавать автоматизированное программное обеспечение для обработки данных с помощью технологии машинного обучения. Аналитика документов позволяет выявлять и извлекать текст, пары "ключ-значение", метки выделения, табличные данные и многое другое из документов. Результаты предоставляются в виде структурированных данных, которые .. /включает связи в исходном файле. Контейнеры обрабатывают только предоставленные им данные и используют только те ресурсы, к которых они могут получить доступ. Контейнеры не могут обрабатывать данные из других регионов.
В этой статье вы узнаете, как скачать, установить и запустить контейнеры аналитики документов. Контейнеры позволяют запускать службу аналитики документов в собственной среде. Контейнеры соответствуют конкретным требованиям к безопасности и управлению данными.
Модели чтения, макета, документа идентификатора, квитанции и счета поддерживаются контейнерами Аналитики документов версии 3.1.
Модели чтения, макета, общего документа, визитной карточки и пользовательских моделей поддерживаются контейнерами Аналитики документов версии 3.0.
Поддерживаемые версии
Поддержка контейнеров в настоящее время доступна в версии v3.0: 2022-08-31 (GA)
Аналитики документов для всех моделей и v3.1 2023-07-31 (GA)
для моделей чтения, макета, документа идентификатора, квитанции и счета:
-
REST API
v3.0: 2022-08-31 (GA)
-
REST API
v3.1: 2023-07-31 (GA)
-
Целевые клиентские библиотеки
REST API v3.0: 2022-08-31 (GA)
-
Целевые клиентские библиотеки
REST API v3.1: 2023-07-31 (GA)
Необходимые компоненты
Чтобы приступить к работе, требуется активная учетная запись Azure. Если ее нет, можно создать бесплатную учетную запись.
Для использования контейнеров аналитики документов также требуется следующее:
Обязательное поле | Характер использования |
---|---|
Знакомство с Docker | У вас должно быть базовое понимание концепций Docker, таких как реестры, репозитории, контейнеры и образы контейнеров, а также знание базовой docker терминологии и команд. |
Модуль Docker установлен |
|
Ресурс аналитики документов | Однослужба Azure AI Document Intelligence или ресурс с несколькими службами в портал Azure. Чтобы использовать контейнеры, необходимо иметь соответствующий ключ и универсальный код ресурса (URI) конечной точки. Оба значения доступны на странице портал Azure ключей аналитики документов и конечной точки:
|
Необязательно | Характер использования |
---|---|
Azure CLI (интерфейс командной строки) | Azure CLI позволяет использовать набор онлайн-команд для создания ресурсов Azure и управления ими. Интерфейс доступен для установки в средах Windows, macOS и Linux и может запускаться в контейнере Docker и в Azure Cloud Shell. |
Требования к компьютеру узла
Узел — это 64-разрядный компьютер, на котором выполняется контейнер Docker. Это может быть компьютер в локальной среде или служба размещения Docker в Azure, включая следующие решения:
- Служба Azure Kubernetes.
- Экземпляры контейнеров Azure.
- Кластер Kubernetes, развернутый в Azure Stack. Дополнительные сведения см. в статье Развертывание Kubernetes в Azure Stack.
Примечание.
Обратите внимание, что контейнер Studio нельзя развернуть и запустить в Служба Azure Kubernetes. Контейнер Studio поддерживается только для запуска на локальном компьютере.
Требования к контейнеру и рекомендации
Обязательные вспомогательные контейнеры
В следующей таблице перечислены один или несколько вспомогательных контейнеров для каждого скачиваемого контейнера аналитики документов. Дополнительные сведения приведены в разделе Выставление счетов.
Контейнер элементов | Поддержка контейнеров |
---|---|
Чтение | Необязательное |
Макет | Необязательное |
Визитная карточка | Чтение |
Общий документ | Макет |
Счет-фактура | Макет |
Квитанция | Чтение или макет |
Удостоверение | Чтение |
Пользовательский шаблон | Макет |
Рекомендуемые ядра ЦП и память
Примечание.
Минимальные и рекомендуемые значения основаны на ограничениях Docker, а не на ресурсах узла.
Контейнеры аналитики документов
Контейнер | Минимальная конфигурация | Рекомендуемая конфигурация |
---|---|---|
Read |
8 ядра, 10 ГБ памяти |
8 ядра, 24 ГБ памяти |
Layout |
8 ядра, 16 ГБ памяти |
8 ядра, 24 ГБ памяти |
Business Card |
8 ядра, 16 ГБ памяти |
8 ядра, 24 ГБ памяти |
General Document |
8 ядра, 12 ГБ памяти |
8 ядра, 24 ГБ памяти |
ID Document |
8 ядра, 8 ГБ памяти |
8 ядра, 24 ГБ памяти |
Invoice |
8 ядра, 16 ГБ памяти |
8 ядра, 24 ГБ памяти |
Receipt |
8 ядра, 11 ГБ памяти |
8 ядра, 24 ГБ памяти |
Custom Template |
8 ядра, 16 ГБ памяти |
8 ядра, 24 ГБ памяти |
- Частота каждого ядра должна быть минимум 2,6 ГГц.
- Ядро и память соответствуют параметрам
--cpus
и--memory
, которые используются как часть командыdocker compose
илиdocker run
.
Совет
Используйте команду docker images, чтобы получить список скачанных образов контейнеров. Например, следующая команда возвращает таблицу со списком идентификаторов, репозиториев и тегов для каждого скачанного образа контейнера:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Запустите контейнер с помощью команды docker-compose up.
Замените значения {ENDPOINT_URI} и {API_KEY} на URI конечной точки ресурса и ключ со страницы ресурса Azure.
Убедитесь, что
EULA
для значения задано значение.Значение
EULA
,Billing
иApiKey
значения должны быть указаны; в противном случае контейнер не может запуститься.
Внимание
Ключи используются для доступа к ресурсу Аналитики документов. Не предоставляйте доступ к ключам. Храните их защищенным образом, например в Azure Key Vault. Также рекомендуется регулярно обновлять эти ключи. Для вызова API необходим только один ключ. При повторном создании первого ключа можно использовать второй ключ для продолжения доступа к службе.
Следующий пример кода является автономным docker compose
примером для запуска контейнера макета аналитики документов. При работе в docker compose
используйте файл YAML для настройки служб приложения. Затем с помощью команды вы создадите docker-compose up
и запустите все службы из конфигурации. Введите значения {FORM_RECOGNIZER_ENDPOINT_URI} и {FORM_RECOGNIZER_KEY} для экземпляра контейнера Макета.
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
Теперь можно запустить службу с помощью команды docker compose.
docker-compose up
Создание файла создания docker
Назовите этот файл docker-compose.yml.
Следующий пример кода — это автономный
docker compose
пример для запуска контейнеров шаблонов аналитики документов, Студии и пользовательских шаблонов. При работе вdocker compose
используйте файл YAML для настройки служб приложения. Затем с помощью командыdocker-compose up
вы создаете и запускаете все службы из своей конфигурации.
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)
Создание файла создания docker
Назовите этот файл docker-compose.yml.
Следующий пример кода — это автономный
docker compose
пример для запуска контейнеров шаблонов аналитики документов, Студии и пользовательских шаблонов. При работе вdocker compose
используйте файл YAML для настройки служб приложения. Затем с помощью командыdocker-compose up
вы создаете и запускаете все службы из своей конфигурации.
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)
Пользовательский контейнер шаблона и контейнер макета могут использовать служба хранилища Azure очереди или в очередях памяти.
Storage:ObjectStore:AzureBlob:ConnectionString
queue:azure:connectionstring
Переменные среды и переменные среды должны быть заданы только в том случае, если вы используете служба хранилища Azure очереди. При локальном запуске удалите эти переменные.
Убедитесь, что служба запущена.
Необходимо проверить, что служба запущена и работает. Выполните эти команды в оболочке Ubuntu.
$cd <folder containing the docker-compose file>
$source .env
$docker-compose up
Для контейнеров пользовательских шаблонов требуется несколько различных конфигураций и поддержка других необязательных конфигураций.
Параметр | Обязательно | Описание: |
---|---|---|
EULA |
Да | Пример принятия лицензий: Eula=accept |
Выставление счетов | Да | URI конечной точки выставления счетов ресурса FR |
ApiKey | Да | Ключ конечной точки ресурса FR |
Очередь:Azure:ConnectionString | No | Строка подключения очереди Azure |
Storage:ObjectStore:AzureBlob:ConnectionString | No | Строка подключения BLOB-объектов Azure |
HealthCheck:MemoryUpperboundInMB | No | Порог памяти для создания отчетов о неработоспособных действиях. По умолчанию: то же самое, что и рекомендуемая память |
StorageTimeToLiveInMinutes | No |
TTL длительность удаления всех промежуточных и конечных файлов. По умолчанию: два дня может TTL быть задано от пяти минут до семи дней. |
Task:MaxRunningTimeSpanInMinutes | No | Максимальное время выполнения для обработки запроса в качестве времени ожидания. Значение по умолчанию: 60 минут |
HTTP_PROXY_BYPASS_URLS | No | Укажите URL-адреса для обхода прокси-сервера: HTTP_PROXY_BYPASS_URLS = abc.com, xyz.com |
AzureCognitiveServiceReadHost (только для получения, контейнеров IdDocument) | Да | Укажите пример URI контейнера чтения:AzureCognitiveServiceReadHost=http://onprem-frread:5000 |
AzureCognitiveServiceLayoutHost (только для документов, контейнеров счетов) | Да | Укажите URI контейнера макета: AzureCognitiveServiceLayoutHost=http://onprem-frlayout:5000 |
Обучение модели с помощью Document Intelligence Studio
Соберите по крайней мере пять форм одного типа. Эти данные используются для обучения модели и тестирования формы. Можно использовать образец набора данных (загрузите и распакуйте sample_data.zip).
Убедившись, что контейнеры запущены, откройте браузер и перейдите к конечной точке, в которой развернуты контейнеры. Если это развертывание является локальным компьютером, конечная точка .
[http://localhost:5001](http://localhost:5001)
Выберите плитку пользовательской модели извлечения.
Create project
Выберите параметр.Укажите имя проекта и при необходимости описание
На шаге "Настройка ресурса" укажите конечную точку пользовательской модели шаблона. Если вы развернули контейнеры на локальном компьютере, используйте этот URL-адрес
[http://localhost:5000](http://localhost:5000)
.Укажите вложенную папку, в которой данные обучения находятся в папке файлов.
Наконец, создайте проект
Теперь у вас должен быть созданный проект, готовый к маркировке. Отправьте данные обучения и начните работу с метками. Если вы не знакомы с метками, ознакомьтесь со сборкой и обучением пользовательской модели.
Обучение с помощью API
Если вы планируете вызывать API-интерфейсы непосредственно для обучения модели, для обучения пользовательской модели шаблона API требуется ZIP-файл в кодировке Base64, который является содержимым проекта маркировки. Вы можете опустить PDF-файлы или файлы изображений и отправлять только JSON-файлы.
Получив метку набора данных и *.ocr.json, *.labels.json и файлы fields.json, добавленные в ZIP-файл, используйте команды PowerShell для создания строки в кодировке Base64.
$bytes = [System.IO.File]::ReadAllBytes("<your_zip_file>.zip")
$b64String = [System.Convert]::ToBase64String($bytes, [System.Base64FormattingOptions]::None)
Используйте API модели сборки для отправки запроса.
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"
}
}
Убедитесь, что сервер запущен.
Есть несколько способов проверить, что контейнер запущен:
Контейнер предоставляет домашнюю страницу
\
в качестве визуальной проверки того, что контейнер работает.Вы можете открыть свой любимый веб-браузер и перейти к внешнему IP-адресу и открытому порту соответствующего контейнера. Используйте УКАЗАННЫе URL-адреса запроса для проверки запуска контейнера. Перечисленные примеры URL-адресов запросов являются
http://localhost:5000
, но конкретный контейнер может отличаться. Помните, что вы переходите к Внешнему IP-адресу и открытому порту контейнера.Запросить URL-адрес Характер использования http://localhost:5000/ Контейнер предоставляет домашнюю страницу. http://localhost:5000/ready Запрос с помощью команды GET это подтверждает, что контейнер готов принять запрос к модели. Этот запрос может использоваться для проб активности и готовности Kubernetes. http://localhost:5000/status Запрос с помощью команды GET проверяет, действителен ли ключ API, используемый для запуска контейнера, без запроса конечной точки. Этот запрос может использоваться для проб активности и готовности Kubernetes. http://localhost:5000/swagger Контейнер предоставляет полный набор документации по конечным точкам и функции Попробовать. Эта функция позволяет ввести параметры в веб-форму HTML и создать запрос без необходимости писать код. После возврата запроса предоставляется пример команды CURL, чтобы продемонстрировать необходимые заголовки HTTP и формат текста.
Остановка контейнеров
Чтобы остановить контейнеры, используйте следующую команду.
docker-compose down
Выставление счетов
Контейнеры аналитики документов отправляют сведения о выставлении счетов в Azure с помощью ресурса Аналитики документов в учетной записи Azure.
Запросы к контейнеру выставляются по ценовой категории ресурса Azure, используемого для API Key
. Выставление счетов вычисляется для каждого экземпляра контейнера, используемого для обработки документов и изображений.
Если вы получите следующую ошибку: контейнер не имеет допустимого состояния. Сбой проверки подписки с ключом API OutOfQuota не является квотой. Это индикатор того, что контейнеры не обмен данными в конечной точке выставления счетов.
Подключение к Azure
Для запуска контейнера необходимо указать значения аргументов, касающихся выставления счетов. Эти значения обеспечивают подключение контейнера к конечной точке выставления счетов. Отчеты об использовании контейнера примерно каждые 10—15 минут. Если контейнер не подключится к Azure в течение допустимого периода времени, контейнер будет продолжать работать, но не будет обслуживать запросы, пока не будет восстановлена конечная точка выставления счетов. Попытки подключения выполняются 10 раз на протяжении одинакового интервала времени (10–15 минут). Если контейнеру не удается подключиться к конечной точке выставления счетов за 10 попыток, он останавливает запросы на обслуживание. См. часто задаваемые вопросы о контейнере ИИ Azure, чтобы получить пример информации, отправляемой в Корпорацию Майкрософт для выставления счетов.
Аргументы для выставления счетов
Команда docker-compose up запускает контейнер, когда все три из следующих параметров предоставляются допустимыми значениями:
Вариант | Описание |
---|---|
ApiKey |
Ключ ресурса служб ИИ Azure, используемого для отслеживания сведений о выставлении счетов. Значение этого параметра должно быть задано в качестве ключа для подготовленного ресурса, указанного в Billing . |
Billing |
Конечная точка ресурса служб искусственного интеллекта Azure, используемая для отслеживания сведений о выставлении счетов. Этому параметру следует присвоить URI конечной точки подготовленного ресурса Azure. |
Eula |
Указывает, что вы приняли условия лицензии для контейнера. Для этого параметра следует задать значение accept. |
Дополнительные сведения об этих параметрах см. в статье Настройка контейнеров.
Итоги
Вот и все! В этой статье вы узнали основные понятия и рабочие процессы для скачивания, установки и запуска контейнеров аналитики документов. Сводка:
- Аналитика документов предоставляет семь контейнеров Linux для Docker.
- Образы контейнеров загружаются из mcr.
- Образы контейнеров выполняются в Docker.
- При создании экземпляра контейнера необходимо указать данные для выставления счетов.
Внимание
Контейнеры ИИ Azure не лицензируются для запуска без подключения к Azure для измерения. Клиенты должны разрешить контейнерам непрерывную передачу данных для выставления счетов в службу контроля потребления. Контейнеры ИИ Azure не отправляют данные клиента (например, изображение или текст, анализируемый) в корпорацию Майкрософт.