Конвертировать LUIS Datetime V2 в JS Date

1

Есть ли встроенный вспомогательный метод в 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.
}
Теги:
datetime
botframework
luis

1 ответ

2
Лучший ответ

Чтобы извлечь объекты 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']);
  • 1
    Благодарю. Я не знал, что есть свойство resolution в типе IEntity . Просто видел это при stringify всего объекта dt . Это работает как шарм!
  • 0
    Спасибо! Этот ответ мне очень помог .. в моем случае я получаю только первое значение, поэтому я сделал это так: start_date = new Date(builder.EntityRecognizer.findEntity(intent.entities, 'builtin.datetimeV2.daterange').resolution.values[0].start);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню