3.1. Giới Thiệu.
Nhiệm vụ chính của chương trình là thiết kế mô hình tương tác giữa người với máy đồng thời thông qua hệ thống chatbots, thực hiện và phản hồi lại các yêu cầu của người dùng.
Như vậy, ở chương này nhóm sẽ thực hiện nội dung: tính toán và thiết kế sơ đồ khối cho toàn hệ thống.
3.2. Thiết Kế Hệ Thống.
3.2.1. Thiết kế sơ đồ khối hệ thống.
Với mục tiêu xây dựng mô hình tương tác giữa người với máy thông qua hệ thống chatbots tự động để điều khiển các thiết bị điện, hệ thống được chia thành 3 phần chính: Truyền dữ liệu, thông tin; Xử lý dữ liệu, thông tin thông qua Dialogflow;
Thực hiện truy vấn trên Webhook.
Hình 3.1 Sơ đồ hệ thống chatbots tự động.
3.2.2. Chức năng các khối hệ thống.
a. Khối truyền dữ liệu, thông tin.
Khối truyền dữ liệu, thông tin nhằm gửi thông tin từ người dùng đến hệ thống và nhận phản hồi từ hệ thống đến người dùng, gồm các khối: Người dùng, Dữ liệu đầu vào, Tín hiệu đầu ra.
Hình 3.2 Sơ đồ quá trình truyền dữ liệu, thông tin.
Khối người dùng (User):
Liệt kê và đưa ra các yêu cầu cần hệ thống máy thực hiện đồng thời lựa chọn các từ khóa phù hợp, cụ thể để hệ thống máy xử lý các thông tin chính xác hơn.
Yêu cầu càng cụ thể, rõ ràng thì độ phản hồi chính xác càng cao và nhanh.
Khối dữ liệu đầu vào (Input):
Sau khi có thông tin từ người dùng, khối đầu vào sẽ gửi đi các yêu cầu từ người dùng đến hệ thống máy thông qua ngõ vào là âm thanh (giọng nói) và nhập dữ liệu từ bàn phím, sau đó tất cả yêu cầu được tổng hợp và gửi đến khối truy vấn dữ liệu trong Dialogflow.
Khối tín hiệu đầu ra (Output):
Dữ liệu sau khi được xử lý từ hệ thống sẽ được gửi đến khối tín hiệu đầu ra để phản hồi lại người dùng. Tại đây, tín hiệu sẽ được hiển thị theo ý định của người dùng trước đó thông qua loa, màn hình hoặc các tín hiệu từ các thiết bị điện.
b. Khối xử lý dữ liệu, thông tin thông qua Dialogflow.
Khối xử lý dữ liệu, thông tin sẽ xử lý các ngôn ngữ tự nhiên của người dùng được đưa vào từ khối truyền dữ liệu rồi chuyển đổi ngôn ngữ tự nhiên đó trở thành ngôn ngữ máy và sau đó phân loại các ý định cụ thể của người dùng, bao gồm các khối: truy vấn (Query), ý định (Intent), và thao tác dữ liệu (Actionable Data).
Hình 3.3 Sơ đồ quá trình xử lý dữ liệu, thông tin thông qua Dialogflow.
Khối truy vấn (Query):
Xử lý các yêu cầu dưới dạng ngôn ngữ tự nhiên thành ngôn ngữ máy có thể thao tác được và sử dụng các kỹ thuật học máy sâu để giải quyết các vấn đề. Các yêu cầu truy vấn sau đó được trả về dữ liệu có cấu trúc ở định dạng JSON với một hành động xác định và các tham số cho hành động đó.
Khối ý định (Intent):
Chứa các tham số, các ý định được xác định cụ thể thông qua việc đào tạo và huấn luyện cụm từ cho hệ thống được gọi là Training Phases. Kết quả sau khi huấn luyện sẽ được lưu lại để đánh giá và sử dụng.
Khối ý định sẽ nhận dữ liệu từ khối truy vấn chứa các yêu cầu, ý định của người dùng cuối rồi đem so sánh, tìm điểm tương đồng với các tham số, ý định được cài đặt trước trong hệ thống của mình và từ đó nhận dạng, hiểu được yêu cầu của người dùng đồng thời sẽ xuất ra các tham số, dữ liệu để gửi đến các khối khác, tùy thuộc vào kiểu ý định của người dùng.
Khối ý định sau khi nhận dạng được yêu cầu người dùng sẽ phân loại các ý định bao gồm: ý định ngẫu nhiên (sẽ được gửi trực tiếp vào khối thao tác dữ liệu) và ý định nghiệp vụ sẽ được gửi đến khối Fulfillment - thực hiện truy vấn trên Webhook.
Khối thao tác dữ liệu (Actionable Data):
Nhận các tham số, dữ liệu từ khối ý định và xử lý thành dạng dữ liệu có thể thao tác được, sau đó chuyển dữ liệu đến các thiết bị đầu ra.
c. Khối thực hiện truy vấn trên Webhook.
Khối thực hiện truy vấn có nhiệm vụ kết nối dịch vụ, APIs và Database của người dùng đến Dialogflow đồng thời nhúng giao diện trò chuyện được tạo bằng Dialogflow vào ứng dụng hoặc trang web cho người dùng. Ngoài ra, khối thiết lập webhook cho phép người dùng chuyển thông tin từ những ý định được mã hóa vào nền web và nhận kết quả từ nó, bao gồm các khối: Code, APIs, Database.
Hình 3.4 Sơ đồ quá trình thực hiện truy vấn trên Webhook.
Khối code:
Đồng bộ các dữ liệu trong khối ý định với cơ sở dữ liệu bên ngoài, sau đó đẩy dữ liệu từ Dialogflow lên web thông qua HTTP thay vì thông qua dòng lệnh trong máy tính của người dùng, được định dạng bằng file JSON. Khi được kích hoạt, khối đóng vai trò là một webhook sẽ gửi yêu cầu đến API mà nó cần để lấy dữ liệu từ đó. Thông thường đó là tham số mà người dùng nhập.
Khối APIs:
Khi các ý định cụ thể của người dùng được phân tích bởi Dialogflow, đồng bộ dữ liệu trong khối code và gửi đến cho khối APIs, webhook lúc này sẽ sử dụng các API (external APIs) để tìm phản hồi trong các cơ sở dữ liệu bên ngoài. Khối APIs sẽ chuyển các dữ liệu chứa tham số đó tới máy chủ nơi chúng được xử lý. Tiếp theo, máy chủ sẽ truy xuất dữ liệu đó, phân tích nó, thực hiện các hành động cần thiết và gửi lại dữ liệu cho hệ thống của chúng ta. Sau đó, ứng dụng sẽ diễn giải dữ liệu này và hiển thị cho chúng ta thông tin chúng ta muốn.
Khối Database:
Sau khi khối APIs hoàn tất, khối Database sẽ và gửi lại dữ liệu phản hồi về cho khối code để truyền đến khối intents.
3.2.3 Sơ đồ kết nối phần cứng.
Hình 3. 5 Sơ đồ kết nối các thiết bị điện với các chân của Raspberry.
Hình 3.6 Raspberry và sơ đồ chân.