IBM Watson Assistant: Регулярные выражения с переменными контекста - PullRequest
1 голос
/ 11 марта 2019

Я собираю некоторые контекстные переменные со слотами, и они работают просто отлично.enter image description here

Поэтому я решил сделать в другом узле беседы, проверить, является ли одна из этих переменных контекста конкретным числом:

Я думал о включениимножественные ответы и проверьте, например, $dni:1 (это целое число, шаблон только из 1 целого) или 2 или 3:

enter image description here

Но это не работает.Я пытался решить это в течение нескольких дней с разными подходами, но я действительно не могу найти выход из этого.

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

Любые идеи по этому поводу я могу получить?

1 Ответ

1 голос
/ 11 марта 2019

Watson Assistant использует сокращенный синтаксис, но также поддерживает более сложные выражения.Что вы можете сделать, это отредактировать условие в редакторе JSON.Там для условия используйте функцию типа match () для значения переменной контекста.

Обратите внимание, что не рекомендуется проверять переменные контекста в слотеусловия .Вы можете использовать несколько ответов.Альтернативный способ - поставить проверку в самом ответе.Там вы можете использовать предикаты для генерации ответа .

<? context.dni==1 ? 'Very well' : 'Your number is not 1' ?>

Вы можете вкладывать оценку, чтобы иметь три разных ответа.Другим способом является создание массива ответов и использование dni в качестве ключа.

Вместо сопоставления с конкретными целыми числами, вы можете рассмотреть возможность использования системного объекта Numbers .Watson Assistant поддерживает несколько языков.В качестве преимущества пользователи могут ответить «первый», «второй вариант» и т. Д., И бот все равно поймет, а ваша логика все равно сможет направить правильный ответ.

...