在 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
我将我的 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