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 ссылаться на обнаруженные значения.

Другие вопросы по тегам