IBM Watson Assistant: регулярные выражения с переменными контекста

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

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

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

введите здесь описание изображения

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

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

Что я могу получить по этому поводу?


person Louis Storming    schedule 11.03.2019    source источник


Ответы (1)


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

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

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

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

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

person data_henrik    schedule 11.03.2019
comment
Понятно, но я их проверяю не в слотах, а в мультиответе, правда? Я использую слоты для заполнения всех переменных (пользователь на самом деле ничего не заполняет, он просто вводит свой идентификатор, а внутри я выводю в watson все вары, проверяющие в базе данных). Кроме того, ссылка matches() не работает (или я не вижу ее. - person Louis Storming; 11.03.2019
comment
Ссылка за matches() у меня работает. Попробуйте использовать этот в качестве базового URI: cloud.ibm.com/docs / services / Можно использовать слоты для заполнения переменных. Правильно, что вы должны использовать несколько ответов или один ответ с некоторой логикой. Какова ваша общая цель? В этом руководстве я использую серверную базу данных cloud.ibm.com/docs/ - person data_henrik; 11.03.2019
comment
Не работает еще ссылка! Я посмотрю в ibm docs вручную, не волнуйтесь! Что касается основной цели, у пользователя есть это dni (одно целое число с шаблоном \d), что в зависимости от значения бот должен реагировать по-разному. Если это 1, X, если 2, Y, если 3 Z. Например: 1: 'у вас нет службы X', 2: 'у вас есть некоторые из них', 3: 'вы все включили ! '. - person Louis Storming; 11.03.2019
comment
Я добавил подробности. Ссылки основаны на cloud.ibm.com с последующим переходом к документам и службе WA. - person data_henrik; 11.03.2019
comment
Я отмечу это как ответ, так как он, вероятно, решит все вопросы, связанные с этим! Я буду продолжать пытаться с тем, что вы мне сказали, и я, вероятно, получу это! Большое спасибо заранее! Если это не беспокоит, я прокомментирую здесь, если я не справлюсь! - person Louis Storming; 11.03.2019