IBM Chatbot Assistant: Обработка нескольких объектов
У меня есть объект с именем @spare_part, и у этого объекта есть 4 значения со следующими примерами синонимов каждый:
оба с фильтром синонимов, индикатор уровня масла
not_defined с синонимом запасная часть
only_gear с синонимом клапан, уплотнение
whole_gear_box с синонимом полный комплект редуктора
Я хочу иметь возможность обрабатывать несколько объектов, заданных в одном входе, и обращаться к ним позже, если это необходимо. С этой целью я написал следующее в редакторе JSON:
{
"context": {
"sparepartrequest": "@spare_part.values"
},
"output": {
"generic": [
{
"values": [
{
"text": "You want an offer for the following parts: <?
$sparepartrequest.join(', ') ?>."
}
],
"response_type": "text",
"selection_policy": "sequential"
}
]
}
}
Я создал переменную контекста под названием sparepartrequest, как видно из строк кода выше. Например, когда пользователь говорит "Я хочу предложение для фильтра и печати", вывод бота будет следующим предложением:
Вы хотите предложение для следующих частей: оба, only_gear.
Я не хочу, чтобы бот запрашивал имена значений сущности @spare_part, я скорее хочу, чтобы он сохранял точные данные пользователя, для нашего случая, которые будут фильтровать и запечатывать. Так что, если бот работает так, как я хотел, вывод будет выглядеть следующим образом:
Вы хотите предложение на следующие части: фильтр, клапан.
Опять же, я считаю, что это можно сделать с помощью редактора JSON. Спасибо!
1 ответ
Используйте две переменные контекста. sparepartrequest, как уже сделано, и sparepartrequest_literals следующим образом:
"sparepartrequest_literals":"<? entities['spare_part'].![literal].join(', ') ?>"
,
Затем в текстовом ответе назовите его $sparepartrequest_literals
распечатать упомянутые части или использовать $sparepartrequest
ссылаться на обнаруженные значения.