Может ли чат 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
поднимает разговор.