Dịch vụ Dialogflow

Một phần của tài liệu Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2) (Trang 29)

4. Về thái độ làm việc của sinh viên

2.4. Dịch vụ Dialogflow

2.4.1.Giới thiệu

Dialogflow (tiền thân là API.AI) là một dịch vụ sau khi được Google mua lại vào tháng 9 năm 2016. Tiền thân là một công ty nổi tiếng với trợ lý ảo Speaktoit, cung cấp nhằm giúp các lập trình viên dễ dàng hơn khi lập trình các sản phẩm có giao tiếp giữa người dùng với sản phẩm thông qua các đoạn

10

hội thoại bằng văn bản (text) hoặc giọng nói (voice). Nói cách khác, Dialogflow là một framework cung cấp các dịch vụ NLP / NLU (Natural Language Processing / Natural Language Understanding) - xử lý ngôn ngữ tự nhiên.

Hình 2.4.1. Các hoạt động của Dialogflow

2.4.2.Quá trình Understanding

Understanding là quá trình training từ cho bot hiểu được ý nghĩa từ câu trả lời của người dùng đã cung cấp:

11

Hình 2.4.2. Training phrases Dialogflow

2.4.3.Ý định (Intent)

Intent là ý định của người dùng. Sau khi nhận một câu trả lời hoặc yêu cầu từ người dùng, Hệ thống Dialogflow sẽ phân tích và trả ra kết quả một intent phù hợp, intent này sẽ chứa bao gồm Context (ngữ cảnh ), Training phrase (các câu training cho bot), Response (Câu trả lời), Action (hành động kèm theo), parameters (các đối số mà người dùng đã định nghĩa trong phần traning pharse)

12

Hình 2.4.3. Intents

2.4.4.Thực thể (Entities)

Entities là các thực thể bổ nghĩa cho một Intent.

13

Ngoài ra người dùng cũng có thể tạo ra một entity cấu tạo từ những entities nhỏ hơn để tạo nên một câu training giúp chatbot dễ dàng phân tích dữ liệu để trả về cho lập trình viên. Việc kết hợp các entities lại với nhau tạo ra một thực thể mới sẽ giúp cho chatbot hiểu ngữ nghĩa cho những câu phức tạp hơn.

Hình 2.4.5. Chi tiết trong 1 entities

Việc thiết kế các intent entites phải được xác định rõ ràng vì việc gán nhãn các entities sẽ ảnh hưởng đến các intent. Chúng ta phải xác định rõ và gom nhóm cho các thực thể chung để cho chatbot dễ dàng phân tích và không bị rối loạn bởi nhiều câu ngữ nghĩa khác, càng nhiều intent trùng lặp thì chatbot sẽ xảy ra vấn đề khó phân tích được ngữ nghĩa dẫn đến không đưa đến kết quả intent chính xác cho người dùng.

14

2.4.5.Chức năng Fullfillments

Hình 2.4.6. Fullfillments

Cho phép người dùng tạo ra một hệ thống riêng cho lập trình viên tiếp nhận các intent rồi từ các data nhận được thông qua các intent có thể kết nối với các dịch vụ khác bên ngoài để phân tích phù hợp và trả ra kết quả cho người dùng

2.4.6.Chức năng Integration

Chức năng integrations của dialogflow cho phép ứng dụng kết hợp với lại nhiều nền tảng khác nhau như (Messenger, Skype, Telegram, Slack, ...)

15

2.4.7.Tại sao nên sử dụng Reactjs 2.4.7.1. Dễ sử dụng: 2.4.7.1. Dễ sử dụng:

− React là một thư viện GUI nguồn mở JavaScript tập trung vào một điều cụ thể; hoàn thành nhiệm vụ UI hiệu quả. Nó được phân loại thành kiểu “V” trong mô hình MVC (Model-View-Controller).

− Là lập trình viên JavaScript, bạn sẽ dễ dàng hiểu được những điều cơ bản về React. Bạn thậm chí có thể bắt đầu phát triển các ứng dụng dựa trên web bằng cách sử dụng react chỉ trong vài ngày.

