分享方式:


已中斷連線(離線)環境中的容器

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

✔️ 如需支援的容器檔,請參閱 中斷聯機環境中 的檔智慧 v3.0 容器。

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

什麼是中斷連線的容器?

Azure AI 容器 可讓您彈性地在容器中本機執行一些 Document Intelligence 服務。 線上的容器會在您的環境中在本機執行,並將使用量資訊傳送至雲端以進行計費。 中斷連線的容器適用於容器執行時不需要與雲端連線的情況。

Azure AI 檔智慧容器可讓您使用 Document Intelligence API 搭配容器化的優點。 與隨用隨付定價相比,中斷連線的容器透過承諾用量層定價提供折扣的費率。 透過承諾層定價,您可以根據工作負載的需求,以可預測的總成本,承諾使用 Document Intelligence 功能進行固定費用。

開始使用

在嘗試在離線環境中執行 Docker 容器之前,請確保您熟悉以下需求,以便成功下載和使用容器:

  • 主電腦需求和建議。
  • 用於下載容器的 Docker pull 命令。
  • 如何驗證容器是否正在執行。
  • 如何在容器的端點執行之後,將查詢傳送至該端點。

要求在中斷連線的環境中使用容器的存取權

您必須先填寫並提交要求窗體購買承諾方案,才能在中斷聯機的環境中使用 Document Intelligence 容器。

在 Azure 入口網站 中建立新的資源

首先,在入口網站中布建新的資源。

  • 請確定您選取 Commitment tier disconnected containers DC0 定價層的選項

  • 從至少一個自定義、讀取或預先建置的承諾用量層中選取適當的定價層

    Azure 入口網站 中已中斷連線層設定的螢幕快照。

容器 最小值 建議需求 承諾用量方案
Read 8 核心,10 GB 記憶體 8 核心,24 GB 記憶體 OCR (閱讀)
Layout 8 核心,16 GB 記憶體 8 核心,24 GB 記憶體 預建
Business Card 8 核心,16 GB 記憶體 8 核心,24 GB 記憶體 預建
General Document 8 核心,12 GB 記憶體 8 核心,24 GB 記憶體 預建
ID Document 8 核心,8 GB 記憶體 8 核心,24 GB 記憶體 預建
Invoice 8 核心,16 GB 記憶體 8 核心,24 GB 記憶體 預建
Receipt 8 核心,11 GB 記憶體 8 核心,24 GB 記憶體 預建
Custom Template 8 核心,16 GB 記憶體 8 核心,24 GB 記憶體 自訂 API

收集必要參數

所有 Azure AI 服務的容器都需要三個參數:

  • 用戶許可協定 (EULA) 必須具有 accept
  • Azure 入口網站中資源的端點 URL。
  • 來自 Azure 入口網站之資源的 API 金鑰。

當您第一次執行容器時,同時需要端點 URL 和 API 金鑰,才能針對已中斷連線的使用量設定該容器。 您可以在 Azure 入口網站中資源的金鑰和端點頁面上找到金鑰和端點

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

重要

您將只使用金鑰和端點來設定容器,使其在中斷連線的環境中執行。 設定容器後,您將不需要金鑰和端點值來傳送 API 要求。 安全地加以儲存,例如使用 Azure Key Vault。 此程式只需要一個金鑰。

使用 下載 Docker 容器 docker pull

下載已核准在中斷連線的環境中執行的 Docker 容器。 例如:

Docker 提取命令 格式
• • • • 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 pull 命令

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} 容器本機檔案系統上的授權資料夾位置。 /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

設定容器之後,請使用下一節以授權在您的環境中執行容器,以及適當的記憶體和 CPU 配置。

檔智慧容器模型和設定

設定 容器之後,將會在容器輸出中產生並顯示所下載檔智慧模型和容器組態的值。

在中斷聯機的環境中執行容器

下載授權文件之後,您可以使用授權、適當的記憶體和適當的 CPU 配置,在中斷聯機的環境中執行容器。 以下範例顯示了帶有預留位置值的 docker run 命令之格式設定。 以您自己的值取代這些預留位置值。

無論何時執行容器,授權檔案都必須裝載至容器,而且授權資料夾在容器本機檔案系統上的位置必須是使用 Mounts:License= 指定的。 此外,必須指定輸出裝載,以便可以寫入計費使用量記錄。

預留位置 格式或範例
{IMAGE} 您想要使用的容器映像。 mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice
{MEMORY_SIZE} 要為您容器配置的適當記憶體大小。 4g
{NUMBER_CPUS} 要為您容器配置的適當 CPU 數目。 4
{LICENSE_MOUNT} 授權所在和裝載的路徑。 /host/license:/path/to/license/directory
{OUTPUT_PATH} 用於記錄使用量記錄的輸出路徑。 /host/output:/path/to/output/directory
{CONTAINER_LICENSE_DIRECTORY} 容器本機檔案系統上的授權資料夾位置。 /path/to/license/directory
{CONTAINER_OUTPUT_DIRECTORY} 容器本機檔案系統上的輸出資料夾位置。 /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
    }
  ]
}

疑難排解

在已啟用輸出裝載和記錄的情况下執行容器。 這些設定可讓容器產生記錄檔,有助於針對啟動或執行容器時發生的問題進行疑難解答。

提示

如需疑難解答資訊和指引,請參閱中斷連線的容器常見問題(FAQ)。

下一步