Domain
Domain là nơi ta sẽ khai báo những thành phần mà mình sẽ sử dụng trong model của mình. Nó bao gồm intents, entities, slots, responses, forms và actions con bot cần biết. Nó còn chỉ định cấu hình cho từng sessions hội thoại.
Đây là ví dụ của file domain:
version: "3.1"
intents:
- specific_major
- consultant
- goodbye
- greet
actions:
- action_query_major
entities:
- major_name
- email
slots:
major_name:
type: text
mappings:
- type: from_entity
entity: major_name
email:
type: any
mappings:
- type: from_entity
entity: email
responses:
utter_greet:
- text: Hey! How are you?
utter_goodbye:
- text: Bye
- text: Goodbye
utter_ask_email:
- text: Email của bạn là gì?
forms:
consultant_form:
required_slots:
- email
session_config:
session_expiration_time: 60 #Value in minutes
carry_over_slots_to_new_session: true
Intents
Từ khóa intents
trong domain liệt kê tất cả các ý định được sử dụng và huấn luyện.
Bỏ qua Entities cho intents chỉ định
Để bỏ qua tất cả các entities cho một số intents nhất định, bạn có thể thêm tham số use_entities: []
vào trong domain:
intents:
- greet:
use_entities: []
Entities
Phần entities
liệt kê tất cả các thực thể có thể được trích xuất bởi bất kỳ trình trích xuất thực thể nào trong NLU pipeline.
entities:
- school_name
- major_name #Thực thể tùy chỉnh được DIETClassifier trích xuất
- email #Entity được trích xuất bằng DuclkingEntityExtractor
- phone-number
Slots
slots
là bộ nhớ của con bot. Chúng hoạt động như một kho lưu trữ key-value có thể được sử dụng để lưu trữ thông tin mà người dùng cung cấp (ví dụ: Tên của bạn) cũng như thông tin thu thập được về thế giới bên ngoài (ví dụ: kết quả của một truy vấn cơ sở dữ liệu).
Mỗi slots cần phải có type
và mappings
slots:
major_name:
type: text
mappings:
- type: from_entity
entity: major_name
Slots Types
Slots có các dạng gồm:
text
- Dùng để lưu trữ văn bản
bool
- Lưu trữ true
hoặc false
categorical
- Lưu trữ slots có thể nhận một trong N giá trị.
float
- Lưu trữ số thực
list
- Lưu trữ danh sách các giá trị.
any
- Lưu trữ các giá trị tùy ý (chúng có thể thuộc bất kỳ loại nào, chẳng hạn như dictionaries hoặc lists)
Hoặc bạn có thể tự định dạng một loại slot type riêng.
Responses
Là các hành động gửi thông báo đến người dùng mà không cần chạy custom code
nào. Các câu này có thể được khai báo trong domain
dưới khóa responses
và có thể bao gồm nội dung phong phú như các nút và tệp đính kèm. Để biết thêm thông tin hãy xem responses
Forms
forms
là một loại hành động giúp ta thu thập thông tin cần thiết từ người dùng. Ta có thể hiểu nó như một loop hỏi thông tin cho tới khi nào có đủ
Actions
actions
là những điều mà bot của bạn có thể làm được viết bằng Python như:
- Trả lời người dùng,
- Thực hiện lệnh gọi API bên ngoài,
- Truy vấn cơ sở dữ liệu,...
Tất cả các hành động tùy chỉnh phải được liệt kê trong domain, ngoại trừ các phản hồi vì chúng đã được liệt kê trong responses:
.
❓ 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