Попросить пользователя заполнить слоты в Rasa Chatbot
Я изо всех сил пытаюсь создать структуру диалога, когда мне нужно попросить пользователя заполнить слоты.
Рассмотрим следующее взаимодействие.
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
но пользователи вводят значение в самой 1-й строке.
Любая помощь приветствуется.
0 ответов
Я думаю, что формы в Rasa могут вам помочь. С помощью форм вы можете проверить ввод и указать, какие слоты должны быть заполнены пользователем.