你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
配置文档智能容器
目前,文档智能版本 2022-08-31 (GA)
提供对所有模型的容器支持,文档智能版本 2023-07-31 (GA)
提供对读取、布局、发票、收据和 ID 文档模型的容器支持:
- REST API
2022-08-31 (GA)
- REST API
2023-07-31 (GA)
- 面向
REST API 2022-08-31 (GA)
的客户端库 - 面向
REST API 2023-07-31 (GA)
的客户端库
✔️ 有关支持的容器文档,请参阅配置文档智能 v3.0 容器。
此内容适用于: v3.0 (GA) v3.1 (GA)
使用文档智能容器,你可以构建经过优化的应用程序体系结构,以利用强大的云功能和边缘位置。 容器提供了一个最简单的隔离环境,可以轻松部署在本地和云中。 在本文中,你将了解如何使用 docker compose
命令参数配置文档智能容器运行时环境。 以下七个文档智能功能容器支持文档智能功能 - 读取、布局、名片、ID 文档、回执、发票、自定义。 这些容器既有必需的设置也有可选设置。 有关示例,请参阅示例 docker-compose.yml 文件部分。
配置设置
每个容器都有以下配置设置:
必须 | 设置 | 目的 |
---|---|---|
是 | 键 | 跟踪账单信息。 |
是 | Billing | 指定 Azure 上服务资源的终结点 URI。 有关详细信息,请参阅计费。 有关详细信息和区域终结点的完整列表,请参阅 Azure AI 服务的自定义子域名。 |
是 | Eula | 表示已接受容器的许可条款。 |
否 | ApplicationInsights | 允许向容器添加 Azure Application Insights 客户支持。 |
否 | Fluentd | 将日志和(可选)指标数据写入 Fluentd 服务器。 |
否 | HTTP 代理 | 配置 HTTP 代理以发出出站请求。 |
否 | 日志记录 | 为容器提供 ASP.NET Core 日志记录支持。 |
密钥和计费配置设置
Key
设置指定用于跟踪容器账单信息的 Azure 资源键。 键值必须是在“计费配置设置”部分为 Billing
指定的资源的有效键。
Billing
设置指定 Azure 上用于计量容器账单信息的资源的终结点 URI。 此配置设置的值必须是 Azure 上某个资源的有效终结点 URI。 容器约每 10 到 15 分钟报告一次使用情况。
可以在 Azure 门户中的“密钥和终结点”页上找到这些设置。
EULA
设置
Eula
设置表示已接受容器的许可条款。 必须为此配置设置指定值,并且该值必须设置为 accept
。
必须 | 名称 | 数据类型 | 说明 |
---|---|---|---|
是 | Eula |
字符串 | 接受许可证 示例: Eula=accept |
Azure AI 服务容器根据管理 Azure 使用的协议获得许可。 如果没有管理 Azure 使用的现有协议,则表示同意管理 Azure 使用的协议是 Microsoft 在线订阅协议,其中包含联机服务条款。 对于预览版,还应同意 Microsoft Azure 预览版补充使用条款。 使用容器即表示同意这些条款。
ApplicationInsights 设置
此 ApplicationInsights
设置允许向容器添加 Azure Application Insights 遥测支持。 Application Insights 可深入监视容器。 可以轻松监视容器的可用性、性能和使用情况。 还可以快速识别和诊断容器中的错误。
下表描述了 ApplicationInsights
节支持的配置设置。
必须 | 名称 | 数据类型 | 说明 |
---|---|---|---|
否 | InstrumentationKey |
字符串 | 容器遥测数据要发送到的 Application Insights 实例的检测密钥。 有关详细信息,请参阅适用于 ASP.NET Core 的 Application Insights。 例如: InstrumentationKey=123456789 |
Fluentd 设置
Fluentd 是一个用于统一日志记录的开放源代码数据收集器。 Fluentd
设置管理容器到 Fluentd 服务器的连接。 容器包含一个 Fluentd 日志记录提供程序,使容器可以向 Fluentd 服务器写入日志和(可选)指标数据。
下表描述了 Fluentd
节支持的配置设置。
名称 | 数据类型 | 说明 |
---|---|---|
Host |
字符串 | Fluentd 服务器的 IP 地址或 DNS 主机名。 |
Port |
整数 | Fluentd 服务器的端口。 默认值为 24224。 |
HeartbeatMs |
整数 | 检测信号间隔,以毫秒为单位。 如果在此间隔过期之前未发送事件流量,则将检测信号发送到 Fluentd 服务器。 默认值为 60000 毫秒(1 分钟)。 |
SendBufferSize |
整数 | 为发送操作分配的网络缓冲空间,以字节为单位。 默认值为 32768 字节(32 KB)。 |
TlsConnectionEstablishmentTimeoutMs |
Integer | 与 Fluentd 服务器建立 SSL/TLS 连接的超时值,以毫秒为单位。 默认值为 10000 毫秒(10 秒)。 如果 UseTLS 设置为 false,则会忽略此值。 |
UseTLS |
布尔 | 指示容器是否应使用 SSL/TLS 来与 Fluentd 服务器通信。 默认值为 false。 |
HTTP 代理凭据设置
如果需要配置 HTTP 代理以发出出站请求,请使用以下两个参数:
名称 | 数据类型 | 说明 |
---|---|---|
HTTP_PROXY | string | 要使用的代理,例如 http://proxy:8888 <proxy-url> |
HTTP_PROXY_CREDS | 字符串 | 对代理进行身份验证所需的任何凭据,例如 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
设置管理容器的 ASP.NET Core 日志记录支持。 可对容器使用用于 ASP.NET Core 应用程序的相同配置设置和值。
容器支持以下日志记录提供程序:
提供程序 | 目标 |
---|---|
控制台 | ASP.NET Core Console 日志记录提供程序。 支持此日志记录提供程序的所有 ASP.NET Core 配置设置和默认值。 |
调试 | ASP.NET Core Debug 日志记录提供程序。 支持此日志记录提供程序的所有 ASP.NET Core 配置设置和默认值。 |
Disk | 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
日志记录提供程序支持以下配置设置:
名称 | 数据类型 | 说明 |
---|---|---|
Format |
字符串 | 日志文件的输出格式。 注意:此值必须设置为 json 才能启用日志记录提供程序。 如果指定了此值,但未同时在实例化容器时指定输出装入点,则会发生错误。 |
MaxFileSize |
整数 | 日志文件的最大大小,以 MB 为单位。 如果当前日志文件的大小达到或超过此值,则日志记录提供程序会启动新的日志文件。 如果指定 -1,则日志文件的大小仅受输出装入点的最大文件大小(如果有)的限制。 默认值为 1。 |
有关配置 ASP.NET Core 日志记录支持的详细信息,请参阅设置文件配置。
卷设置
使用卷从容器读取数据以及将数据写入容器。 卷是用于保存 Docker 容器生成和使用的数据的首选方式。 你可以通过包括 volumes
选项并指定 type
(绑定)、source
(文件夹路径)和 target
(文件路径参数)来指定输入装载或输出装载。
文档智能容器需要一个输入卷和一个输出卷。 输入卷可以是只读的 (ro
),需要使用它来访问用于训练和评分的数据。 输出卷必须是可写的,用于存储模型和临时数据。
主机卷位置的确切语法因主机操作系统而异。 另外,由于 Docker 服务帐户权限与主机装载位置权限之间有冲突,因此可能无法访问主机的卷位置。
示例 docker-compose.yml 文件
docker compose 方法是通过三个步骤构建的:
- 创建 Dockerfile。
- 在 docker-compose.yml 中定义服务,以便它们可以在隔离的环境中一起运行。
- 运行
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} 值,并输入你的 Azure AI 视觉读取容器的 {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