Может ли чат Rasa начать разговор?

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

2 ответа

Самый простой способ сделать это - отправить сообщение пользователя из вашей системы мониторинга на ваш входной канал. Таким образом, вы в основном подражаете пользователю, инициирующему разговор. Обратите внимание, что я прямо указываю намерение, используя / в качестве префикса. Запустите Rasa Core с открытым REST API:

python -m rasa_core.run -d models --enable-api

Затем вы можете отправлять ему сообщения, например:

curl --request POST \
  --url http://localhost:5005/webhooks/rest/webhook \
  --header 'content-type: application/json' \
  --data '{
  "sender": "<sender_id_of_your_user>",
  "message": "/inform_about_failure"
}' 

Решение @Tobias - это "старый способ", который все еще действует для управления внешними событиями в движке чат-бота на основе опроса (а не только в RASA), когда мы хотим отправлять уведомления на sender_id.

В текущем выпуске RASA для запуска основного сервера RASA используется команда cli:

rasa run --debug --enable-api -m models 

И curl Указанный запрос @Tobias все еще действителен с текущей версией RASA:

curl --request POST \
  --url http://localhost:5005/webhooks/rest/webhook \
  --header 'content-type: application/json' \
  --data '{
  "sender": "<sender_id_of_your_user>",
  "message": "/inform_about_failure"
}' 

С другой стороны, теперь RASA (версия 1.9.7) предлагает использовать управление внешними событиями.

Таким образом, вы также можете указать сущности вместе с намерением, которое будет запущено, как показано в примере:

curl \
 -H "Content-Type: application/json" \
 -X POST \
 -d '{"name": "EXTERNAL_dry_plant", "entities": {"plant": "Orchid"}}' \ 
 http://localhost:5005/conversations/<sender_id_of_your_user>/trigger_intent

Кстати в RASA, sender_id а также conversation_id разные названия одного и того же.

Определенно. Но rasa_nlu не имеет ничего общего с этим, вы будете отправлять push_messageот вашего бэкэнда клиенту чата оттуда rasa_nlu поднимает разговор.

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