본문 바로가기

업무/챗봇 (Rasa)

[Rasa] Payload

 

* Payload 

Rasa 에서 UI(버튼, 선택지 등)과 Rasa Core 서버 사이에 데이터를 전달하기 위한 내부적인 설정 값.

버튼이나 선택지처럼 제한된 사용자 입력환경에서 활용.

 

 

1. 버튼 _인텐트 전달

dispatcher.utter_message(custom={
    "text": "안녕하세요! 무엇을 도와드릴까요?",
    "BUTTON": [
        {"title": "예약 확인", "payload": "/confirm"},
        {"title": "안내 보기", "payload": "/info"}
    ]
})

사용자가 버튼을 누르면 rasa에서는 payload에 설정된 정보를 인텐트로 인식.

ex) '예약 확인' 버튼 클릭 => 'confirm' 인텐트로 인식 후 진행.

 

*** 이 때 rasa에서 인텐트로 인식하기 위해서는 ' 슬래시(/) ' 가 꼭 필요!!!!!

슬래시가 없는 경우 payload에 지정된 데이터를 사용자 입력값으로 학습문구에 따라 처리. (NLU)

 


 

2. 버튼 _인텐트&엔티티 전달

dispatcher.utter_message(custom={
    "text": "원하는 서비스를 선택해주세요.",
    "BUTTON": [
        {"title": "청소 서비스", "payload": "/service{\"type\": \"cleaning\"}"},
        {"title": "이사 서비스", "payload": "/service{\"type\": \"moving\"}"}
    ]
})

 

사용자가 버튼을 누르면 rasa에서는 payload에 설정된 정보를 인텐트와 엔티티로 인식.

*** rasa에 해당 인텐트&엔티티에 대한 진행(action)이 설정되어 있어야함!!