IBM Chatbot Assistant: Обработка нескольких объектов - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть объект с именем @ 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 EditorСпасибо !

1 Ответ

0 голосов
/ 21 сентября 2018

Используйте две переменные контекста. sparepartrequest как уже сделано и sparepartrequest_literals следующим образом:

"sparepartrequest_literals":"<? entities['spare_part'].![literal].join(', ') ?>".

Затем в текстовом ответе назовите его по номеру $sparepartrequest_literals, чтобы напечатать упомянутые детали, или используйте $sparepartrequest, чтобы обратиться к обнаруженным значениям.

...