IBM Watson Assistant: проверка времени ввода пользователем - PullRequest
0 голосов
/ 29 мая 2019

Я использую IBM Watson Assistant и пытаюсь проверить вводимые пользователем данные по временным рамкам / интервалам.Какую функцию я должен использовать?

Я использовал метод @sys-date.before(now()), чтобы проверить временной интервал между прошлым и настоящим пользовательского ввода, но теперь он работает для меня.Если я введу сейчас или сегодня Watson Assistant все еще думает, что это прошлое ...

@sys-date.before(now()):

Взгляды "как будто вы пытаетесь сделать предварительный заказ в прошлом. Попробуйте еще раз. "true $day it is

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

"как будто вы пытаетесь сделать резервирование в прошлом. Попробуйте еще раз."

Данный фрагмент кода выглядит следующим образом:

{ "context": 
    { "day": "@sys-date" } }
{ "context": 
    { "time": "<? @sys-time.reformatDateTime('h:mm a') ?>" } }

Ответы [ 2 ]

0 голосов
/ 01 июня 2019

Я решил это! То, что я сделал, я положил (сегодня) здесь @sys-date.before(today()), а сейчас здесь @sys-time.before(now())

0 голосов
/ 29 мая 2019

С помощью IBM Watson Assistant вы можете использовать объекты systen @ sys-date и @ sys-time , чтобы преобразовать ввод данных пользователем в значения данных / времени. И вы можете использовать функции языка выражений для даты и времени для оценки и преобразования этих значений. Кажется, вы уже используете оба. Теперь дело за логикой ...

Есть функции до и после , но также sameMoment или sameOrAfter и более для сравнений. Если пользователь вводит сегодня , это не раньше , сейчас , потому что оба будут ссылаться на один и тот же день и дату. Вы ищете значение времени до текущей отметки времени или до текущей даты? Вам нужно будет сравнить время от времени или дату к дате. Вы можете переформатировать значения, чтобы убрать компонент времени и превратить их в даты.

Для более необычных проверок вы можете даже использовать java.util.Date функциональность.

Это должно быть правдой, если это прошедший момент:

now.after(yourInput)
...