Skip to content

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ó typemappings

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