Configurare contenitori di Informazioni sui documenti
Document Intelligence non supporta i contenitori per la versione 4.0. Il supporto per i contenitori è attualmente disponibile con la versione 2022-08-31 (GA)
di Document Intelligence per tutti i modelli e 2023-07-31 (GA)
per i modelli lettura, layout, fattura, ricevuta e documento ID:
- API REST
2022-08-31 (GA)
- API REST
2023-07-31 (GA)
- Destinazione delle librerie client
REST API 2022-08-31 (GA)
- Destinazione delle librerie client
REST API 2023-07-31 (GA)
✔️ Vedere Configurare i contenitori di Document Intelligence v3.0 o Configurare i contenitori di Document Intelligence v3.1 per le versioni supportate della documentazione del contenitore.
Questo contenuto si applica a: v3.0 (disponibilità generale) v3.1 (disponibilità generale)
I contenitori di Informazioni sui documenti consentono di creare un'architettura per le applicazioni ottimizzata per sfruttare i vantaggi delle funzionalità cloud avanzate e della posizione fisica dei dispositivi perimetrali. I contenitori offrono un ambiente minimalista e isolato che può essere facilmente distribuito in locale e nel cloud. In questo articolo viene illustrato come configurare l'ambiente di runtime dei contenitori di Informazioni sui documenti usando gli argomenti del comando docker compose
. Le funzionalità di Informazioni sui documenti sono supportate da sette contenitori di funzionalità di Informazioni sui documenti: Lettura, Layout, Biglietto da visita, Documento di identità, Ricevuta, Fattura e Personalizzato. Questi contenitori prevedono impostazioni sia obbligatorie che facoltative. Per alcuni esempi, vedere la sezione File docker-compose.yml di esempio.
Impostazioni di configurazione
Le impostazioni di configurazione di ogni contenitore sono le seguenti:
Richiesto | Impostazione | Purpose |
---|---|---|
Sì | Chiave | Tiene traccia delle informazioni di fatturazione. |
Sì | Fatturazione | Specifica l'URI dell'endpoint della risorsa del servizio in Azure. Per altre informazioni, vedere Fatturazione. Per altre informazioni e per un elenco completo degli endpoint a livello di area, vedere Nomi di sottodomini personalizzati per Servizi di Azure AI. |
Sì | Eula | Indica che è la licenza per il contenitore è stata accettata. |
No | ApplicationInsights | Consente di aggiungere al contenitore il supporto per il cliente di Azure Application Insights. |
No | Fluentd | Scrive il log e, facoltativamente, i dati delle metriche in un server Fluentd. |
No | Proxy HTTP | Configura un proxy HTTP per le richieste in uscita. |
No | Registrazione | Fornisce il supporto di registrazione ASP.NET Core per il contenitore. |
Importante
Le impostazioni Key
, Billing
e Eula
vengono usate insieme. È necessario specificare valori validi per tutte e tre, altrimenti i contenitori non verranno avviati. Per altre informazioni sull'uso di queste impostazioni di configurazione per creare un'istanza di un contenitore, vedere Billing (Fatturazione).
Impostazione di configurazione Key e Billing
L'impostazione Key
specifica la chiave della risorsa di Azure usata per tenere traccia delle informazioni di fatturazione per il contenitore. Il valore di Key deve essere una chiave valida per la risorsa specificata per Billing
nella sezione "Impostazione di configurazione Billing".
L'impostazione Billing
specifica l'URI dell'endpoint della risorsa in Azure usata per misurare le informazioni di fatturazione per il contenitore. Il valore per questa impostazione deve essere un URI dell'endpoint valido per una risorsa di Azure. Il contenitore segnala l'utilizzo ogni 10-15 minuti.
È possibile trovare queste impostazioni nella pagina Chiavi ed endpoint del portale di Azure.
Impostazione di EULA
L'impostazione Eula
indica che è stata accettata la licenza per il contenitore. È necessario specificare un valore per questa impostazione di configurazione e tale valore deve essere impostato su accept
.
Obbligatoria | Nome | Tipo di dati | Descrizione |
---|---|---|---|
Sì | Eula |
String | Accettazione della licenza Esempio: Eula=accept |
I contenitori di Servizi di Azure AI sono concessi in licenza in base al contratto che disciplina l'uso di Azure. Se non si dispone di tale contratto, si acconsente che l'uso di Azure sia disciplinato dal Contratto di Sottoscrizione Microsoft Online, in cui sono incluse le condizioni per l'utilizzo dei Servizi Online. Per le anteprime si accettano inoltre le Condizioni Supplementari per l'Utilizzo delle Anteprime di Microsoft Azure. Con l'uso del contenitore si acconsente a rispettare tali condizioni.
Impostazione ApplicationInsights
L'impostazione ApplicationInsights
consente di aggiungere al contenitore il supporto per i dati di telemetria di Azure Application Insights. Application Insights offre funzionalità di monitoraggio avanzate del contenitore. È possibile monitorare con facilità la disponibilità, le prestazioni e l'utilizzo del contenitore. È anche possibile identificare e diagnosticare rapidamente gli errori nel contenitore.
La tabella seguente illustra le impostazioni di configurazione supportate nella sezione ApplicationInsights
.
Obbligatoria | Nome | Tipo di dati | Descrizione |
---|---|---|---|
No | InstrumentationKey |
String | Chiave di strumentazione dell'istanza di Application Insights a cui vengono inviati i dati di telemetria per il contenitore. Per altre informazioni, vedere Application Insights per ASP.NET Core. Esempio: InstrumentationKey=123456789 |
Impostazioni Fluentd
Fluentd è un agente di raccolta dati open source per la registrazione unificata. Le impostazioni Fluentd
gestiscono la connessione del contenitore a un server Fluentd. Il contenitore include un provider di registrazione di Fluentd che consente al contenitore di scrivere log e, facoltativamente, dati delle metriche in un server di Fluentd.
La tabella seguente illustra le impostazioni di configurazione supportate nella sezione Fluentd
.
Nome | Tipo di dati | Descrizione |
---|---|---|
Host |
Stringa | Indirizzo IP o nome host DNS del server Fluentd. |
Port |
Intero | Porta del server Fluentd. Il valore predefinito è 24224. |
HeartbeatMs |
Intero | Intervallo di heartbeat, espresso in millisecondi. Se prima della scadenza di questo intervallo è non stato inviato alcun traffico dell'evento, viene inviato un heartbeat al server Fluentd. Il valore predefinito è 60000 millisecondi (1 minuto). |
SendBufferSize |
Intero | Spazio di buffer di rete, espresso in byte, allocato per le operazioni di invio. Il valore predefinito è 32768 byte (32 kilobyte). |
TlsConnectionEstablishmentTimeoutMs |
Intero | Timeout, espresso in millisecondi, per stabilire una connessione SSL/TLS con il server Fluentd. Il valore predefinito è 10000 millisecondi (10 secondi). Se UseTLS è impostato su false, questo valore viene ignorato. |
UseTLS |
Booleano | Indica se il contenitore deve usare SSL/TLS per comunicare con il server Fluentd. Il valore predefinito è false. |
Impostazioni delle credenziali del proxy HTTP
Se è necessario configurare un proxy HTTP per eseguire le richieste in uscita, usare questi due argomenti:
Nome | Tipo di dati | Descrizione |
---|---|---|
HTTP_PROXY | string | Il proxy da usare, ad esempio, http://proxy:8888 <proxy-url> |
HTTP_PROXY_CREDS | string | Tutte le credenziali necessarie per l'autenticazione nel proxy, ad esempio username:password . Questo valore deve essere in lettere minuscole. |
<proxy-user> |
string | L'utente per il proxy. |
<proxy-password> |
string | La password associata a <proxy-user> per il proxy. |
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
HTTP_PROXY=<proxy-url> \
HTTP_PROXY_CREDS=<proxy-user>:<proxy-password> \
Impostazioni di registrazione
Le impostazioni Logging
gestiscono il supporto di registrazione di ASP.NET Core per il contenitore. È possibile usare le stesse impostazioni di configurazione e gli stessi valori per il contenitore che si usano per un'applicazione ASP.NET Core.
I provider di registrazione seguenti sono supportati dal contenitore:
Provider | Scopo |
---|---|
Console | Provider di registrazione Console di ASP.NET Core. Tutti i valori predefiniti e le impostazioni di configurazione di ASP.NET Core per questo provider di registrazione sono supportati. |
Debug | Provider di registrazione Debug di ASP.NET Core. Tutti i valori predefiniti e le impostazioni di configurazione di ASP.NET Core per questo provider di registrazione sono supportati. |
Disco | Provider di registrazione JSON. Questo provider di registrazione scrive i dati di log nel montaggio di output. |
Questo comando del contenitore archivia informazioni di registrazione nel formato JSON al montaggio di output:
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Disk:Format=json \
Mounts:Output=/output
Questo comando del contenitore visualizza informazioni di debug, con il prefisso dbug
, durante l'esecuzione del contenitore:
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Console:LogLevel:Default=Debug
Registrazione su disco
Il provider di registrazione Disk
supporta le impostazioni di configurazione seguenti:
Nome | Tipo di dati | Descrizione |
---|---|---|
Format |
Stringa | Formato di output dei file di log. Nota: per abilitare il provider di registrazione, questo valore deve essere impostato su json . Se questo valore viene specificato senza specificare anche un montaggio di output durante la creazione di un'istanza di un contenitore, si verifica un errore. |
MaxFileSize |
Intero | Dimensione massima, espressa in megabyte (MB), di un file di log. Quando la dimensione del file di log corrente corrisponde a questo valore o lo supera, il provider di registrazione avvia un nuovo file di log. Se viene specificato -1, la dimensione del file di log è limitata solo dalla dimensione massima del file del montaggio di output eventualmente presente. Il valore predefinito è 1. |
Per altre informazioni sulla configurazione del supporto di registrazione di ASP.NET Core, vedere Registrazione in ASP.NET Core.
Impostazioni dei volumi
Usare i volumi per leggere e scrivere dati da e verso il contenitore. I volumi sono gli elementi preferiti per rendere persistenti i dati generati e usati dai contenitori Docker. È possibile specificare un montaggio di input o un montaggio di output includendo l'opzione volumes
e specificando type
(binding), source
(percorso della cartella) e target
(parametro del percorso del file).
Il contenitore di Informazioni sui documenti richiede un volume di input e un volume di output. Il volume di input può essere di sola lettura (ro
) ed è necessario per accedere ai dati usati per il training e l'assegnazione di punteggi. Il volume di output deve essere accessibile in scrittura e viene usato per archiviare i modelli e i dati temporanei.
La sintassi esatta della posizione del volume host varia a seconda del sistema operativo host. Inoltre, la posizione del volume del computer host potrebbe non essere accessibile a causa di un conflitto tra le autorizzazioni dell'account del servizio Docker e le autorizzazioni della posizione di montaggio dell'host.
File docker-compose.yml di esempio
Il metodo docker compose viene creato in tre passaggi:
- Creare un Dockerfile.
- Definire i servizi in un file docker-compose.yml in modo che possano essere eseguiti insieme in un ambiente isolato.
- Eseguire
docker-compose up
per avviare ed eseguire i servizi.
Esempio di contenitore singolo
In questo esempio immettere i valori {FORM_RECOGNIZER_ENDPOINT_URI} e {FORM_RECOGNIZER_KEY} per l'istanza del contenitore Layout.
Contenitore Layout
version: "3.9"
services:
azure-cognitive-service-layout:
container_name: azure-cognitive-service-layout
image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- key={FORM_RECOGNIZER_KEY}
ports:
- "5000"
networks:
- ocrvnet
networks:
ocrvnet:
driver: bridge
Esempio di più contenitori
Contenitori Ricevuta e Lettura OCR
In questo esempio immettere i valori {FORM_RECOGNIZER_ENDPOINT_URI} e {FORM_RECOGNIZER_KEY} per il contenitore Ricevuta e i valori {COMPUTER_VISION_ENDPOINT_URI} e {COMPUTER_VISION_KEY} per il contenitore Lettura di Visione di Azure AI.
version: "3"
services:
azure-cognitive-service-receipt:
container_name: azure-cognitive-service-receipt
image: cognitiveservicespreview.azurecr.io/microsoft/cognitive-services-form-recognizer-receipt:2.1
environment:
- EULA=accept
- billing={FORM_RECOGNIZER_ENDPOINT_URI}
- key={FORM_RECOGNIZER_KEY}
- AzureCognitiveServiceReadHost=http://azure-cognitive-service-read:5000
ports:
- "5000:5050"
networks:
- ocrvnet
azure-cognitive-service-read:
container_name: azure-cognitive-service-read
image: mcr.microsoft.com/azure-cognitive-services/vision/read:3.2
environment:
- EULA=accept
- billing={COMPUTER_VISION_ENDPOINT_URI}
- key={COMPUTER_VISION_KEY}
networks:
- ocrvnet
networks:
ocrvnet:
driver: bridge