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_greet
và utter_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