Просить пользователя заполнить слоты в чат-боте Rasa

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

Рассмотрим следующее взаимодействие.

User: What is the scientific name of Eagles?
Bot: There are 3 eagles. Choose one.

 - greater spotted eagle
 - tawny eagle
 - indian spotted eagle

User: tawny eagle
Bot: Scientific name of Tawny Eagle is Clanga clanga

Вот мой Stories.md файл, если там только одно значение.

## Story1
* Scientific_name{'common_name': 'eagles'}
  - action_sci_name

И мой action.py

class ActionSciName(Action):
    def name(self):
        return "action_sci_name"

    def run(self, dispatcher, tracker, domain):
         # below line gives 'Eagles`
         name = tracker.latest_message['entities'][0]['value']
         ## I fetch the value from DB for eagles if they are more than 1
         ## More code here
         response = """There are 3 eagles. Choose one 
                       1. greater spotted eagle
                       2. tawny eagle
                       3. indian spotted eagle"""

         dispatcher.utter_message(response)
         return []

Приведенный выше файл отлично справляется с 1-й частью. Но я застрял в следующем, где пользователю нужно ввести значение между этими 3.

Намерения:

  • Научное название
  • Распространенное имя

Сущности:

  • распространенное имя
  • sci_name

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

Любая помощь приветствуется.


person Sociopath    schedule 26.02.2019    source источник
comment
Я вижу, что у вас возникают проблемы с ответами пользователя, состоящими из одного слова или фразы. Пожалуйста, направьте мой ответ здесь. stackoverflow.com/a/55016421/8169091, дайте мне знать, как это работает.   -  person mvs    schedule 06.03.2019
comment
это было полезно ... добавление строки / метки с пользовательским вводом.   -  person Sociopath    schedule 07.03.2019


Ответы (1)


Я думаю, что формы в Rasa могут вам помочь. С помощью форм вы можете проверить ввод и указать, какие слоты должны быть заполнены пользователем.

person Tobias    schedule 18.06.2019