Document Intelligence コンテナーを構成する
現在、コンテナーのサポートは、すべてのモデルに対してドキュメント インテリジェンスのバージョン 2022-08-31 (GA)
で利用でき、読み取り、レイアウト、請求書、領収書、ID ドキュメント モデルに対してバージョン 2023-07-31 (GA)
で利用できます。
- REST API
2022-08-31 (GA)
- REST API
2023-07-31 (GA)
REST API 2022-08-31 (GA)
をターゲットとする SDKREST API 2023-07-31 (GA)
をターゲットとする SDK
✔️ サポートされているコンテナーのドキュメントについては、 Document Intelligence v3.0 コンテナーの構成に関する記事を参照してください。
このコンテンツの適用対象: v3.0 (GA) v3.1 (GA)
Document Intelligence コンテナーを使用すると、堅牢なクラウド機能とエッジのローカル性という両方のメリットを活用できるように最適化されたアプリケーション アーキテクチャを構築できます。 コンテナーは、オンプレミスでもクラウドにも簡単に配置できる、最小限で隔離された環境を提供します。 この記事では、docker compose
コマンドの引数を使用して Document Intelligence コンテナーのランタイム環境を構成する方法を示します。 Document Intelligence 機能は、7 個の Document Intelligence 機能コンテナー (読み取り、レイアウト、名刺、ID ドキュメント、領収書、請求書、カスタム) によってサポートされています。 これらのコンテナーには、必須とオプションの両方の設定があります。 いくつかの例については、docker-compose.yml ファイルの例に関するセクションを参照してください。
構成設定
各コンテナーには、次の構成設定があります。
必須 | 設定 | 目的 |
---|---|---|
はい | キー | 課金情報を追跡します。 |
はい | Billing | Azure 上のサービス リソースのエンドポイント URI を指定します。 詳細については、「課金」を "参照" してください。 リージョンのエンドポイントの詳細および完全な一覧については、「Azure AI サービスのカスタム サブドメイン名」を "参照" してください。 |
はい | Eula | お客様がコンテナーのライセンスに同意したことを示します。 |
いいえ | ApplicationInsights | コンテナーに Azure Application Insights カスタマー サポートを追加できるようにします。 |
いいえ | Fluentd | ログと (必要に応じて) メトリック データを Fluentd サーバーに書き込みます。 |
いいえ | HTTP Proxy | 送信要求を行うために、HTTP プロキシを構成します。 |
いいえ | Logging | ASP.NET Core のログ サポートをお客様のコンテナーに提供します。 |
重要
Key
、Billing
、および Eula
の各設定は一緒に使用されます。 3 つの設定すべてに有効な値を指定する必要があります。そうしないと、コンテナーは起動しません。 これらの構成設定を使用してコンテナーをインスタンス化する方法の詳細については、「課金」を参照してください。
キーと請求先の構成設定
Key
設定では、コンテナーの課金情報を追跡するために使用される Azure リソース キーを指定します。 キーの値は、「Billing 構成設定」セクションで Billing
に対して指定されたリソースの有効なキーである必要があります。
Billing
設定では、コンテナーの課金情報を測定するために使用される Azure のリソースのエンドポイント URI を指定します。 この構成設定の値は、Azure のリソースの有効なエンドポイント URI である必要があります。 コンテナーから、約 10 ~ 15 分ごとに使用状況が報告されます。
これらの設定は Azure portal の [キーとエンドポイント] ページで確認できます。
EULA の設定
Eula
設定は、コンテナーのライセンスに同意済みであることを示します。 この構成設定の値を指定する必要があり、値を accept
に設定する必要があります。
必須 | 名前 | データの種類 | Description |
---|---|---|---|
イエス | Eula |
String | ライセンスへの同意 例: Eula=accept |
Azure AI サービス コンテナーは、Azure の使用について定める契約の下でライセンスされます。 Azure の使用について定める契約をまだ結んでいない場合、Azure の使用について定める契約がマイクロソフト オンライン サブスクリプション契約 (オンライン サービス規約を含む) であることに同意するものとします。 また、プレビューに関しては、「Microsoft Azure プレビューの追加使用条件」にも同意するものとします。 コンテナーの使用をもって、お客様はこれらの規約に同意したものとします。
ApplicationInsights 設定
ApplicationInsights
設定を使用すると、Azure Application Insights テレメトリのサポートをお客様のコンテナーに追加できます。 Application Insights によってお客様のコンテナーを詳細に監視できます。 コンテナーの可用性、パフォーマンス、利用状況を簡単に監視できます。 さらに、お客様のコンテナーのエラーを迅速に特定して診断することもできます。
次の表に、ApplicationInsights
セクションでサポートされている構成設定について説明します。
必須 | 名前 | データの種類 | 説明 |
---|---|---|---|
いいえ | InstrumentationKey |
String | コンテナーのテレメトリ データの送信先の Application Insights インスタンスのインストルメンテーション キー。 詳細については、「Application Insights for ASP.NET Core」を参照してください。 例: InstrumentationKey=123456789 |
Fluentd の設定
Fluentd は、ログの一元管理を実現するオープンソースのデータ コレクターです。 Fluentd サーバーに対するコンテナーの接続は、Fluentd
の設定によって管理されます。 コンテナーには、お客様のコンテナーでログ、および必要に応じてメトリック データを Fluentd サーバーに書き込むことができる Fluentd ログ プロバイダーが含まれます。
次の表に、Fluentd
セクションでサポートされている構成設定について説明します。
名前 | データの種類 | Description |
---|---|---|
Host |
String | Fluentd サーバーの IP アドレスまたは DNS ホスト名。 |
Port |
Integer | Fluentd サーバーのポート。 既定値は 24224 です。 |
HeartbeatMs |
Integer | ハートビート間隔 (ミリ秒)。 この間隔が期限切れになるまでにイベント トラフィックが送信されなかった場合、ハートビートが Fluentd サーバーに送信されます。 既定値は、60000 ミリ秒 (1 分) です。 |
SendBufferSize |
Integer | 送信操作用に割り当てられたネットワーク バッファー領域 (バイト数)。 既定値は、32,768 バイト (32 キロバイト) です。 |
TlsConnectionEstablishmentTimeoutMs |
Integer | Fluentd サーバーとの SSL または TLS 接続を確立するためのタイムアウト (ミリ秒)。 既定値は、10000 ミリ秒 (10 秒) です。UseTLS が false に設定されている場合、この値は無視されます。 |
UseTLS |
ブール型 | コンテナーで、Fluentd サーバーとの通信に SSL または TLS を使用する必要があるかどうかを示します。 既定値は false です。 |
HTTP プロキシ資格情報設定
送信要求を行うために HTTP プロキシを構成する必要がある場合は、次の 2 つの引数を使用します。
Name | データの種類 | 説明 |
---|---|---|
HTTP_PROXY | string | 使用するプロキシ。例: http://proxy:8888 <proxy-url> |
HTTP_PROXY_CREDS | string | プロキシで認証されるために必要な資格情報。例: username:password 。 この値は小文字で指定する必要があります。 |
<proxy-user> |
string | プロキシのユーザー。 |
<proxy-password> |
string | プロキシの <proxy-user> に関連付けられているパスワード。 |
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> \
Logging の設定
Logging
の設定では、お客様のコンテナーの ASP.NET Core ログ サポートを管理します。 お客様が ASP.NET Core アプリケーションに対して使用するのと同じ構成設定と値をお客様のコンテナーに使用できます。
コンテナーでは、次のログ プロバイダーがサポートされています。
プロバイダー | 目的 |
---|---|
コンソール | ASP.NET Core Console ログ プロバイダー。 このログ プロバイダーのすべての ASP.NET Core 構成設定と既定値がサポートされています。 |
デバッグ | ASP.NET Core Debug ログ プロバイダー。 このログ プロバイダーのすべての ASP.NET Core 構成設定と既定値がサポートされています。 |
ディスク | JSON ログ プロバイダー。 このログ プロバイダーは、ログ データを出力マウントに書き込みます。 |
このコンテナー コマンドは、ログ情報を JSON 形式で出力マウントに格納します。
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
このコンテナー コマンドは、コンテナーの実行中に、dbug
で始まるデバッグ情報を表示します。
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
Disk ログ
Disk
ログ プロバイダーでは、次の構成設定がサポートされます。
名前 | データの種類 | Description |
---|---|---|
Format |
String | ログ ファイルの出力形式。 注: ログ プロバイダーを有効にするためにこの値を json に設定する必要があります。 コンテナーのインスタンス化中に、出力マウントを指定せずに、この値を指定した場合、エラーが発生します。 |
MaxFileSize |
Integer | ログ ファイルの最大サイズ (メガバイト (MB))。 現在のログ ファイルのサイズがこの値を満たしているか、または超えている場合、ログ プロバイダーによって新しいログ ファイルが開始されます。 -1 が指定されている場合、ログ ファイルのサイズは、出力マウントの最大ファイル サイズ (存在する場合) によってのみ制限されます。 既定値は 1 です。 |
ASP.NET Core ログのサポートを構成する方法の詳細については、設定ファイル構成に関するページを参照してください。
ボリュームの設定
コンテナー間でデータを読み書きするには、ボリュームを使用します。 ボリュームは、Docker コンテナーで生成および使用されるデータの永続化に適しています。 volumes
オプションを指定し、type
(バインド)、source
(フォルダへのパス)、target
(ファイル パス パラメーター) を指定することで、入力マウントまたは出力マウントを指定できます。
Document Intelligence コンテナーには、入力ボリュームと出力ボリュームが必要です。 入力ボリュームは読み取り専用 (ro
) にすることができ、トレーニングおよびスコアリングに使用されるデータへのアクセスに必要です。 出力ボリュームは書き込み可能である必要があり、モデルと一時データの保管に使用します。
ホスト ボリュームの場所を示す具体的な構文は、ホスト オペレーティング システムによって異なります。 また、Docker サービス アカウントのアクセス許可とホスト ボリュームの場所のアクセス許可が競合することが原因で、ホスト コンピューターのマウント場所にアクセスできない場合があります。
docker-compose.yml ファイルの例
Docker の作成方法は、次の 3 つの手順から構成されています。
- Dockerfile を作成します。
- 隔離された環境で一緒に実行できるように、docker-compose.yml でサービスを定義します。
docker-compose up
を実行してサービスを起動し、実行します。
1 つのコンテナーの例
この例では、レイアウト コンテナー インスタンスに {FORM_RECOGNIZER_ENDPOINT_URI} と {FORM_RECOGNIZER_KEY} の値を入力します。
レイアウト コンテナー
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
複数のコンテナーの例
レシートと OCR Read のコンテナー
この例では、レシート コンテナーに {FORM_RECOGNIZER_ENDPOINT_URI} と {FORM_RECOGNIZER_KEY} の値を入力し、Azure AI Vision 読み取りコンテナーに {COMPUTER_VISION_ENDPOINT_URI} と {COMPUTER_VISION_KEY} の値を入力します。
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