在预测之前或预测期间更改话语数据
重要
LUIS 将于 2025 年 10 月 1 日停用,从 2023 年 4 月 1 日开始,你将无法创建新的 LUIS 资源。 建议将 LUIS 应用程序迁移到对话语言理解,以便从持续的产品支持和多语言功能中受益。
LUIS 提供在预测之前或预测期间操作陈述的方法。 这些方法包括修复预生成 datetimeV2 的时区问题。
更改预生成 datetimeV2 实体的时区
LUIS 应用使用预生成的 datetimeV2 实体时,可以在预测响应中返回日期/时间值。 请求的时区用于确定要返回的正确日期/时间。 如果请求在到达 LUIS 之前来自机器人或另一个集中式应用程序,则更正 LUIS 使用的时区。
用于更改时区的 V3 预测 API
在 V3 中,datetimeReference
确定时区偏移量。
用于更改时区的 V2 预测 API
可以通过以下方式更正时区:根据 API 版本,使用 timezoneOffset
参数将用户的时区添加到终结点。 要更改时间,此参数值应为正数或负数(以分钟为单位)。
V2 预测夏令时示例
如果需要返回的预生成 datetimeV2 来调整夏令时,则应对该终结点查询使用值为正数/负数(以分钟为单位)的 querystring 参数。
增加 60 分钟:
https://{region}.api.cognitive.azure.cn/luis/v2.0/apps/{appId}?q=Turn the lights on?timezoneOffset=60&verbose={boolean}&spellCheck={boolean}&staging={boolean}&bing-spell-check-subscription-key={string}&log={boolean}
减去 60 分钟:
https://{region}.api.cognitive.azure.cn/luis/v2.0/apps/{appId}?q=Turn the lights on?timezoneOffset=-60&verbose={boolean}&spellCheck={boolean}&staging={boolean}&bing-spell-check-subscription-key={string}&log={boolean}
V2 预测 C# 代码确定正确的参数值
下面的 C# 代码使用 TimeZoneInfo 类的 FindSystemTimeZoneById 方法基于系统时间来确定正确的偏移值:
// Get CST zone id
TimeZoneInfo targetZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
// Get local machine's value of Now
DateTime utcDatetime = DateTime.UtcNow;
// Get Central Standard Time value of Now
DateTime cstDatetime = TimeZoneInfo.ConvertTimeFromUtc(utcDatetime, targetZone);
// Find timezoneOffset/datetimeReference
int offset = (int)((cstDatetime - utcDatetime).TotalMinutes);