Есть ли встроенный вспомогательный метод в LUIS Sdk или Bot Sdk для преобразования объектов LUIS DatetimeV2 в объекты JS Date? Я видел, что некоторые использовали Chronic Parser для С#, но я не мог найти ничего, что работает для Nodejs.
const dt = builder.EntityRecognizer.findEntity(args.intent.entities, 'datetimeV2');
if (dt) {
// this is just the matching intent, I believe.
// example intents; today, yesterday, 2/28, 31/5, ...
// How do I convert this to a valid Date is where I am stuck.
}
Чтобы извлечь объекты datetimeV2
в NodeJS, более конкретно в том, что вам нужно запустить:
const dt = builder.EntityRecognizer.findEntity(args.intent.entities,
'builtin.datetimeV2.date');
const dt_daterange = builder.EntityRecognizer.findEntity(args.intent.entities,
'builtin.datetimeV2.daterange');
Чтобы создать объект Date, вы можете посмотреть его здесь, в MDN.
Здесь blogpost на datetimeV2, который показывает структуру сущности в объекте ответа LUIS.
Чтобы создать объект Date, вы можете взять dt.resolution.values[i]['value']
и поместить его в конструктор следующим образом:
const dt_obj = new Date(dt.resolution.values[i]['value']);
resolution
в типеIEntity
. Просто видел это приstringify
всего объектаdt
. Это работает как шарм!start_date = new Date(builder.EntityRecognizer.findEntity(intent.entities, 'builtin.datetimeV2.daterange').resolution.values[0].start);