共用方式為


設定文件智慧服務容器

所有模型的檔智慧版本 2022-08-31 (GA) 以及 2023-07-31 (GA) 讀取、配置、發票、收據和標識符檔模型目前都支援容器:

✔️ 如需支援的容器檔,請參閱 設定檔智慧 v3.0 容器

此內容適用於:複選標記v3.0 (GA)複選標記v3.1 (GA)

透過 Document Intelligence 容器,您可以建置經過優化的應用程式架構,以充分利用健全的雲端功能和邊緣位置。 容器提供極簡的隔離環境,可以在內部部署和雲端中輕鬆部署。 在本文中,我們會示範如何使用 docker compose 命令引數來設定文件智慧服務容器執行階段環境。 這個檔案智慧功能容器支援檔案智慧功能:讀取、版面配置、名片識別碼檔收據、發票自定義。 這些容器具有必要和選擇性的設定。 如需一些範例,請參閱範例 docker-compose.yml 檔案區段。

組態設定

每個容器具有下列組態設定:

必要 設定 目的
Yes 索引鍵 追蹤計費資訊。
Yes Billing 指定 Azure 上服務資源的端點 URI。 如需詳細資訊,請參閱帳單。 如需詳細資訊和完整的區域端點清單,請參閱Azure AI 服務的自訂子網域名稱
Yes Eula 表示您接受容器的授權。
No ApplicationInsights 可讓您為容器新增 Azure 應用程式 Insights 客戶支援。
No Fluentd 將記錄和/或計量資料寫入 Fluentd 伺服器。
No HTTP Proxy 設定 HTTP Proxy 以提出輸出要求。
No Logging 提供適用於容器的 ASP.NET Core 記錄支援。

重要

KeyBillingEula 設定會一起使用。 您必須為所有三個設定提供有效的值;否則,您的容器將不會啟動。 如需使用這些組態設定來將容器具現化的詳細資訊,請參閱帳單

金鑰和帳單組態設定

Key 設定會指定用來追蹤容器帳單資訊的 Azure 資源金鑰。 Key 的值必須是 [帳單組態設定] 區段中指定 Billing 之資源的有效密鑰。

Billing 設定會指定 Azure 上資源的端點 URI,用來計量容器的計費資訊。 此組態設定的值必須是 Azure 上資源的有效端點 URI。 容器會每隔 10 到 15 分鐘回報使用量。

您可以在 Azure 入口網站的 [金鑰和端點] 頁面上找到這些設定。

Azure 入口網站金鑰和端點頁面的螢幕擷取畫面。

EULA 設定

Eula 設定可指出您已接受容器的授權。 您必須為此組態設定指定值,且該值必須設定為 accept

必要 名稱 資料類型 描述
Yes Eula String 接受授權

範例:
Eula=accept

Azure AI 服務容器是在您的合約 (控管您對於 Azure 的使用) 底下獲得授權。 如果您沒有可控管您使用 Azure 的現有合約,您同意控管使用 Azure 的合約是 Microsoft 線上訂閱合約 (其中包含線上服務條款)。 對於預覽版,您也同意 Microsoft Azure 預覽專用的補充使用條款。 使用容器即表示您同意這些條款。

ApplicationInsights 設定

ApplicationInsights 設定可讓您將 Azure Application Insights 遙測支援新增至容器。 Application Insights 可提供深入容器監視。 您可輕鬆監視容器的可用性、效能和使用情形。 您也可以快速識別並診斷容器中的錯誤。

下表說明 ApplicationInsights 區段下所支援的組態設定。

必要 名稱 資料類型 描述
No InstrumentationKey String Application Insights 執行個體的檢測金鑰,容器的遙測資料會傳送到這裡。 如需詳細資訊,請參閱 ASP.NET Core 的 Application Insights

範例:
InstrumentationKey=123456789

Fluentd 設定

Fluentd 是適用於統一記錄的開放原始碼資料收集器。 Fluentd 設定可管理容器對 Fluentd 伺服器的連線。 容器包含 Fluentd 記錄提供者,可讓您的容器將記錄 (及選擇性的計量資料) 寫入至 Fluentd 伺服器。

