Skip to content

Responses

Phản hồi là tin nhắn mà trợ lý của bạn gửi cho người dùng. Một phản hồi thường chỉ là văn bản, nhưng cũng có thể bao gồm nội dung như hình ảnh và các nút.


Xác định câu trả lời

Các câu trả lời nằm trong khóa responses trong tệp domain. Mỗi tên phản hồi phải bắt đầu bằng utter_. Ví dụ: bạn có thể thêm câu trả lời cho greet và goodbye dưới tên phản hồi utter_greetutter_bye:

intents:
  - greet

responses:
  utter_greet:
  - text: "Hi there!"
  utter_bye:
  - text: "See you!"

Sử dụng các biến trong câu trả lời

Bạn có thể sử dụng các biến để chèn thông tin vào câu trả lời. Ví dụ, hãy xem tên biến bên dưới:

responses:
  utter_greet:
  - text: "Hey, {name}. How are you?"

Hoặc dùng custom action

dispatcher.utter_message(
    template="utter_greet",
    name="Sara"
)

Câu trả lời phong phú

Bạn có thể làm cho câu trả lời phong phú bằng cách thêm các yếu tố trực quan và tương tác. Có một số loại phần tử được hỗ trợ trên nhiều kênh:

Buttons

Đây là một ví dụ của response dùng buttons:

responses:
  utter_greet:
  - text: "Hey! How are you?"
    buttons:
    - title: "great"
      payload: "/mood_great"
    - title: "super sad"
      payload: "/mood_sad"

Mỗi nút trong danh sách buttons phải có hai phím:

  • title: Văn bản hiển thị trên các nút mà người dùng nhìn thấy.
  • payload: Thông báo được gửi từ người dùng đến trợ lý khi nút được nhấp.

Nếu bạn muốn các nút cũng chuyển các thực thể cho trợ lý:

responses:
  utter_ask_feedback:
    - text: Vui lòng đánh giá trải nghiệm của bạn
      buttons:
      - title: 👍
        payload: '/feedback{{"feedback_value": "positive"}}'
      - title: 👎
        payload: '/feedback{{"feedback_value": "negative"}}'

Images

Bạn có thể thêm hình ảnh vào phản hồi bằng cách cung cấp URL dưới khóa image:

responses:
  utter_out_of_scope:
  - text: "Xin lỗi, tôi không thể giải quyết vấn đề đó."
    image: "https://media1.tenor.com/images/12c6d35e39cb5719cc1eb8cecb1e02cb/tenor.gif?itemid=20029710"

Messenger messenge template

Bạn có thể dùng custom action để gửi những messenge template đã định sẵn của Messenger. Ví dụ mình sẽ dùng template button

class ActionWaysOfAdmission(Action):
    def name(self) -> Text:
        return "action_ways_of_admisssion"

    def run(
        self, dispatcher: "CollectingDispatcher", tracker: Tracker, domain: "DomainDict"
    ) -> List[Dict[Text, Any]]:
        message = {
            "attachment": {
                "type": "template",
                "payload": {
                    "template_type": "button",
                    "text": "Có 2 phương thức xét tuyển:",
                    "buttons": [
                        {
                            "type": "web_url",
                            "url": "https://www.messenger.com",
                            "title": "Học bạ"
                        },
                        {
                            "type": "web_url",
                            "url": "https://www.messenger.com",
                            "title": "Năng lực"
                        },
                    ]
                }
            }
        }
        dispatcher.utter_message(json_message=message)
        return []

Sau đó bạn chỉ cần gọi action_ways_of_admission qua story hoặc rule


❓ Muốn biết thêm chi tiết hay có câu hỏi nào?

Hãy lên website của RASA hoặc RASA Community Forum