− Để củng cố hiểu biết của mình, bạn hãy thử khám phá thêm nhiều hướng dẫn về React. Chúng mang đến nhiều thông tin về cách sử dụng công cụ: videos, hướng dẫn và dữ liệu làm phong phú góc nhìn của bạn.

2.4.7.2. Hỗ trợ Reusable Component:

− React cho phép bạn sử dụng lại components đã được phát triển thành các ứng dụng khác có cùng chức năng. Tính năng tái sử dụng component là một lợi thế khác biệt cho các lập trình viên.

− Viết component dễ dàng hơn:

− React component dễ viết hơn vì nó sử dụng JSX, mở rộng cú pháp tùy chọn cho JavaScript cho phép kết hợp HTML với JavaScript.

− JSX là một sự pha trộn tuyệt vời của JavaScript và HTML. Nó làm rõ toàn bộ quá trình viết cấu trúc trang web. Ngoài ra, phần mở rộng cũng giúp render nhiều lựa chọn dễ dàng hơn.

− JSX có thể không là phần mở rộng cú pháp phổ biến nhất, nhưng nó được chứng minh là hiệu quả trong việc phát triển components đặc biệt hoặc các ứng dụng có khối lượng lớn.

16

− React sẽ cập nhật hiệu quả quá trình DOM (Document Object Model – Mô hình đối tượng tài liệu). Như đã biết, quá trình này có thể gây ra nhiều thất vọng trong các dự án ứng dụng dựa trên web. May mắn là React sử dụng virtual DOMs, vì vậy có thể tránh được vấn đề này.

− Công cụ cho phép xây dựng các virtual DOMs và host chúng trong bộ nhớ. Nhờ vậy, mỗi khi có sự thay đổi trong DOM thực tế, thì virtual sẽ thay đổi ngay lập tức.

− Hệ thống này sẽ ngăn DOM thực tế để buộc các bản cập nhật được liên tục. Do đó, tốc độ của ứng dụng sẽ không bị gián đoạn.

17

Chương 3. GIẢI QUYẾT VẤN ĐỀ

3.1. Đặt vấn đề

− Thông qua quá trình khảo sát, nhóm nhận thấy trên thị trường hiện tại đã có rất nhiều hình thức quảng bá, tư vấn thông tin bất động sản. Tuy nhiên vẫn chưa thật sự có một biện pháp có thể cho người dùng tìm ra được cụ thể sản phẩm thực sự phù hợp với bản thân

− Do đó việc để nghiên cứu tìm ra một giải pháp phù hợp để tư vấn lựa chọn bất động sản cho từng người dùng là một vấn đề vô cùng khó khăn mà nhóm cần dành nhiều thời gian để đưa ra những ý tưởng và thực thi những ý tưởng đó.

3.2. Hướng giải quyết

Qua quá trình khảo sát tìm hiểu, nhóm quyết định để giải quyết vấn đề tư vấn cho khách hàng, nhóm sẽ thực hiện 1 số phương pháp để dẫn dắt người dùng tìm đến sự lựa chọn phù hợp cho riêng mình

3.2.1.Tính toán độ phù hợp của từng bất động sản đối với người dùng

− Dựa trên lịch sử tìm kiếm trước đó của người dùng trên website (Tìm kiếm bằng lọc, xem sản phẩm, yêu thích, chatbox,..) hệ thống sẽ tự động tính toán độ phù hợp của từng bất động sản đối với người dùng

− Người dùng có thể đăng nhập để hệ thống xác định chính xác hơn thông tin, tuy nhiên hệ thống cũng tự động lưu lại thông tin dựa trên địa chỉ IP để tư vấn cho người dùng

− Hệ thống tính toán độ phù hợp của bất động sản dựa trên hình thức tính trung bình cộng điểm, dựa trên các yếu tố:

o Thể loại

o Loại bất động sản

18 o Tỉnh, thành phố o Diện tích o Phòng ngủ o Phòng tắm o Hướng nhà o Số tầng o Giá

3.2.2.Tổng quát hóa số lượng bất động sản dưới dạng biểu đồ

− Với số lượng lớn bất động sản, hệ thống cung cấp chức năng biểu đồ giúp khái quát hóa để người có cái nhìn tổng quát bất động sản đáp ứng với tiêu chí mà mình mong muốn. Từ đó đưa ra được lựa chọn phù hợp với bản thân

− Hệ thống hỗ trợ 3 dạng biểu đồ:

o Biểu đồ cột

o Biểu đồ đường

o Biểu đồ radar

− Hệ thống hỗ trợ thống kê bất động sản với một số tiêu chí

o Thống kê theo diện tích với điều kiện thành phố và giá cả

o Thống kê theo thành phố với điều kiện diện tích và giá cả

19

Chương 4. PHÂN TÍCH THIẾT KẾ HỆ THỐNG

4.1. Sơ đồ Use Case

4.1.1.Sơ đồ Use Case tổng quát

20

STT Usecase Mô tả

1 Đăng ký Người dùng truy cập vào trang web và đăng ký tài khoản khách hàng vào hệ thống

2 Đăng nhập Người dùng truy cập vào trang web và đăng nhập tài khoản vào hệ thống (có thể là admin hoặc khách hàng)

3 Đổi mật khẩu Người dùng truy cập vào trang web và chọn đổi mật khẩu thay vì đăng nhập

4 Đăng xuất Người dùng đã đăng nhập vào hệ thống và đăng xuất thông tin người dùng

5 Lọc/Tìm kiếm bđs Tìm kiếm/lọc bất động sản theo những thông tin như từ khóa tìm kiếm, tỉnh/thành phố, quận/huyện, loại bất động sản, khoản giá, khoản diện tích... 6 Trang cá nhân Bao gồm các thông tin và chức năng của quản lý

bài viết, chỉnh sửa thông tin, quản lý yêu thích bài viết.

7 Quản lý bđs cá nhân Quản lý các bài viết bất động sản người dùng khách hàng đã tạo bao gồm sửa, xóa thông tin bài đã đăng và đang chờ duyệt

8 Quản lý yêu thích, lưu lại thông tin bài viết

Quản lý danh sách yêu thích, lưu lại thông tin bài viết của tất cả người dùng khách hàng

9 Chỉnh sửa thông tin Chỉnh sửa thông tin cá nhân của người dùng 10 Tạo bđs Tạo bất động sản sau khi đăng nhập

11 Gợi ý bđs liên quan Hiển thị các bài viết liên quan phù hợp với các hoạt động của người dùng như xem, tìm kiếm, yêu thích, …

21

Bảng 4.1.1. Thông tin các Use Case chính

4.1.2.Danh sách các Actor

Các đối tượng giao tiếp với hệ thống

STT Actor Ý nghĩa

1 Người dùng Là tất cả người dùng có nhu cầu giao dịch tất cả các loại bất động sản và sử dụng tất cả những tính năng của hệ thống như đăng giao dịch bất động sản, tra cứu bất động sản, giao dịch bất động sản, đẩy tin bất động sản...

2 Admin Nắm trọn bộ quyền quản lý hệ thống, quản lý người dùng, quản lý bài đăng, thao tác đóng mở bất động sản,…

Bảng 4.1.2. Danh sách Actor

12 Xem thông tin bđs dưới dạng biểu đồ

Hiển thị thông tin tổng quát số lượng bất động sản dưới dạng biểu đồ đường, cột, radar

13 Tương tác với chatbox Tương tác tìm kiếm sản phẩm thông qua chatbox 14 Quản lý thể loại Quản lý danh sách thể loại như tìm kiếm, thêm mới,

sửa, xóa thể loại

15 Quản lý bđs Quản lý danh sách bài viết bđs như tìm kiếm, lọc/xóa lọc trường thông tin, sắp xếp, xóa, sửa, thêm, duyệt bài viết

