Как получить значения с кнопки в Rasa? - PullRequest
0 голосов
/ 25 июня 2019

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

Пользовательские кнопки находятся в цикле, где из каждого элемента Iсобрать необходимые значения для «заголовков» и «полезных нагрузок».Я хочу добиться этого динамически, поскольку у меня много разных переменных разной длины.

Вот мой код до сих пор:

def run(self, dispatcher: CollectingDispatcher,
         tracker: Tracker, domain: Dict[Text, Any],
     ) -> Text:
   for element in request.question.items:
   for l in element['choices']:
   buttons.append({"title": "{}".format(l['label']), "payload": "{}{}".format(element['id'],l['id'])})

   return [] 
dispatcher.utter_button_message(message, buttons)

Опять же, мой вопрос: какдля доступа к выбранным значениям полезной нагрузки.В rasa x я вижу, что полезная нагрузка выбирается правильно, например: «11, true».

Но я не вижу способа получить эти значения в другую переменную.Я также попробовал tracker.latest_message.get(‘text’), но я получаю только последний пользовательский ввод.

Есть ли функция, аналогичная "tracker.latest_message.get" для последней выбранной опции кнопки или последнего высказывания от бота?

Любая помощь будет оценена.

Спасибо

1 Ответ

0 голосов
/ 27 июня 2019

Если вы укажете полезную нагрузку кнопки, такую ​​как /intent_name{"slot_name": "value"}, вы можете напрямую вызвать определенное намерение (например, intent_name) и передать слот / сущность (например, slot_name) со значением (например, value) в Rasa.ядро.В этом случае вам даже не нужно настраивать действие для извлечения значений, поскольку они автоматически извлекаются Rasa (Core).В противном случае вы найдете эти значения в слотах / объектах разговора.

Но я не нашел способа получить эти значения в другую переменную.Я также пробовал tracker.latest_message.get ('text'), но я получаю только последний пользовательский ввод.

Не является ли последний пользовательский ввод полезной нагрузкой кнопки, которую пользователь нажал?

...