下表說明 Fluentd 區段下所支援的組態設定。

名稱 資料類型 描述
Host String Fluentd 伺服器的 IP 位址或 DNS 主機名稱。
Port 整數 Fluentd 伺服器的連接埠。
預設值為 24224。
HeartbeatMs 整數 活動訊號間隔,以毫秒為單位。 如果在此間隔到期之前未傳送任何事件流量,系統便會將活動訊號傳送至 Fluentd 伺服器。 預設值為 60000 毫秒 (1 分鐘)。
SendBufferSize 整數 針對傳送作業所配置的網路緩衝空間,以位元組為單位。 預設值為 32768 個位元組 (32 KB)。
TlsConnectionEstablishmentTimeoutMs 整數 向 Fluentd 伺服器建立 SSL/TLS 連線的逾時,以毫秒為單位。 預設值是 10000 毫秒 (10 秒)。
如果將 UseTLS 設定為 false,便會忽略此值。
UseTLS 布林值 指出容器是否應使用 SSL/TLS 來與 Fluentd 伺服器通訊。 預設值為 false。

HTTP Proxy 認證設定

如果您需要設定 HTTP Proxy 以進行輸出要求,請使用以下兩個引數:

名稱 資料類型 描述
HTTP_PROXY string 要使用的 Proxy,例如 http://proxy:8888
<proxy-url>
HTTP_PROXY_CREDS string 對 Proxy 進行驗證所需的任何認證,例如 username:password。 此值必須是小寫
<proxy-user> string Proxy 的使用者。
<proxy-password> string 對於 Proxy 與 <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 設定可管理適用於容器的 ASP.NET Core 記錄支援。 對於您用於 ASP.NET Core 應用程式的容器,您可以使用相同的組態設定和值。

容器支援下列記錄提供者:

Provider 目的
主控台 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 記錄提供者支援下列組態設定:

名稱 資料類型 描述
Format String 適用於記錄檔的輸出格式。
注意:此值必須設定為 json 以啟用記錄提供者。 如果在具現化期間指定此值,但沒有同時指定輸出裝載,便會發生錯誤。
MaxFileSize 整數 記錄檔的大小上限,以 MB 為單位。 當目前記錄檔的大小符合或超過此值時,記錄提供者便會建立新的記錄檔。 如果指定 -1,記錄檔的大小便只會受限於輸出裝載的檔案大小上限 (若有的話)。 預設值是 1。

如需設定 ASP.NET Core 記錄支援的詳細資訊,請參閱設定檔案組態

磁碟區設定

使用磁碟區將資料讀取和寫入至容器,及從中讀取和寫入。 磁碟區是保存 Docker 容器所產生和使用之資料的慣用方式。 您可以透過包含 volumes 選項並指定 type (繫結)、source (資料夾路徑) 和 target (檔案路徑參數) 來指定輸入裝載或輸出裝載。

文件智慧服務容器需要輸入磁碟區和輸出磁碟區。 輸入磁碟區可以是唯讀的 (ro),而且需要存取用於定型和評分的數據。 輸出磁碟區必須可供寫入,您可以使用其來儲存模型和暫存資料。

主機磁碟區位置的正確語法會隨著主機作業系統而有所不同。 此外,由於 Docker 服務帳戶權限和主機裝載位置權限之間的衝突,可能無法存取主機電腦的磁碟區位置。

範例 docker-compose.yml 檔案

docker compose 方法是由三個步驟所建置:

  1. 建立 Dockerfile。
  2. docker-compose.yml 中定義服務,以便在隔離的環境中一起執行。
  3. 執行 docker-compose up 以啟動並執行服務。

單一容器範例

在此範例中,輸入您版面配置容器執行個體的 {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 讀取容器

在此範例中,輸入您收據容器的 {FORM_RECOGNIZER_ENDPOINT_URI} 和 {FORM_RECOGNIZER_KEY} 值,和 {COMPUTER_VISION_ENDPOINT_URI} 以及您 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

下一步