16 Làm nổi bật bđs Lựa chọn bài viết để làm bài nổi bật trên trang web 17 Quản lý người dùng

khách hàng

Hiển thị danh sách người dùng khách hàng, bao gồm các thông tin, danh sách bài đăng, danh sách yêu thích của từng khách hàng. Ngoài ra còn có thể lọc danh sách theo từng trường thông tin

22

4.1.3.Đặc tả một số Use Case chính 4.1.3.1. Đặc tả use-case “Đăng Ký" 4.1.3.1. Đặc tả use-case “Đăng Ký"

Tên chức năng Đăng ký.

Tóm tắt Người dùng muốn đăng bất động sản hoặc lưu bài viết để xem lại cần đăng kí người dùng khách hàng để đăng nhập vào hệ thống.

Actor Người dùng khách hàng

Dòng sự kiện chính Nhập đầy đủ thông tin.

Dòng sự kiện khác Không thể đăng ký. Nguyên nhân:

• Trùng tên đăng ký người dùng.

• Trùng email đã đăng ký.

Trạng thái hệ thống trước khi thực hiện usecase.

Actor: tất cả actor. Điều kiện: không có.

Trạng thái hệ thống sau khi thực hiện use case.

Đăng ký thành công, tự động trở lại trang đăng nhập

Các yêu câu đặc biệt Không có.

Ngoại lệ Không có.

Bảng 4.1.3. Đặc tả usecase “Đăng Ký”

4.1.3.2. Đặc tả use-case “Đăng Nhập"

23

Tóm tắt Đăng nhập vào hệ thống để thực hiện những tính năng trong hệ thống.

Actor Người dùng.

Dòng sự kiện chính Người dùng truy cập vào hệ thống

Người dùng nhấn đăng nhập để tiến hành đăng nhập vào hệ thống.

Nếu người dùng chưa đăng ký vẫn có thể vào trang web hệ thống để xem như người dùng khách hàng bình thường nhưng không sử dụng được các chức năng

Dòng sự kiện khác Không thể đăng nhập. Nguyên nhân:

• Không thể kết nối đến server.

• Người dùng nhập sai mật khẩu.

• Người dùng chưa đăng ký tài khoản.

Trạng thái hệ thống trước khi thực hiện usecase.

Actor: tất cả actor. Điều kiện: không có.

Trạng thái hệ thống sau khi thực hiện use case.

Người dùng đăng nhập thành công, truy cập vào trang chủ.

Người dùng đăng nhập thất bại hiển thị thông báo ở trang đăng nhập

Các yêu câu đặc biệt Không có.

Ngoại lệ Không có.

24

4.1.3.3. Đặc tả use-case “Đổi mật khẩu "

Tên chức năng Đổi mật khẩu

Tóm tắt Đăng mật khẩu hiện tại của người dùng.

Actor Người dùng.

Dòng sự kiện chính Người dùng truy cập vào hệ thống

Người dùng nhấn đăng nhập để đăng nhập vào hệ thống

Sau khi đăng nhập thành công nhấn người dùng chọn Đổi mật khẩu

Dòng sự kiện khác Không thể đổi mật khẩu. Nguyên nhân:

• Sai mật khẩu hiện tại.

Trạng thái hệ thống trước khi thực hiện usecase.

Actor: tất cả actor. Điều kiện: không có.

Trạng thái hệ thống sau khi thực hiện use case.

Người dùng đổi mật khẩu thành công xuất hiện thông báo.

Các yêu câu đặc biệt Không có.

Ngoại lệ Không có.

Bảng 4.1.5. Đặc tả usecase “Đổi mật khẩu”

4.1.3.4. Đặc tả use-case “Đăng xuất "

Tên chức năng Đăng xuất

25

Actor Người dùng.

Dòng sự kiện chính Người dùng truy cập vào hệ thống

Người dùng nhấn đăng xuất để tiến hành đăng xuất khỏi hệ thống

