Контейнеры в отключенных (автономных) средах
Поддержка контейнеров в настоящее время доступна в версии 2022-08-31 (GA)
аналитики документов для всех моделей и 2023-07-31 (GA)
для моделей чтения, макета, счета, квитанции и идентификатора документов:
- REST API
2022-08-31 (GA)
- REST API
2023-07-31 (GA)
- Целевые клиентские библиотеки
REST API 2022-08-31 (GA)
- Целевые клиентские библиотеки
REST API 2023-07-31 (GA)
✔️ Дополнительные сведения о поддерживаемых контейнерах см. в контейнерах Аналитики документов версии 3.0 в отключенных средах .
Это содержимое относится к: версии 3.0 (GA) версии 3.1 (GA)
Что такое отключенные контейнеры?
Контейнеры искусственного интеллекта Azure позволяют выполнять некоторые службы аналитики документов локально в контейнерах. Подключенные контейнеры выполняются локально в вашей среде и отправляют сведения об использовании в облако для выставления счетов. Отключенные контейнеры предназначены для сценариев, в которых для запуска контейнеров не требуется подключение к облаку.
Контейнеры аналитики документов Azure позволяют использовать API аналитики документов с преимуществами контейнеризации. Отключенные контейнеры предлагаются с помощью цен на уровне обязательств, предлагаемых по скидке по сравнению с ценами на оплату по мере использования. С помощью цен на категорию обязательств вы можете зафиксировать использование функций Аналитики документов для фиксированной платы по прогнозируемой общей стоимости на основе потребностей рабочей нагрузки.
Начало работы
Прежде чем пытаться запустить контейнер Docker в автономной среде, убедитесь, что вы знакомы со следующими требованиями, чтобы успешно скачать и использовать контейнер:
- Требования к главному компьютеру и рекомендации.
- Команда Docker
pull
для скачивания контейнера. - Как проверить состояние контейнера.
- Как отправлять запросы к конечной точке контейнера после ее запуска.
Запрос доступа на использование контейнеров в отключенных средах
Прежде чем использовать контейнеры аналитики документов в отключенных средах, необходимо сначала заполнить форму запроса и приобрести план обязательств.
Создание ресурса в портал Azure
Начните с подготовки нового ресурса на портале.
Убедитесь, что выбран параметр ценовой
Commitment tier disconnected containers DC0
категорииВыберите соответствующую ценовую категорию по крайней мере из одного из пользовательских, считываемых или предварительно созданных уровней обязательств
Контейнер | Минимальная конфигурация | Рекомендуемая конфигурация | План обязательств |
---|---|---|---|
Read |
8 ядра, 10 ГБ памяти |
8 ядра, 24 ГБ памяти |
OCR (Чтение) |
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 ГБ памяти |
Пользовательский API |
Сбор обязательных параметров
Существует три обязательных параметра для всех контейнеров служб ИИ Azure:
- Вам следует принять Лицензионное соглашение с конечным пользователем (EULA).
- URL-адрес конечной точки ресурса из портал Azure.
- Ключ API для ресурса из портал Azure.
Url-адрес конечной точки и ключ API необходимы при первом запуске контейнера, чтобы настроить его для отключенного использования. Ключ и конечная точка можно найти на странице "Ключ и конечная точка" ресурса в портал Azure:
Внимание
Вы будете использовать только ключ и конечную точку для настройки контейнера для запуска в отключенной среде. После настройки контейнера вам не потребуется значения ключей и конечных точек для отправки запросов API. Храните их защищенным образом, например в Azure Key Vault. Для этого процесса необходим только один ключ.
Скачивание контейнера Docker с помощью docker pull
Скачайте контейнер Docker, утвержденный для запуска в отключенной среде. Например:
Команда Docker pull | Значение | Формат |
---|---|---|
● ● ● docker pull [image] docker pull [image]latest |
Последний образ контейнера. | ● ● ● mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.0:latest mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice-3.0:latest |
Пример команды извлечения Docker
docker pull mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice:latest
Настройка контейнера для запуска в среде без подключения к Интернету
Отключенные образы контейнеров совпадают с подключенными контейнерами. Ключевое различие заключается в том, что отключенные контейнеры требуют файла лицензии. Этот файл лицензии скачан путем запуска контейнера в подключенном режиме с параметром downloadLicense, заданным значением true.
Теперь, когда контейнер скачан, необходимо выполнить docker run
команду со следующим параметром:
DownloadLicense=True
. Этот параметр скачивает файл лицензии, который позволяет контейнеру Docker запускаться, если он не подключен к Интернету. Он также содержит дату окончания срока действия, после чего файл лицензии недопустим для запуска контейнера. Файл лицензии можно использовать только в соответствующем утвержденном контейнере.
Внимание
Команда docker run
создаст шаблон, который можно использовать для запуска контейнера. Шаблон содержит параметры, необходимые для скачанных моделей и файла конфигурации. Обязательно сохраните этот шаблон.
В следующем примере показано форматирование команды, используемой docker run
с значениями заполнителей. Замените заполнители собственными значениями.
Заполнитель | Значение | Формат или пример |
---|---|---|
{IMAGE} |
Образ контейнера, который необходимо использовать. | mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice |
{LICENSE_MOUNT} |
Путь, по которому скачиваются лицензии и подключены. | /host/license:/path/to/license/directory |
{ENDPOINT_URI} |
Конечная точка для проверки подлинности запроса на обслуживание. Он представлен на странице ресурса Ключ и конечная точка на портале Azure. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{API_KEY} |
Ключ ресурса аналитики документов. Он представлен на странице ресурса Ключ и конечная точка на портале Azure. | {string} |
{CONTAINER_LICENSE_DIRECTORY} |
Расположение папки license в локальной файловой системе контейнера. | /path/to/license/directory |
Пример docker run
команды
docker run --rm -it -p 5000:5050 \
-v {LICENSE_MOUNT} \
{IMAGE} \
eula=accept \
billing={ENDPOINT_URI} \
apikey={API_KEY} \
DownloadLicense=True \
Mounts:License={CONTAINER_LICENSE_DIRECTORY}
В следующей команде замените заполнители пути к папке, конечной точке выставления счетов и ключу API, чтобы скачать файл лицензии для контейнера макета.
docker run -v {folder path}:/license --env Mounts:License=/license --env DownloadLicense=True --env Eula=accept --env Billing={billing endpoint} --env ApiKey={api key} mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.0:latest
После настройки контейнера используйте следующий раздел, чтобы запустить контейнер в вашей среде с лицензией и соответствующими выделениями памяти и ЦП.
Модели и конфигурации контейнеров аналитики документов
После настройки контейнера значения для скачанных моделей аналитики документов и конфигурации контейнера будут созданы и отображаются в выходных данных контейнера.
Запуск контейнера в среде без подключения к Интернету
Скачав файл лицензии, вы можете запустить контейнер в отключенной среде с лицензией, соответствующей памятью и подходящими выделениями ЦП. В следующем примере показано форматирование docker run
команды со значениями заполнителей. Замените эти заполнители собственными значениями.
При каждом запуске контейнера файл лицензии должен быть подключен к контейнеру, а расположение папки лицензии в локальной файловой системе контейнера должно быть указано.Mounts:License=
Кроме того, необходимо указать выходное подключение, чтобы записи об использовании выставления счетов могли быть записаны.
Заполнитель | Значение | Формат или пример |
---|---|---|
{IMAGE} |
Образ контейнера, который необходимо использовать. | mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice |
{MEMORY_SIZE} |
Надлежащий объем памяти, который необходимо выделить для контейнера. | 4g |
{NUMBER_CPUS} |
Надлежащее количество ЦП, которое необходимо выделить для контейнера. | 4 |
{LICENSE_MOUNT} |
Путь к расположению и подключенной лицензии. | /host/license:/path/to/license/directory |
{OUTPUT_PATH} |
Выходной путь для ведения журнала использования. | /host/output:/path/to/output/directory |
{CONTAINER_LICENSE_DIRECTORY} |
Расположение папки license в локальной файловой системе контейнера. | /path/to/license/directory |
{CONTAINER_OUTPUT_DIRECTORY} |
Расположение папки output в локальной файловой системе контейнера. | /path/to/output/directory |
Пример docker run
команды
docker run --rm -it -p 5000:5050 --memory {MEMORY_SIZE} --cpus {NUMBER_CPUS} \
-v {LICENSE_MOUNT} \
-v {OUTPUT_PATH} \
{IMAGE} \
eula=accept \
Mounts:License={CONTAINER_LICENSE_DIRECTORY}
Mounts:Output={CONTAINER_OUTPUT_DIRECTORY}
Запуск отключенного контейнера аналогичен запуску подключенного контейнера. Для отключенных контейнеров требуется добавленный параметр лицензии. Ниже приведен пример docker-compose.yml файла для запуска пользовательского контейнера в отключенном режиме. Добавьте переменную среды CUSTOM_LICENSE_MOUNT_PATH со значением, заданным в папку, содержащую скачанный файл лицензии, и OUTPUT_MOUNT_PATH
переменную среды с заданным значением в папку, в которой хранятся журналы использования.
version: '3.3'
services:
nginx:
image: nginx:alpine
container_name: reverseproxy
volumes:
- ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf
ports:
- "5000:5050"
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: /shared
Mounts:Shared: /shared
Mounts:Output: /logs
Mounts:License: /license
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /shared
- type: bind
source: ${OUTPUT_MOUNT_PATH}
target: /logs
- type: bind
source: ${LAYOUT_LICENSE_MOUNT_PATH}
target: /license
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: /shared
Mounts:Shared: /shared
Mounts:Output: /logs
Mounts:License: /license
volumes:
- type: bind
source: ${SHARED_MOUNT_PATH}
target: /shared
- type: bind
source: ${OUTPUT_MOUNT_PATH}
target: /logs
- type: bind
source: ${CUSTOM_LICENSE_MOUNT_PATH}
target: /license
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, работающие в отключенной среде, будут записывать сведения об использовании на том, где они собираются с течением времени. Можно также вызвать конечную точку REST API, чтобы создать отчет об использовании службы.
Аргументы для хранения журналов
При запуске в среде без подключения к Интернету для хранения журналов использования необходимо, чтобы для контейнера было доступно выходное подключение. Например, можно включить -v /host/output:{OUTPUT_PATH}
и Mounts:Output={OUTPUT_PATH}
в следующем примере, заменив {OUTPUT_PATH}
путь, в котором хранятся журналы:
docker run -v /host/output:{OUTPUT_PATH} ... <image> ... Mounts:Output={OUTPUT_PATH}
Получение записей с помощью конечных точек контейнера
Контейнер предоставляет две конечные точки для возврата записей об использовании.
Получение всех записей
Следующая конечная точка содержит отчет, в котором приводится сводка всех данных об использовании, собранных в подключенном каталоге записей выставления счетов.
https://<service>/records/usage-logs/
Пример конечной точки HTTPS
http://localhost:5000/records/usage-logs
Конечная точка журнала использования возвращает ответ JSON, аналогичный следующему примеру:
{
"apiType": "string",
"serviceName": "string",
"meters": [
{
"name": "string",
"quantity": 256345435
}
]
}
Получение записей за определенный месяц
Следующая конечная точка содержит отчет об обобщении использования в течение определенного месяца и года.
https://<service>/records/usage-logs/{MONTH}/{YEAR}
Эта конечная точка журнала использования возвращает ответ JSON, аналогичный следующему примеру:
{
"apiType": "string",
"serviceName": "string",
"meters": [
{
"name": "string",
"quantity": 56097
}
]
}
Устранение неполадок
Запустите контейнер с включенным выходным подключением и ведением журнала. Эти параметры позволяют контейнеру создавать файлы журналов, которые полезны для устранения неполадок, возникающих при запуске или запуске контейнера.
Совет
С дополнительными сведениями и рекомендациями по устранению неполадок можно ознакомиться в разделе Часто задаваемые вопросы о контейнерах без подключения к Интернету.