首页 > 解决方案 > 在 botframework v4 中使用 LUIS datetimeV2 实体

问题描述

我正在使用带有调度工具的 Botframework v4 C# 从 LUIS 和 QnA Maker 获取结果。我的一些 LUIS 结果有 datetimev2 实体,我不太确定如何正确处理。

我在 中看到已解析的日期时间值AdditionalProperties,是否有可以将此对象转换为的内置类?是否有任何示例可以解释如何在 botframework v4 中使用一般实体?与此相关的所有文档似乎仍然仅适用于 v3。

LUIS 日期时间结果

标签: c#botframeworkazure-language-understanding

解决方案


datetimeV2很棘手,必须根据用户输入重构逻辑(有没有年份的日期,相对日期等)

处理日期时间的代码(JS)是:

const datetime = _.get(
          luisQuery.entities.filter(e => e.type && e.type.includes("builtin.datetimeV2")), 
          '[0].resolution.values[0].timex', 
          null);

const hasYear = (datetime) => {
    return !datetime.includes("XXXX");
};

const makeUseOfDateTime = (datetime) => {
    if (datetime.length === 4) {
        datetime += "-12-31";
    } else if (datetime.length === 7) {
        datetime += "-31";
    }

    // do something with datetime
};

hasYear检查年份是否由用户引入,makeUseOfDateTime推断年末(如果仅提供年份)并推断月末(如果仅提供年份和月份)


推荐阅读