Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Следующее содержимое относится к:
версия 3.0 (GA)
версия 3.1 (GA)
версия 4.0 (GA)
Аналитика документов Azure — это служба ИИ Azure, которая позволяет создавать автоматизированное программное обеспечение для обработки данных с помощью технологии машинного обучения. Аналитика документов позволяет выявлять и извлекать текст, пары "ключ-значение", метки выделения, табличные данные и многое другое из документов. Результаты предоставляются в виде структурированных данных, которые .. /включает связи в исходном файле. Контейнеры обрабатывают только предоставленные им данные и используют только те ресурсы, к которых они могут получить доступ. Контейнеры не могут обрабатывать данные из других регионов.
В этой статье вы узнаете, как скачать, установить и запустить контейнеры аналитики документов. Контейнеры позволяют запускать службу аналитики документов в собственной среде. Контейнеры соответствуют конкретным требованиям к безопасности и управлению данными.
Read и Layout модели поддерживаются контейнерами Document Intelligence версии 4.0.
Модели чтения, макета, документа идентификатора, квитанции и счета поддерживаются контейнерами Аналитики документов версии 3.1.
Модели чтения, макета, общего документа, визитной карточки и пользовательских моделей поддерживаются контейнерами Аналитики документов версии 3.0.
Поддерживаемые версии
Поддержка контейнеров в настоящее время доступна в версии v3.0: 2022-08-31 (GA) Аналитики документов для всех моделей, для чтения, макета, v3.1 2023-07-31 (GA) документа идентификатора, квитанции и счета, а v4.0 2024-11-30 (GA) также для моделей чтения и макета:
-
REST API
v3.0: 2022-08-31 (GA) -
REST API
v3.1: 2023-07-31 (GA) -
REST API
v4.0: 2024-11-30 (GA) -
Целевые клиентские библиотеки
REST API v3.0: 2022-08-31 (GA) -
Целевые клиентские библиотеки
REST API v3.1: 2023-07-31 (GA) -
Целевые клиентские библиотеки
REST API v4.0: 2024-11-30 (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. |
Требования к компьютеру узла
Хост — это компьютер на основе архитектуры x64, на котором выполняется контейнер 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значение установлено на accept.Значения
EULA,Billing, иApiKeyдолжны быть указаны; в противном случае контейнер не удастся запустить.
Внимание
Ключи используются для доступа к ресурсу Аналитики документов. Не предоставляйте доступ к ключам другим пользователям. Храните их защищенным образом, например в Azure Key Vault. Также рекомендуется регулярно обновлять эти ключи. Для вызова API необходим только один ключ. При повторном создании первого ключа можно использовать второй ключ для продолжения доступа к службе.
Следующий пример кода является автономным docker compose примером для запуска контейнера макета аналитики документов. С помощью docker compose используйте файл YAML для настройки сервисов вашего приложения. Затем с помощью команды docker-compose up вы создаете и запускаете все службы из своей конфигурации. Введите значения {FORM_RECOGNIZER_ENDPOINT_URI} и {FORM_RECOGNIZER_KEY} для вашего экземпляра контейнера layout.
version: "3.9"
services:
azure-form-recognizer-layout:
container_name: azure-form-recognizer-layout
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-4.0
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-compose up.
Замените значения {ENDPOINT_URI} и {API_KEY} на URI конечной точки ресурса и ключ со страницы ресурса Azure.
Убедитесь, что
EULAзначение установлено на accept.Значения
EULA,Billing, иApiKeyдолжны быть указаны; в противном случае контейнер не удастся запустить.
Внимание
Ключи используются для доступа к ресурсу Аналитики документов. Не предоставляйте доступ к ключам другим пользователям. Храните их защищенным образом, например в Azure Key Vault. Также рекомендуется регулярно обновлять эти ключи. Для вызова API необходим только один ключ. При повторном создании первого ключа можно использовать второй ключ для продолжения доступа к службе.
Следующий пример кода является автономным docker compose примером для запуска контейнера макета аналитики документов. С помощью docker compose используйте файл YAML для настройки сервисов вашего приложения. Затем с помощью команды docker-compose up вы создаете и запускаете все службы из своей конфигурации. Введите значения {FORM_RECOGNIZER_ENDPOINT_URI} и {FORM_RECOGNIZER_KEY} для вашего экземпляра контейнера layout.
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
Теперь можно запустить службу с помощью команды docker compose.
docker-compose up
Создать файл docker compose
Назовите этот файл docker-compose.yml.
Следующий пример кода является автономным
docker composeпримером для совместного запуска контейнеров шаблонов "Document Intelligence Layout", "Studio" и пользовательских шаблонов. С помощью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 compose
Назовите этот файл docker-compose.yml.
Следующий пример кода является автономным
docker composeпримером для совместного запуска контейнеров шаблонов "Document Intelligence Layout", "Studio" и пользовательских шаблонов. С помощью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=принять |
| Выставление счетов | Да | URI конечной точки выставления счетов ресурса FR |
| Ключ API (ApiKey) | Да | Ключ конечной точки ресурса FR |
| Очередь:Azure:ConnectionString | Нет | Строка подключения очереди Azure |
| Storage:ObjectStore:AzureBlob:ConnectionString | Нет | Строка подключения BLOB-объектов Azure |
| HealthCheck:MemoryUpperboundInMB | Нет | Порог памяти для создания отчетов о неработоспособных действиях. По умолчанию: то же самое, что и рекомендуемая память |
| Время хранения в минутах | Нет |
TTL длительность удаления всех промежуточных и конечных файлов. По умолчанию: два дня может TTL быть задано от пяти минут до семи дней. |
| Задача:MaxRunningTimeSpanInMinutes | Нет | Максимальное время выполнения для обработки запроса в качестве времени ожидания. Значение по умолчанию: 60 минут |
| HTTP_PROXY_BYPASS_URLS (URL-адреса для обхода HTTP-прокси) | Нет | Укажите URL-адреса для обхода прокси-сервера: HTTP_PROXY_BYPASS_URLS = abc.com, xyz.com |
| AzureCognitiveServiceReadHost (только контейнеры Receipt и 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. Расчет стоимости производится для каждого экземпляра контейнера, используемого для обработки ваших документов и изображений.
Если вы получите следующую ошибку: Контейнер не находится в допустимом состоянии. Проверка подписки не удалась с состоянием 'OutOfQuota'; ключ API исчерпал квоту. Это индикатор того, что ваши контейнеры не могут обмениваться данными с конечной точкой выставления счетов.
Подключение к Azure
Для запуска контейнера необходимо указать значения аргументов, касающихся выставления счетов. Эти значения обеспечивают подключение контейнера к конечной точке выставления счетов. Контейнер сообщает об использовании примерно каждые 10—15 минут. Если контейнер не подключится к Azure в течение допустимого периода времени, контейнер будет продолжать работать, но не будет обслуживать запросы, пока не будет восстановлена конечная точка выставления счетов. Попытки подключения выполняются 10 раз на протяжении одинакового интервала времени (10–15 минут). Если контейнеру не удается подключиться к конечной точке выставления счетов в течение 10 попыток, он прекращает обработку запросов. См. часто задаваемые вопросы о контейнере ИИ Azure, чтобы получить пример информации, отправляемой в Корпорацию Майкрософт для выставления счетов.
Аргументы для выставления счетов
Команда docker-compose up запускает контейнер, когда все три из следующих параметров предоставляются допустимыми значениями:
| Вариант | Описание: |
|---|---|
ApiKey |
Ключ ресурса Azure AI Foundry, используемого для отслеживания сведений о выставлении счетов. Значение этого параметра должно быть задано в качестве ключа для подготовленного ресурса, указанного в Billing. |
Billing |
Конечная точка ресурса Azure AI Foundry, используемая для отслеживания сведений о выставлении счетов. Этому параметру следует присвоить URI конечной точки подготовленного ресурса Azure. |
Eula |
Указывает, что вы приняли условия лицензии для контейнера. Для этого параметра следует задать значение accept. |
Дополнительные сведения об этих параметрах см. в статье Настройка контейнеров.
Итоги
Вот и все! В этой статье вы узнали основные понятия и рабочие процессы для скачивания, установки и запуска контейнеров аналитики документов. Сводка:
- Аналитика документов предоставляет семь контейнеров Linux для Docker.
- Образы контейнеров загружаются из mcr.
- Образы контейнеров выполняются в Docker.
- При создании экземпляра контейнера необходимо указать данные для выставления счетов.
Внимание
Контейнеры ИИ Azure не лицензируются для запуска без подключения к Azure для измерения. Клиентам необходимо разрешить контейнерам всегда обмениваться данными о выставлении счетов со службой измерения. Контейнеры ИИ Azure не отправляют данные клиента (например, изображение или текст, анализируемый) в корпорацию Майкрософт.