Contêineres em ambientes desconectados (offline)
O suporte para contêineres está atualmente disponível com a versão 2022-08-31 (GA)
Document Intelligence para todos os modelos e 2023-07-31 (GA)
para os modelos de Documento de Leitura, Layout, Fatura, Recibo e ID:
- API REST
2022-08-31 (GA)
- API REST
2023-07-31 (GA)
- Segmentação de bibliotecas de clientes
REST API 2022-08-31 (GA)
- Segmentação de bibliotecas de clientes
REST API 2023-07-31 (GA)
✔️ Consulte Contêineres do Document Intelligence v3.0 em ambientes desconectados para obter a documentação de contêineres suportada.
Este conteúdo aplica-se a: v3.0 (GA) v3.1 (GA)
O que são contêineres desconectados?
Os contêineres de IA do Azure oferecem a flexibilidade de executar alguns serviços de Document Intelligence localmente em contêineres. Os contêineres conectados são executados localmente em seu ambiente e enviam informações de uso para a nuvem para cobrança. Os contêineres desconectados destinam-se a cenários em que nenhuma conectividade com a nuvem é necessária para que os contêineres sejam executados.
Os contêineres do Azure AI Document Intelligence permitem que você use APIs de Document Intelligence com os benefícios da conteinerização. Os contêineres desconectados são oferecidos por meio de preços de nível de compromisso oferecidos a uma taxa com desconto em comparação com os preços pré-pagos. Com o preço da camada de compromisso, você pode se comprometer a usar os recursos de Document Intelligence por uma taxa fixa, a um custo total previsível, com base nas necessidades de sua carga de trabalho.
Começar agora
Antes de tentar executar um contêiner do Docker em um ambiente offline, verifique se você está familiarizado com os seguintes requisitos para baixar e usar o contêiner com êxito:
- Requisitos e recomendações do computador host.
- O comando Docker
pull
para baixar o contêiner. - Como validar se um contêiner está em execução.
- Como enviar consultas para o ponto de extremidade do contêiner, uma vez que ele esteja em execução.
Solicitar acesso para usar contêineres em ambientes desconectados
Antes de poder usar contêineres de Inteligência Documental em ambientes desconectados, você deve primeiro preencher e enviar um formulário de solicitação e adquirir um plano de compromisso.
Criar um novo recurso no portal do Azure
Comece provisionando um novo recurso no portal.
Certifique-se de selecionar a
Commitment tier disconnected containers DC0
opção para Nível de preçoSelecione o nível de preço apropriado de pelo menos um dos níveis de compromisso personalizados, lidos ou pré-criados
Contentor | Mínimo | Recomendado | Plano de compromisso |
---|---|---|---|
Read |
8 núcleos, 10 GB de memória |
8 núcleos, 24 GB de memória |
OCR (Ler) |
Layout |
8 núcleos, 16 GB de memória |
8 núcleos, 24 GB de memória |
Pré-criado |
Business Card |
8 núcleos, 16 GB de memória |
8 núcleos, 24 GB de memória |
Pré-criado |
General Document |
8 núcleos, 12 GB de memória |
8 núcleos, 24 GB de memória |
Pré-criado |
ID Document |
8 núcleos, 8 GB de memória |
8 núcleos, 24 GB de memória |
Pré-criado |
Invoice |
8 núcleos, 16 GB de memória |
8 núcleos, 24 GB de memória |
Pré-criado |
Receipt |
8 núcleos, 11 GB de memória |
8 núcleos, 24 GB de memória |
Pré-criado |
Custom Template |
8 núcleos, 16 GB de memória |
8 núcleos, 24 GB de memória |
API Personalizado |
Reúna os parâmetros necessários
Há três parâmetros necessários para todos os contêineres dos serviços de IA do Azure:
- O contrato de licença de usuário final (EULA) deve estar presente com um valor de aceitação.
- A URL do ponto de extremidade para seu recurso do portal do Azure.
- A chave de API para o seu recurso a partir do portal do Azure.
A URL do ponto de extremidade e a chave da API são necessárias quando você executa o contêiner pela primeira vez para configurá-lo para uso desconectado. Você pode encontrar a chave e o ponto de extremidade na página Chave e ponto de extremidade do seu recurso no portal do Azure:
Importante
Você só usará sua chave e ponto de extremidade para configurar o contêiner para ser executado em um ambiente desconectado. Depois de configurar o contêiner, você não precisará dos valores de chave e ponto de extremidade para enviar solicitações de API. Armazene-os de forma segura, por exemplo, usando o Azure Key Vault. Apenas uma chave é necessária para este processo.
Baixar um contêiner do Docker com docker pull
Baixe o contêiner do Docker aprovado para ser executado em um ambiente desconectado. Por exemplo:
Comando pull do Docker | Value | Formato |
---|---|---|
docker pull [image] ● ● docker pull [image]latest |
A imagem de contêiner mais recente. | mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout-3.0:latest ● ● mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice-3.0:latest |
Exemplo de comando pull do Docker
docker pull mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice:latest
Configurar o contêiner para ser executado em um ambiente desconectado
As imagens de contêiner desconectado são as mesmas que os contêineres conectados. A principal diferença é que os contêineres desconectados exigem um arquivo de licença. Este arquivo de licença é baixado iniciando o contêiner em um modo conectado com o parâmetro downloadLicense definido como true.
Agora que seu contêiner foi baixado, você precisa executar o docker run
comando com o seguinte parâmetro:
DownloadLicense=True
. Este parâmetro baixa um arquivo de licença que permite que seu contêiner do Docker seja executado quando não estiver conectado à Internet. Ele também contém uma data de validade, após a qual o arquivo de licença é inválido para executar o contêiner. Você só pode usar o arquivo de licença no contêiner aprovado correspondente.
Importante
O docker run
comando gerará um modelo que você pode usar para executar o contêiner. O modelo contém os parâmetros necessários para os modelos baixados e o arquivo de configuração. Certifique-se de salvar este modelo.
O exemplo a seguir mostra a formatação do docker run
comando a ser usado com valores de espaço reservado. Substitua esses valores de espaço reservado por seus próprios valores.
Marcador de Posição | Value | Formato ou exemplo |
---|---|---|
{IMAGE} |
A imagem de contêiner que você deseja usar. | mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice |
{LICENSE_MOUNT} |
O caminho onde a licença é baixada e montada. | /host/license:/path/to/license/directory |
{ENDPOINT_URI} |
O ponto de extremidade para autenticar sua solicitação de serviço. Você pode encontrá-lo na página Chave e ponto de extremidade do seu recurso, no portal do Azure. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{API_KEY} |
A chave para o seu recurso de Document Intelligence. Você pode encontrá-lo na página Chave e ponto de extremidade do seu recurso, no portal do Azure. | {string} |
{CONTAINER_LICENSE_DIRECTORY} |
Localização da pasta de licença no sistema de arquivos local do contêiner. | /path/to/license/directory |
Exemplo docker run
de comando
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}
No comando a seguir, substitua os espaços reservados para o caminho da pasta, o ponto de extremidade de cobrança e a chave da API para baixar um arquivo de licença para o contêiner de layout.
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
Depois que o contêiner estiver configurado, use a próxima seção para executá-lo em seu ambiente com a licença e as alocações apropriadas de memória e CPU.
Modelos e configuração de contêineres do Document Intelligence
Depois de configurar o contêiner, os valores para os modelos de Document Intelligence baixados e a configuração do contêiner serão gerados e exibidos na saída do contêiner.
Executar o contêiner em um ambiente desconectado
Depois de baixar o arquivo de licença, você pode executar o contêiner em um ambiente desconectado com sua licença, memória apropriada e alocações de CPU adequadas. O exemplo a seguir mostra a docker run
formatação do comando com valores de espaço reservado. Substitua esses valores de espaços reservados por seus próprios valores.
Sempre que o contêiner é executado, o arquivo de licença deve ser montado no contêiner e o local da pasta de licença no sistema de arquivos local do contêiner deve ser especificado com Mounts:License=
. Além disso, uma montagem de saída deve ser especificada para que os registros de uso de faturamento possam ser gravados.
Marcador de Posição | Value | Formato ou exemplo |
---|---|---|
{IMAGE} |
A imagem de contêiner que você deseja usar. | mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice |
{MEMORY_SIZE} |
O tamanho apropriado da memória a ser alocada para seu contêiner. | 4g |
{NUMBER_CPUS} |
O número apropriado de CPUs a serem alocadas para seu contêiner. | 4 |
{LICENSE_MOUNT} |
O caminho onde a licença está localizada e montada. | /host/license:/path/to/license/directory |
{OUTPUT_PATH} |
O caminho de saída para registrar registros de uso. | /host/output:/path/to/output/directory |
{CONTAINER_LICENSE_DIRECTORY} |
Localização da pasta de licença no sistema de arquivos local do contêiner. | /path/to/license/directory |
{CONTAINER_OUTPUT_DIRECTORY} |
Localização da pasta de saída no sistema de arquivos local do contêiner. | /path/to/output/directory |
Exemplo docker run
de comando
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}
Iniciar um contêiner desconectado é semelhante a iniciar um contêiner conectado. Os contêineres desconectados exigem um parâmetro de licença adicionado. Aqui está um exemplo de arquivo docker-compose.yml para iniciar um contêiner personalizado no modo desconectado. Adicione a variável de ambiente CUSTOM_LICENSE_MOUNT_PATH com um valor definido para a pasta que contém o arquivo de licença baixado e a OUTPUT_MOUNT_PATH
variável de ambiente com um valor definido para a pasta que contém os logs de uso.
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)
Outros parâmetros e comandos
Aqui estão mais alguns parâmetros e comandos que você precisa para executar o contêiner.
Registos de utilização
Ao operar contêineres do Docker em um ambiente desconectado, o contêiner gravará registros de uso em um volume onde eles serão coletados ao longo do tempo. Você também pode chamar um ponto de extremidade da API REST para gerar um relatório sobre o uso do serviço.
Argumentos para armazenar logs
Quando executado em um ambiente desconectado, uma montagem de saída deve estar disponível para o contêiner para armazenar logs de uso. Por exemplo, você incluiria -v /host/output:{OUTPUT_PATH}
e Mounts:Output={OUTPUT_PATH}
, no exemplo a seguir, substituiria {OUTPUT_PATH}
pelo caminho onde os logs são armazenados:
docker run -v /host/output:{OUTPUT_PATH} ... <image> ... Mounts:Output={OUTPUT_PATH}
Obter registros usando os pontos de extremidade do contêiner
O contêiner fornece dois pontos de extremidade para retornar registros sobre seu uso.
Obter todos os registos
O ponto de extremidade a seguir fornece um relatório resumindo todo o uso coletado no diretório de registro de faturamento montado.
https://<service>/records/usage-logs/
Exemplo de ponto de extremidade HTTPS
http://localhost:5000/records/usage-logs
O ponto de extremidade usage-log retorna uma resposta JSON semelhante ao exemplo a seguir:
{
"apiType": "string",
"serviceName": "string",
"meters": [
{
"name": "string",
"quantity": 256345435
}
]
}
Obter registos para um mês específico
O ponto de extremidade a seguir fornece um relatório resumindo o uso em um mês e ano específicos.
https://<service>/records/usage-logs/{MONTH}/{YEAR}
Esse ponto de extremidade de logs de uso retorna uma resposta JSON semelhante ao exemplo a seguir:
{
"apiType": "string",
"serviceName": "string",
"meters": [
{
"name": "string",
"quantity": 56097
}
]
}
Resolução de Problemas
Execute o contêiner com uma montagem de saída e registro habilitado. Essas configurações permitem que o contêiner gere arquivos de log que são úteis para solucionar problemas que ocorrem ao iniciar ou executar o contêiner.
Gorjeta
Para obter mais informações e orientações sobre solução de problemas, consulte Perguntas freqüentes (FAQ) sobre contêineres desconectados.