Các thành phần chính trong Rasa Framework

Một phần của tài liệu Xây dựng Hệ thống Cố vấn Học tập Ảo (Trang 30 - 36)

Chương 2. CƠ SỞ LÝ THUYẾT

2.3 Tổng quan về Framework Rasa

2.3.2 Các thành phần chính trong Rasa Framework

Rasa Framework bao gổm 3 thành phần chính, giữ vai trò lõi của ứng dụng là Rasa NLU, Rasa Core và Rasa NLG.

Xem sơ đồ luồng hoạt động của Rasa như sau:

Hình 2.13: Luồng hoạt động của các thành phần trong Rasa Framework [8]

2.3.2.1 Thành phần Rasa NLU

Rasa NLU (Natural Language Understanding), đây là thành phần đầu tiên và đóng vai trò quan trọng trong Rasa Framework. Có nhiện vụ xử lý ngôn ngữ tự nhiên nhằm xác định ý định của người dùng và trích xuất các đặc trưng trong câu hỏi của người dùng.

Rasa NLU cho phép người sử dụng có thể cấu hình các pipeline với một quy trình hoàn chỉnh từ lựa chọn các bộ tách từ (Tokenizer), chuẩn hóa (Featurizer), trích xuất thông tin (Extractor) đến các lớp phân loại (Classifier).

Việc cấu hình này được Rasa NLU đơn giản hóa trong file “config.yml” giúp người lập trình có thể tùy chỉnh theo ý muốn.

19

Hình 2.14: File config.yml - quản lý cấu hình trong Rasa Framework

Sau khi thiết lập pipeline theo ý muốn thì người sử dụng có thể thiết lập bộ các ý định và các câu nói sẽ xác định được ý định đó. Mỗi ý định có thể cấu hình theo nhiều biến thể khác nhau. Thiết lập ý định người dùng trong file

“nlu.md”.

Hình 2.15: File nlu.md - ví dụ về cấu hình ý định người dùng

Sau khi thiết lập bộ ý định người sử dụng, có thể huấn luyện (train) mô hình với câu lệnh “rasa train nlu”.

20 2.3.2.2 Thành phần Rasa Core

Đây là thành phần lõi, nơi nhận dữ liệu đầu vào là kết quả của quá trình thực thi Rasa NLU, có vai trò thực hiện việc quản lý các luồng hội thoại. Dựa vào các ý định (intent) và các thực thể (entities) đã được xác định ở bước Rasa NLU trước đó, Rasa Core sẽ tiến hành việc quyết định xem sẽ thực hiện hành động nào tiếp theo để trả về phản hồi cho người dùng.

Đầu tiên cần thiết lập các thông số policy cần thiết trong file “config.yml”.

Có các thông số cơ bản như sau:

Hình 2.16: File config.yml - cấu hình cho Rasa Core

Trong Rasa Framework đã cài đặt sẵn một số policy cơ bản như sau:

- MemoizationPolicy: quyết định message đầu ra dựa vào thông tin của những đoạn hội thoại trước đó.

- KerasPolicy: sử dụng mạng LSTM để tính xác suất đưa ra lựa chọn cho message tiếp theo.

- MappingPolicy: quyết định message dựa vào dữ liệu đã mapping và trong trường hợp, việc tính xác suất đầu ra không thể vượt được ngưỡng mà FallbackPolicy đề ra, message trả ra sẽ là một utter_fallback kiểu như: "Xin lỗi bot chưa hiểu rõ thông tin bạn nói.".

Sau khi thiết lập cấu hình, cần phải khai báo các thông tin cần thiết trong file “domain.yml”.

21

Hình 2.17: Ví dụ thiết lập file domain.yml cho Rasa Core

Sau khi khai báo trong domain.yml, cần phải xây dựng các kịch bản cần thiết cho việc trò chuyện của chatbot.

22

Hình 2.18: Ví dụ về kịch bản Xét và công nhận tốt nghiệp

2.3.2.3 Thành phần Custom Action

Framework Rasa có khả năng tùy biến mạnh mẽ khi cung cấp cho người lập trình tính năng có thể viết thêm các hành động tùy biến (custom action), thường các custom action này sẽ có nhu cầu truy vấn đến các API hay cơ sở dữ liệu để có thể thu thập được thêm nhiều dữ liệu phục vụ cho câu phản hồi tới người dùng của chatbot được tốt hơn.

Custom action được viết bằng ngôn ngữ lập trình Python. Mặc định Rasa Framework cung cấp file “action.py” để hỗ trợ chúng ta làm điều này.

23

Hình 2.19: Ví dụ Custom Action gọi API lấy danh sách học phần

Sau khi viết thêm các code cho Custom Action, cần phải thiết lập cổng để chạy riêng cho dịch vụ action. Tùy chỉnh trong file “endpoint.yml

Hình 2.20: Ví dụ thiết lập cổng chạy Custom Action là 5055

2.3.2.4 Thành phần Rasa NLG

Đây là thành phần sinh ngôn ngữ của Rasa Framework, đảm nhận việc hiển thị phản hồi từ kết quả xử lý của Rasa NLU và Rasa Core đến các cổng thông tin mà người dùng kết nối đến.

24

Một phần của tài liệu Xây dựng Hệ thống Cố vấn Học tập Ảo (Trang 30 - 36)

Tải bản đầy đủ (PDF)

(86 trang)