配置语言理解 Docker 容器
重要
LUIS 将于 2025 年 10 月 1 日停用,从 2023 年 4 月 1 日开始,你将无法创建新的 LUIS 资源。 建议将 LUIS 应用程序迁移到对话语言理解,以便从持续的产品支持和多语言功能中受益。
语言理解 (LUIS) 容器运行时环境使用 docker run
命令参数进行配置。 LUIS 有几个必需的设置以及一些可选设置。 多个示例命令均可用。 特定于容器的设置是输入装载设置和账单设置。
配置设置
此容器具有以下配置设置:
必须 | 设置 | 目的 |
---|---|---|
是 | ApiKey | 用于跟踪账单信息。 |
否 | ApplicationInsights | 允许向容器添加 Azure Application Insights 遥测支持。 |
是 | Billing | 指定 Azure 上服务资源的终结点 URI。 |
是 | Eula | 表示已接受容器的许可条款。 |
否 | Fluentd | 将日志和(可选)指标数据写入 Fluentd 服务器。 |
否 | Http 代理 | 配置 HTTP 代理以发出出站请求。 |
否 | 日志记录 | 为容器提供 ASP.NET Core 日志记录支持。 |
是 | Mounts | 从主计算机读取数据并将其写入到容器,以及从容器读回数据并将其写回到主计算机。 |
ApiKey 设置
ApiKey
设置指定用于跟踪容器账单信息的 Azure 资源键。 必须为 ApiKey 指定值,且此值必须是为 Billing
配置设置指定的“Azure AI 服务”资源的有效密钥。
可以在以下位置找到此设置:
- Azure 门户:“密钥”下的 Azure AI 服务 资源管理
- LUIS 门户:“密钥和终结点”设置页。
请勿使用初学者密钥或创作密钥。
ApplicationInsights 设置
此 ApplicationInsights
设置允许向容器添加 Azure Application Insights 遥测支持。 Application Insights 可深入监视容器。 可以轻松监视容器的可用性、性能和使用情况。 还可以快速识别和诊断容器中的错误。
下表描述了 ApplicationInsights
节支持的配置设置。
必须 | 名称 | 数据类型 | 说明 |
---|---|---|---|
否 | InstrumentationKey |
字符串 | 容器遥测数据要发送到的 Application Insights 实例的检测密钥。 有关详细信息,请参阅适用于 ASP.NET Core 的 Application Insights。 例如: InstrumentationKey=123456789 |
账单设置
Billing
设置指定 Azure 上用于计量容器帐单信息的 Azure AI 服务 资源的终结点 URI。 必须为这个配置设置指定值,且此值必须是 Azure 上 Azure AI 服务资源的有效终结点 URI。 容器约每 10 到 15 分钟报告一次使用情况。
可以在以下位置找到此设置:
- Azure 门户:Azure AI 服务 概述,已标记
Endpoint
- LUIS 门户:“密钥和终结点设置”页面,作为终结点 URI 的一部分。
必须 | 名称 | 数据类型 | 说明 |
---|---|---|---|
是 | Billing |
字符串 | 账单终结点 URI。 有关获取账单 URI 的详细信息,请参阅收集必需的参数。 有关详细信息和区域终结点的完整列表,请参阅 Azure AI 服务的自定义子域名。 |
Eula 设置
Eula
设置表示已接受容器的许可条款。 必须为此配置设置指定值,并且该值必须设置为 accept
。
必须 | 名称 | 数据类型 | 说明 |
---|---|---|---|
是 | Eula |
字符串 | 接受许可证 示例: Eula=accept |
Azure AI 服务容器根据管理 Azure 使用的协议获得许可。 如果没有管理 Azure 使用情况的现有协议,则表示你同意管理 Azure 使用情况的协议是 Azure 在线订阅协议,其中包含联机服务条款。 使用容器即表示同意这些条款。
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 run 命令中指定 --mount
选项来指定输入装载或输出装载。
LUIS 容器不使用输入或输出装载来存储训练或服务数据。
主机确切语法的安装位置因主机操作系统不同而异。 此外,由于 docker 服务帐户使用的权限与主机安装位置权限之间的冲突,可能无法访问主计算机的装载位置。
下表描述了支持的设置。
必须 | 名称 | 数据类型 | 说明 |
---|---|---|---|
是 | Input |
字符串 | 输入装入点的目标。 默认值是 /input 。 这是 LUIS 包文件的位置。 示例: --mount type=bind,src=c:\input,target=/input |
否 | Output |
String | 输出装入点的目标。 默认值为 /output 。 这是日志的位置。 这包括 LUIS 查询日志和容器日志。 示例: --mount type=bind,src=c:\output,target=/output |
Docker 运行命令示例
以下示例使用的配置设置说明如何编写和使用 docker run
命令。 运行后,容器将继续运行,直到停止它。
- 这些示例使用
C:
驱动器外的目录来避免 Windows 上的任何权限冲突。 如果需要使用特定目录作为输入目录,则需要授予 docker 服务权限。 - 除非非常熟悉 docker 容器,否则不要更改参数顺序。
- 如果使用的是不同的操作系统,请使用正确的控制台/终端、用于装载的文件夹语法和系统的行继续符。 这些示例假定 Windows 控制台使用行继续符
^
。 由于容器是 Linux 操作系统,因此目标装载使用 Linux 样式的文件夹语法。
将 {argument_name} 替换为为你自己的值:
占位符 | Value | 格式或示例 |
---|---|---|
{API_KEY} | “Azure LUIS 密钥”页上的 LUIS 资源的终结点密钥。 |
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
{ENDPOINT_URI} | Azure LUIS “概览”页面上提供了账单终结点值。 |
有关显式示例,请参阅收集必需的参数。 |
注意
2019 年 7 月 1 日之后创建的新资源将使用自定义子域名。 有关详细信息和区域终结点的完整列表,请参阅 Azure AI 服务的自定义子域名。
重要
必须指定 Eula
、Billing
和 ApiKey
选项运行容器;否则,该容器不会启动。 有关详细信息,请参阅计费。
ApiKey 值是 LUIS 门户中“密钥和终结点”页面中的“密钥”,也可以在 Azure Azure AI services
资源密钥页上找到。
基本示例
以下示例具有运行容器的最少参数:
docker run --rm -it -p 5000:5000 --memory 4g --cpus 2 ^
--mount type=bind,src=c:\input,target=/input ^
--mount type=bind,src=c:\output,target=/output ^
mcr.microsoft.com/azure-cognitive-services/luis:latest ^
Eula=accept ^
Billing={ENDPOINT_URL} ^
ApiKey={API_KEY}
ApplicationInsights 示例
以下示例设置 ApplicationInsights 参数,以便在容器运行时将遥测数据发送到 Application Insights:
docker run --rm -it -p 5000:5000 --memory 6g --cpus 2 ^
--mount type=bind,src=c:\input,target=/input ^
--mount type=bind,src=c:\output,target=/output ^
mcr.microsoft.com/azure-cognitive-services/luis:latest ^
Eula=accept ^
Billing={ENDPOINT_URL} ^
ApiKey={API_KEY} ^
InstrumentationKey={INSTRUMENTATION_KEY}
日志记录示例
以下命令设置日志记录级别 Logging:Console:LogLevel
,将日志记录级别配置为 Information
。
docker run --rm -it -p 5000:5000 --memory 6g --cpus 2 ^
--mount type=bind,src=c:\input,target=/input ^
--mount type=bind,src=c:\output,target=/output ^
mcr.microsoft.com/azure-cognitive-services/luis:latest ^
Eula=accept ^
Billing={ENDPOINT_URL} ^
ApiKey={API_KEY} ^
Logging:Console:LogLevel:Default=Information
后续步骤
- 查看如何安装和运行容器
- 若要解决与 LUIS 功能相关的问题,请参阅故障排除。
- 使用更多 Azure AI 容器