CHƯƠNG 1. TỔNG QUAN Chương 2: Nội dung nghiên cứu Chương này trình bày tổng quát về các lý thuyết có liên quan đến các vấn đề mà đề tài sẽ dùng để thực hiện thiết kế, thi công cho đề tài. Tìm hiểu về nền tảng Dialogflow.com, các khái niệm API, webhook và tìm hiểu rõ về kit Raspberry pi 2, NodeMCU. Chương 3: Cơ sở dữ liệu Giới thiệu về mô hình hệ thống, các khối chức năng, cảm biến.
Chương 4: Thiết kế hệ thống Lưu đồ giải thuật, các cách kết nối và xử lý từ phần cứng đến phần mềm liên quan tới hệ thống. Chương 5: Kết Quả, Nhận Xét và Đánh Giá Trình bày kết quả của cả quá trình nghiên cứu làm đề tài, nêu lên những kiến thức đã học được từ quá trình làm đồ án, nhận xét và đánh giá sản phẩm. Chương 6: Kết Luận và Hướng Phát Triển Trình bày ngắn gọn những kết quả thu được từ đó tiến hành kết luận, đánh giá sản phẩm có đạt hay không, từ đó đưa ra hướng phát triển để tăng chức năng, khả năng cho sản phẩm. 3 do an CHƯƠNG 2.
NỘI DUNG NGHIÊN CỨU Chương 2.1 TỔNG QUAN VỀ CHATBOT – GOOGLE ASSISTANT 2.1 Khái niệm về chatbot Định nghĩa một cách đơn giản nhất, chatbot là một chương trình máy tính tương tác với người dùng bằng ngôn ngữ tự nhiên dưới một giao diện đơn giản, âm thanh hoặc dưới dạng tin nhắn.1 Khái niệm chatbot Về cơ bản, chatbot là một hình thức thô sơ của phần mềm trí tuệ nhân tạo. Nó hoạt động độc lập, có thể tự động trả lời những câu hỏi hoặc xử lý tình huống càng thật càng tốt. Phạm vi và sự phức tạp của chatbot được xác định bởi thuật toán của người tạo nên chúng. Chatbot là sự kết hợp của các kịch bản có trước và tự học trong quá trình tương tác.
Với các câu hỏi được đặt ra, chatbot sẽ dự đoán và phản hồi chính xác nhất có thể. Nếu tình huống đó chưa xảy ra (không có trong dữ liệu), chatbot sẽ bỏ qua nhưng sẽ đồng thời “bắt chước” để áp dụng cho các cuộc trò chuyện thường xuyên (lặp đi lặp lại nhiều lần) về sau. Theo đúng cách mà chúng tương tác với người dùng, các chatbot thường được chia thành 2 loại: - Audiotory (âm thanh): + Siri (Apple). 4 do an CHƯƠNG 2.
NỘI DUNG NGHIÊN CỨU - Textual (tin nhắn): + Google Auth + Firebase Auth 2.2 Google Assistant Tháng 5/2016 Google Assistant là một trợ lý cá nhân ảo được phát triển bởi Google và được giới thiệu tại hội nghị nhà phát triển của hãng. Tháng 2/2017 Google bắt đầu triển khai Assistant trên các thiết bị Android khác, bao gồm cả các điện thoại thông minh bên thứ ba và các thiết bị Android Wear, và được phát hành dưới dạng ứng dụng riêng biệt trên iOS vào tháng 5. Tháng 12/2016, Google khởi động "Actions on Google", một nền tảng nhà phát triển cho Google Assistant. Tháng 4/2017, Google phát hành một bộ phát triển phần mềm (SDK), cho phép các nhà phát triển bên thứ ba có thể tự xây dựng phần cứng tương thích với Google Assistant.
Nó cũng đã được tích hợp vào Raspberry Pi, những chiếc xe hơi từ Audi và Volvo, và các thiết bị nhà thông minh, bao gồm tủ lạnh, máy giặt và lò nướng, từ các công ty như iRobot, LG, General Electric, và D-Link. Vì “Actions on Google” là một nền tảng nên cho có thể kết hợp với Diaglogflow để xử lý dữ liệu khi ta ra lệnh cho Google Assistant. Từ đó nhờ các phương thức từ webhook, fulfillment mà dữ liệu được đẩy vào Firebase Database.2 Logo của Google Assistant xuất hiện hầu hết trên các thiết bị Android 2.3 Xử lý ngôn ngữ tự nhiên (Natural Language Processing) Để chatbot có thể hiểu được người dùng nói gì thì ta phải dùng đến NLP (Natural Language Processing). Mục tiêu của lĩnh vực này là giúp máy tính hiểu và thực hiện hiệu quả những nhiệm vụ liên quan đến ngôn ngữ của con người như: tương tác giữa người và máy, cải thiện hiệu quả giao tiếp giữa con người với con người, hoặc đơn giản là nâng cao hiệu quả xử lý văn bản và lời nói.
NLP được Dialogflow sử dụng để tạo ra những chatbot thông minh. 5 do an CHƯƠNG 2. NỘI DUNG NGHIÊN CỨU 2.2 TỔNG QUAN VỀ API 2.1 Khái niệm về API Hình 2.3: Khái niệm API API (Application Programming Interface) là một giao diện lập trình ứng dụng mà một hệ thống máy tính hay ứng dụng cung cấp để cho phép các yêu cầu dịch vụ có thể được tạo ra từ các chương trình máy tính khác, và/hoặc cho phép dữ liệu có thể được trao đổi qua lại giữa chúng.2 Mô hình của một API API bao gồm ba phần: - Người dùng: người đưa ra yêu cầu. - Máy khách: máy tính gửi yêu cầu tới máy chủ.
- Máy chủ: máy tính phản hồi yêu cầu. Máy chủ được xây dựng nó thu thập và lưu trữ dữ liệu. Khi máy chủ đó đang chạy, các lập trình viên tạo ra dữ liệu, bao gồm các end point (điểm cuối) nơi có thể tìm thấy dữ liệu cụ thể. Sau đó, người dùng bên ngoài có thể truy vấn (hoặc tìm kiếm) dữ liệu trên máy chủ hoặc xây dựng một chương trình chạy tìm kiếm trên cơ sở dữ liệu và biến thông tin đó thành định dạng có thể sử dụng khác.
Nhiều công ty sử dụng các API mở từ các công ty lớn hơn như Google và Facebook để truy cập dữ liệu không có sẵn. Trong trường hợp này các API làm giảm đáng kể các rào cản phát triển đối với các công ty nhỏ hơn.3 Các tác vụ thực hiện qua API API là cách để hai máy tính (phần mềm) giao tiếp với nhau. Có bốn loại hành động mà API có thể thực hiện: GET: yêu cầu dữ liệu từ máy chủ. 6 do an CHƯƠNG 2.
NỘI DUNG NGHIÊN CỨU POST: gửi các thay đổi từ máy khách đến máy chủ khi thêm thông tin vào máy chủ, như tạo một mục mới. PUT: sửa đổi hoặc thêm vào thông tin hiện có. DELETE: xóa thông tin hiện có. Khi bạn kết hợp các end point (điểm cuối) với các hành động này, bạn có thể tìm kiếm hoặc cập nhật mọi thông tin có sẵn trên API.
Bạn sẽ cần phải kiểm tra tài liệu API để tìm hiểu cách mã hóa các hành động này, vì chúng hoàn toàn khác nhau. - Thực hiện một yêu cầu trên một máy chủ: HTTP: giao thức truyền siêu văn bản. Đây là cách bạn truy cập trang web bằng cách nhập URL vào thanh tìm kiếm trong trình duyệt của bạn. Đây là một cách thực sự dễ dàng để truy cập dữ liệu.
Định dạng văn bản: XML, JSON. Đây là những ngôn ngữ chính để truy cập dữ liệu qua API. Khi bạn nhận được dữ liệu của mình, bạn sẽ cần phải biết đọc mã XML hoặc JSON để hiểu những gì máy chủ đã cung cấp cho bạn. - Ý tưởng và các bước trong quy trình API: Hầu hết các API đều yêu cầu key (mã khóa) API.
Khi bạn tìm thấy API bạn muốn sử dụng, hãy xem tài liệu về các yêu cầu truy cập. Hầu hết các API sẽ yêu cầu bạn hoàn tất xác minh danh tính, chẳng hạn như đăng nhập bằng tài khoản Google của bạn. Bạn sẽ nhận được một chuỗi ký tự và số duy nhất để sử dụng khi truy cập API. Các công cụ sẵn có (và thường miễn phí) giúp bạn điều hướng các yêu cầu của mình để truy cập các API hiện có bằng key API mà bạn nhận được. Bạn vẫn sẽ cần phải biết một số cú pháp từ tài liệu, nhưng có rất ít kiến thức mã hóa cần thiết. Cách tốt nhất tiếp theo để lấy dữ liệu từ API là tạo URL từ tài liệu API hiện có. Nhìn chung, yêu cầu API trông không khác nhiều so với URL trình duyệt thông thường, nhưng dữ liệu được trả về sẽ ở dạng dễ đọc cho máy tính.1 Khái niệm Webhook Webhook là một HTTP callback: là 1 công cụ để truy vấn và lưu trữ dữ liệu 7 do an CHƯƠNG 2.
NỘI DUNG NGHIÊN CỨU của một Event xác định. Khi một trong những sự kiện được kích hoạt, nó sẽ gửi một HTTP POST đến URL đã được cấu hình webhook.2 Hoạt động của Webhook Một ứng dụng web đang triển khai Webhook sẽ POST một thông báo tới một URL khi một event xảy ra. Events này do người dùng cấu hình và URL này được người dùng đăng ký với trang web. Hay nói cách khác, bằng cách cho phép người dùng chỉ định một URL cho các sự kiện khác nhau, ứng dụng sẽ POST dữ liệu tới các URL đó khi các sự kiện xảy ra.
Sau khi nhận được thông báo thành công, webhook sẽ trả về status code 200 OK về cho trang web. Những đặc điểm của webhook: Push: nhận dữ liệu theo thời gian thực Bất cứ khi nào một events đã được cấu hình trước xảy ra thì ngay lập tức dữ liệu sẽ gửi đến URL đã đăng ký ngay lập tức với thời gian thực. Pipes: nhận dữ liệu và truyền đi Một Pipe xảy ra khi WebHook của bạn không chỉ nhận dữ liệu thời gian thực, mà còn tiếp tục thực hiện khi có một event mới, kích hoạt các hành động không liên quan đến sự kiện ban đầu. Plugins: xử lý dữ liệu và trả lại thứ gì đó.
Đây là nơi mà toàn bộ web trở thành một nền tảng lập trình. Bạn có thể sử dụng Webhook này để cho phép người khác mở rộng ứng dụng của bạn. Ý tưởng chung là một ứng dụng web gửi dữ liệu qua Webhook cũng sẽ sử dụng phản hồi từ webhooks để sửa đổi dữ liệu của riêng nó. Theo cách này, webhook thay đổi ứng dụng của bạn nếu bạn muốn cho phép những người khác thực sự mở rộng và nâng cao khả năng của ứng dụng của bạn.4 TỔNG QUAN VỀ DIALOGFLOW Hình 2.4: Logo Dialogflow 8 do an CHƯƠNG 2.
NỘI DUNG NGHIÊN CỨU Dialogflow.com (tiền thân là API.AI) là một API do Google 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 hội thoại bằng văn bản (text) hoặc giọng nói (voice). Dialogflow là nền tảng về công nghệ tương tác giữa con người và máy tính dựa trên các cuộc trò truyện bằng ngôn ngữ tự nhiên và có thể được sử dụng để phát hiện các từ khóa và ý định trong câu của người dùng. Vai trò của nó là giúp xây dựng chatbots sử dụng Machine Learning. Với DialogFlow hỗ trợ các tích hợp với các nền tảng, dịch vụ khác nhau như Facebook Messenger, các nền tảng Google, Skype, v.
chatbot của bạn sẽ làm việc với mọi nền tảng này nếu bạn thiết lập tích hợp đúng cách.