Dòng sự kiện khác Không thể đăng xuất. Nguyên nhân:

• Chưa đăng nhập vào hệ thống

Trạng thái hệ thống trước khi thực hiện usecase.

Actor: tất cả actor. Điều kiện: không có.

Trạng thái hệ thống sau khi thực hiện use case.

Người dùng đăng xuất thành công hệ thống tải lại trang đăng nhập

Các yêu câu đặc biệt Không có.

Ngoại lệ Không có.

Bảng 4.1.6. Đặc tả usecase “Đăng xuất”

4.1.3.5. Đặc tả use-case “Lọc/Tìm kiếm bất động sản"

Tên chức năng Lọc/ Tìm kiếm bất động sản

Tóm tắt Tìm kiếm/lọc bất động sản theo những thông tin như từ khóa tìm kiếm, tỉnh/thành phố, quận/huyện, loại bất động sản, khoản giá, khoản diện tích...

26

Dòng sự kiện chính Người dùng truy cập vào hệ thống.

Vào trang chủ chọn thể loại, thành phố, mức giá, quận huyện, diện tích hoặc nhập vào sau đó nhấn tìm kiếm để thực hiện chức năng.

Dòng sự kiện khác Không thể tìm kiếm. Nguyên nhân:

• Không có bài đăng chứa từ khóa.

Trạng thái hệ thống trước khi thực hiện usecase.

Actor: tất cả actor. Điều kiện: không có.

Trạng thái hệ thống sau khi thực hiện use case.

Hiển thị danh sách tìm kiếm/lọc thành công cho người dùng

Các yêu câu đặc biệt Không có.

Ngoại lệ Không có.

Bảng 4.1.7. Đặc tả usecase “Lọc/Tìm kiếm bất động sản”

4.1.3.6. Đặc tả use-case “Trang cá nhân"

Tên chức năng Trang cá nhân.

Tóm tắt Bao gồm các thông tin và chức năng của quản lý bài viết, chỉnh sửa thông tin, quản lý yêu thích bài viết

Actor Người dùng.

27

Hiển thị thông tin cơ bản của người dùng bao gồm:

• Đã cung cấp cmnd, email … hay chưa. Hiển thị những bất động sản của người dùng đang đăng giao dịch trên hệ thống.

Hiển thị những bất động sản của người dùng đã lưu.

Dòng sự kiện khác Không thể truy xuất.

Nguyên nhân : không thể kết nối đến server.

Trạng thái hệ thống trước khi thực hiện usecase.

Actor: tất cả actor. Điều kiện: không có.

Trạng thái hệ thống sau khi thực hiện use case.

Hiển thị đầy đủ thông tin người dùng, danh sách bài đăng, danh sách yêu thích

Các yêu câu đặc biệt Không có.

Ngoại lệ Không có.

Bảng 4.1.8. Đặc tả usecase “Trang cá nhân”

4.1.3.7. Đặc tả use-case “Quản lý bất động sản cá nhân"

Tên chức năng Quản lý bất động sản cá nhân.

Tóm tắt Quản lý các bài viết bất động sản người dùng khách hàng đã tạo bao gồm sửa, xóa thông tin bài đã đăng và đang chờ duyệt

28

Actor Người dùng.

Dòng sự kiện chính Chọn thông tin người dùng

Chọn Quản lý bất động sản, nhấn chỉnh sửa vào bài viết đang ở tình trạng PENDING, sau khi chỉnh sửa thông tin bài viết vẫn sẽ ở tình trạng PENDING chờ người dùng admin duyệt.

Dòng sự kiện khác Không thể chỉnh sửa Nguyên nhân:

• Chỉ những bài viết đang tình trạng PENDING mới được sửa.

Trạng thái hệ thống trước khi thực hiện usecase.

Actor: tất cả actor. Điều kiện: không có.

Một phần của tài liệu Hệ thống tư vấn lựa chọn bất động sản kết hợp chatbox (báo cáo cuối kì đồ án 2) (Trang 29)