在 C# 中无法实现 LUIS V2 日期时间解析

LUIS V2 Datetime Resolution Not Reachable in C#

我将我的 LUIS 实体从 datetime 转换为 datetimeV2 & am 运行 Bot.Builder 3.11.0。在代码中,以下行提取了一个 EntityRecommendation

result.TryFindEntity("builtin.datetimeV2.date", out startDate)

生成的对象根本不允许我达到 "timex" 值。我如何访问这些决议?当我尝试访问 "timex" 时,它说不能使用 []

它有点冗长,但它是可行的。你需要做的:

if (result.TryFindEntity("builtin.datetimeV2.date", out EntityRecommendation dateEntity))
{
    var resolutionValues = (IList<object>)dateEntity.Resolution["values"];

    var values = (IDictionary<string, object>)resolutionValues[0];

    await context.PostAsync($"Timex: {values["timex"]}");
    await context.PostAsync($"Type: {values["type"]}");
    await context.PostAsync($"Value: {values["value"]}");
}

我创建了一组您可能会觉得有用的扩展方法。检查 https://github.com/ejadib/LUIS-DateTimeV2-Extensions