Объект 'CollectingDispatcher' не имеет атрибута 'utter_response'
Я использую http api и хочу вернуться от действия json response вместо текста. Я посмотрел документацию и нашел диспетчер utter_response. Я пытался использовать его, но я получил ошибку ниже.
Ошибка:
'CollectingDispatcher' object has no attribute 'utter_response'
мой класс действий:
class ActionRoute(Action):
def name(self):
return 'action_route'
def run(self, dispatcher, tracker, domain):
location = tracker.get_slot('location')
travelmode = tracker.get_slot('travelmode')
data = {
"travelmode":travelmode,
"location":location
}
response = "Hedef: {} ulaşım tercihi:{}".format(location,travelmode)
dispatcher.utter_response(json.dumps(data))
return [SlotSet("location", location),SlotSet("travelmode", travelmode)]
domain.md
actions:
- utter_greet
- action_route
- utter_goodbye
entities:
- location
- travelmode
intents:
- goodbye
- greet
- address
slots:
location:
type: text
travelmode:
type: text
templates:
utter_goodbye:
- text: Güle güle
- text: Kendine iyi davran
- text: Allaha emanet ol
utter_greet:
- text: Merhaba! Bugün nereye gitmek istersin?
- text: Merhaba! Seni nereye götürüyüm?
utter_default:
- text: Seni tam anlamadım gideceğin yeri tekrar söyleyebilirmisin
- text: Nasıl tam anlamadım. Bir daha söyler misin?
1 ответ
Согласно официальной документации rasa_core, существует метод с именем utter_response. В вашем случае, я думаю, вы импортируете действие из rasa_sdk
,
если вы используете:from rasa_core.actions.action import Action
затем используйте: dispatcher.utter_response(...)
если вы используете:from rasa_core_sdk import Action
затем используйте: dispatcher.utter_attachment(...)