Объект '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(...)

Другие вопросы по тегам