Как извлечь текущую дату в разговоре с Ватсоном

Мне нужно создать условие в диалоговой модели Watson Conversation, например:

если "сегодняшняя дата" ‹ 15.04.2017 сделайте что-нибудь. иначе сделать что-то еще.

Я предпочитаю не запрашивать у пользователя текущую дату и сохранять ее.

Я пробовал много способов, но они не работают, я также пытался вывести дату (не работает):

{
  "context": {
    "currdate": "@sys-date:today"
  },
  "output": {
    "text": {
      "values": [
        "here it is $currdate"
      ],
      "selection_policy": "sequential"
    }
  }
} 

person OiRc    schedule 03.04.2017    source источник
comment
Ваш вопрос сбивает с толку. Но,   -  person RiyaMRoy    schedule 03.04.2017


Ответы (3)


Я не уверен в этом, но со всеми тестами, которые я пробовал, если пользователь сегодня не печатает или что-то в этом роде, Watson не распознает, но я верю, что с кодом мы можем что-то сделать. Возможно, кто-то, работающий с IBM Watson, ответит вам правильно.

Но, по моим базовым знаниям:

Попробуйте использовать now() в условии и сохраните дату внутри переменной контекста.

Возврат:

yyyy-MM-dd HH:mm:ss

Используйте свой код, чтобы получить контекстную переменную и получить только дату... после того, как вы сможете задать условия...

Пример JSON:

{
  "context": {
    "dateHour": "<? now() ?>"
  },
  "output": {
    "text": {
      "values": [
        "Now is $dateHour."
      ],
      "selection_policy": "sequential"
    }
  }
}

Я изучаю всю документацию о системных сущностях в Watson и ничего не вижу об извлечении данных, если пользователь не запрашивает, но, как я говорю, возможно, кто-то из IBM ответит, я просто пытаюсь помочь вам своими базовыми знаниями .

Ознакомьтесь с документацией по этому объекту @sys-date now() здесь.

person Sayuri Mizuguchi    schedule 03.04.2017

Она права, вам понадобится код приложения, чтобы получить текущую дату и время и передать их в качестве контекста. До сих пор все наши системные сущности и усилия были направлены на понимание того, что говорит пользователь, поэтому, если они не скажут сегодня, мы не будем знать, что это важно. Теоретически я думаю, что вы могли бы просто передать свое приложение через «сегодня» в конце предложения пользователя или что-то в этом роде, и это пропустило бы его через конвейер обработки и дало бы вам сегодняшнюю дату, но может быть странным пользовательским опытом.

person Mitch    schedule 03.04.2017
comment
Спасибо за признание @Mitch. +1 - person Sayuri Mizuguchi; 04.04.2017

Если вы используете now(), вы можете переформатировать его, чтобы заставить его работать.

Я сохраняю дату, с которой хочу сравнить, в $date, в вашем случае "date": "04-15-2017", а затем использую следующее:

Чтобы узнать, будет ли дата использоваться в будущем: now().reformatDateTime('dd-MM-yyyy').before($date)

Если прошлое: now().reformatDateTime('dd-MM-yyyy').after($date)

Вы можете прочитать о реформатировании даты и времени здесь. Он использует стандартные правила форматирования строки даты JAVA, которые вы можете найти здесь.

person chaiboy    schedule 11.07.2017
comment
Есть ли способ извлечь месяц или год из системной даты? - person Quantum Dreamer; 14.08.2019