TensorFlow hỗ trợ tính toán song song trên cả CPU và GPU Một vài điểm nổi bật của TensorFlow so với các thư viện machine learning khác: Mã nguồn mở nên sử dụng miễn phí TensorFlo
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
Báo cáo cuối kì Trí tuệ nhân tạo
Chủ đề: XÂY DỰNG CHATBOX DỰA TRÊN NỀN TẢNG TENSORFLOW
GVHD: Th.s Nguyễn Đình Hiển
Sinh viên thực hiện:
Năm học: 2018 – 2019
Trang 2MỤC LỤC
I Tìm hiểu về TensorFlow 3
1 Giới thiệu về TensorFlow 3
2 Cách thức hoạt động của TensorFlow 5
II Tìm hiểu về ChatBox 6
1 Giới thiệu về ChatBox 6
2 Chức năng của ChatBox 6
3 Nền tảng xây dựng ChatBox 6
4 ChatBox hoạt động như thế nào? 9
5 Chatbox trên Facebook Messenger 9
6 Chatbox Facebook làm sao hiểu ngôn ngữ người dùng 9
III Xây dựng ChatBox trên Messenger 9
IV Tiến hành cài đặt và sử dụng 12
1 Định hướng 12
2 Tiến hành cài đặt 12
V Tổng kết 27
1 Ưu điểm 27
2 Nhược điểm 27
VI Tài liệu tham khảo 28
Trang 3I Tìm hiểu về TensorFlow
1 Giới thiệu về TensorFlow
Hình 1 Biểu tượng của TensorFlow
Tensorflow là một thư viện mã nguồn mở cung cấp khả năng xử lí tính toán
số học dựa trên biểu đồ mô tả sự thay đổi của dữ liệu, trong đó các node là các
phép tính toán học còn các cạnh biểu thị luồng dữ liệu Trong tesorflow có một vài khái niệm cơ bản sau
Sơ đồ 1 Một vài khái niệm trên Tesoraflow
Tensor:
Tensor là cấu trúc dữ liệu trong tensorflow đại diện cho tất cả các loại dữ liệu Nói cách khác, tất cả các kiểu dữ liệu khi đưa vào trong tensorflow thì đều được gọi là Tensor Vậy nên có thể hiểu được Tensorflow là một thư viện mô tả, điều chỉnh dòng chảy của các Tensor Tensor có 3 thuộc tính cơ bản
là rank, shape và type
Rank:
Rank là số bậc của tensor Ví dụ Tensor = [1] thì có rank = 1, Tensor =
[[3,4],[5,6]] thì sẽ có rank = 2 Việc phân rank này khá quan trọng vì nó đồng thời cũng giúp phân loại dữ liệu của Tensor Khi các rank đặc biệt cụ thể, Tensor có những tên gọi riêng như sau:
Scalar: Khi Tensor có rank bằng 0
TensorRankShapeType
Trang 4 Vector: Vector là một Tensor rank 1 .
Matrix: Đây là một Tensor rank 2 hay mảng hai chiều theo khái niệm của Python
N-Tensor: Khi rank của Tensor tăng lên lớn hơn 2, chúng được gọi chung là N-Tensor
Hình 2 Ví dụ minh họa về Tensor
Tensorflow là một thư viện mã nguồn mở mạnh mẽ cho machine learning được phát triển bởi các nhà cứu của Google và phát hành tháng 10 năm 2015 Thư viện này hỗ trợ xây dựng các mô hình deeplearning rất phức tạp qua những API cực kì ngắn gọn và nó có rất nhiều các hàm được xây dựng sẵn cho từng bài toán
Trang 5phép tính toán song song trên nhiều máy tính khác nhau, tất nhiên là cũng có thể trên nhiều CPU, GPU trong cùng một máy Các mô hình deeplearning phát triển trên TensorFlow có thể được sử dụng trên nhiều các loại platform khác nhau (từ smartphone tới distributed servers) và trên cả CPUs lẫn GPUs Tensorflow cung cấp các API làm việc với Python, C++.
Hình 3 TensorFlow hỗ trợ tính toán song song trên cả CPU và GPU
Một vài điểm nổi bật của TensorFlow so với các thư viện machine
learning khác:
Mã nguồn mở nên sử dụng miễn phí
TensorFlow hỗ trợ trên nhiều ngôn ngữ khác nhau: Python, C++, Java, R,
Go, Javascript
Thư viện này có thể được sử dụng với CPU hoặc cùng với GPU
Hỗ trợ nhiều nền tảng từ máy tính đến điện thoại, hệ thống nhúng, …
Hỗ trợ nhiều nền tảng điện toán đám mây: Amazon Web Services (AWS), Google Cloud Platform (Google), Azune (Microsoft)
Tích hợp Keras - thư viện cấp cao về neural network
Hỗ trợ tốt tính toán đồ thị, khối lượng API khổng lồ cho các mô hình mạngneuron
Cho phép dễ dàng trển khai các model và sử dụng chúng dễ dàng Có một cộng đồng hỗ trợ tốt
2 Cách thức hoạt động của TensorFlow
Trang 6II Tìm hiểu về ChatBox
1 Giới thiệu về ChatBox
Theo định nghĩa chính xác trong từ điển Oxford, “chatbox là chương trình máy tính được thiết kế để mô phỏng cuộc trò chuyện với con người, đặc biệt là trêninternet Hay nói cách khác, hãy xem nó là một trợ lí, có thể giao tiếp với chúng ta thông qua tin nhắn văn bản, một người bạn ảo được tích hợp vào các website, ứng dụng, mang lại cho những người kinh doanh cơ hội tiếp cận gần hơn với khách hàng Tóm gọn lại, chatbox là gì? Chúng là một hệ thống giao tiếp tự động với người dùng
2 Chức năng của ChatBox
Không chỉ ứng dụng cho Thương mại điện tử, Chat bot có thể ứng dụng vào mọi lĩnh vực & dịch vụ Vì thế, người ta còn gọi là Cuộc cách mạng Chat Bot
Dự báo thời tiết: Lấy thời tiết bất cứ khi nào bạn yêu cầu
Cửa hàng bán lẻ: Giúp bạn chọn ra và đặt hàng cửa hàng trong tuần
Tin tức: Hỏi nó để cho bạn biết khi nào một cái gì đó thú vị xảy ra
Lời khuyên: Bạn sẽ nói với nó các vấn đề của bạn và nó giúp bạn nghĩ ra giải pháp
Tài chính cá nhân: Nó giúp tôi quản lý tiền bạc của tôi tốt hơn
Sắp xếp lịch:Hãy cho tôi một cuộc gặp gỡ với một người nào đó trong nhómMessenger cùng Facebook
Booking: Đặt vé máy bay, đặt khách sạn, đặt nhà hàng
Khả năng xử lý ngôn ngữ tự nhiên mạnh mẽ (NLU)
Khả năng trò chuyện với con người, hoặc lôi kéo sự chú ý của mọi người đến chúng
Có khả năng học tập dựa trên các thuật toán máy học, ví dụ: Đào tạo
Chatbox dựa trên các cuộc trò chuyện hiện hành, Học hỏi từ sự tương tác vớicon người, sử dụng những hiểu biết của khách hàng để tối ưu hóa và tăng cường thời gian đàm thoại…
3 Nền tảng xây dựng ChatBox
3.1 ChatFuel.com
Trang 7Hình 4 ChatFuel
Hơn 360.000 Chatbox đã được tạo ra bằng cách sử dụng Chatfuel, phục vụ hơn 17 triệu người dùng trên toàn cầu Chatfuel là một công cụ xây dựng cơ bản của một bot Những tính năng nổi bật trên Chatfuel đó là Tìm kiếm của Google, tìm kiếm Bing, API JSON, RSS, Đăng ký plugin, IFTTT, Zapier, đầu vào của người dùng và LiveChat Chatfuel hỗ trợ khoảng 50 ngôn ngữ trên khắp thế giới
3.2. Chatty People (chattypeople.com)
Hình 5 Chatty People
Người sử dụng Facebook thường xuyên nên cân nhắc việc sử dụng ChattyPeople để giao tiếp với khách hàng Với công cụ này, bạn sẽ có thể đápứng với khách hàng mà không cần bất kỳ mã hóa phức tạp nào Đây là một trong những nền tảng đơn giản nhất trên thị trường hiện nay Thật dễ dàng để tích hợp bất kỳ máy tính nào bạn tạo bằng công cụ này với các nền tảng Thương mại Điện tử phổ biến như Shopify Bạn không cần phải viết mã bất
kỳ và điều tốt nhất là nó hoàn toàn miễn phí
Trang 83.3. Messnow.com
Hình 5 Messnow
Đây là một trong những nền tảng đầu tiên tại Việt Nam cung cấp Chatbox cho doanh nghiệp Điểm nổi bật nhất của Messnow đó chính là giao diện nền tảng hoàn toàn bằng tiếng Việt, giúp cho người dùng dễ dàng tạo Chatbox cũng như có khả năng xử lý ngôn ngữ tự nhiên một cách chính xác nhất để cung cấp thông tin hiệu quả Ngoài ra nó còn có kho ứng dụng như đọc báo, chơi game, chỉnh sửa ảnh… giúp người dùng có thể tích hợp nhiều ứng dụng hơn cho bot Nền tảng hỗ trợ hơn 50 ngôn ngữ, vì vậy đây là nền tảng đang được các sự kiện, khách sạn, nhà hàng, doanh nghiệp tại Việt Nam đặc biệt tin dùng.
3.4. Manychat.com
Hình 6 ManyChat
Chức năng cơ bản của ManyChat cho phép bạn tiếp nhận người dùng mới, gửi nội dung, lập lịch bài đăng, thiết lập phản hồi tự động từ khóa (văn bản, hình ảnh, menu), tự động phát nguồn cấp dữ liệu RSS của bạn và nhiều hơn nữa Nền tảng được hỗ trợ đa ngôn ngữ và giao diện dễ sử dụng đang
Trang 9được các doanh nghiệp, đặc biệt là những người làm trong ngành Markerting tin dùng.
4. ChatBox hoạt động như thế nào?
Người dùng chỉ cần sao chép và dán đoạn URL hoặc nhập nội dung câu hỏi
và câu trả lời có sẵn Các nền tảng tạo ChatBox có khả năng xử lý ngôn ngữ tự nhiên, đặc biệt là tiếng Việt, nhờ sở hữu công nghệ học máy tối ưu cùng sự tham gia phát triển sản phẩm của đội ngũ chuyên gia về trí tuệ nhân tạo và xử lý ngôn ngữ tự nhiên
Các chatbox được tạo trên nền tảng này có thể hiểu chính xác câu hỏi và đưa
ra câu trả lời dựa trên dữ liệu được cung cấp ban đầu Chúng có khả năng tự học vàtrở nên thông minh hơn theo thời gian nhờ người dùng "đào tạo" thường xuyên
5. Chatbox trên Facebook Messenger
Hiện nay Facebook cho phép bạn cài đặt Messenger Chatbox trên fanpagedoanh nghiệp của bạn Chatbox cho phép bạn tạo một cuộc hội thoại tự động
với khách hàng nếu như họ muốn gửi tin nhắn tới fanpage của bạn bằng Facebook
Messenger
Một loạt các menu hoặc từ khoá hướng dẫn khách hàng thực hiện các bước mua hàng, tiết kiệm thời gian, loại bỏ những yêu cầu vụn vặt mà không tạo ra doanh thu Đây là cách cho phép mọi người dễ dàng tương tác với fanpage của bạn
để mua vé cho 1 sự kiện, nhận các chỉ dẫn, xem menu, tạo một cuộc hẹn, vv
6. Chatbox Facebook làm sao hiểu ngôn ngữ người dùng
Chatbox sử dụng những từ khoá mà người dùng có thể gõ ngay trên dòngchat và từ đó đưa ra những kết quả tương ứng với điều mà người dùng đang quantâm
Ví dụ như nếu bạn sở hữu một nhà hàng mà có những lựa chọn về đồ ănchay trong thực đơn, bạn có thể lập trình từ “ăn chay” ngay trong bot Sau đó khingười dùng gõ từ khoá đó, tin nhắn trả về sẽ bao gồm những lựa chọn về đồ ănchay từ thực đơn hoặc chỉ ra những phần thực đơn mà có những món ăn này
Bạn có thể tạo một bot thông minh với những điều kiện kích hoạt mà
bạn đã xác định từ trước Bot của bạn có thể nhận diện những đoạn văn bản giúp
người dùng có thể nhận được câu trả lời nhanh chóng và dễ dàng
Trang 10III Xây dựng ChatBox trên Messenger
Bước 1:
Truy cập vào trang web https://www.facebook.com/pages/creation/
Chọn loại trang, đặt tên cho trang của bạn và chọn tạo trang phía trên bên trái màn hình
Hình 7 Tạo trang
Bước 2: Khởi chạy ChatFuel
Truy cập Chafuel.com và đăng nhập bằng facebook của bạn
Trang 11Hình 8 Chatfuel
Bước 3: Kết nối Bot với Facebook
Bạn sẽ thấy một nút ở phía trên bên phải để “Connect to
Facebook” Nhấp vào nó, sau đó chọn trang bạn vừa tạo Điều này tạo cho chatbox được liên kết với Facebook
Hình 9 Kết nối chatbox với Facebook
Bước 4: Xây dựng Bot
Ở bên phải, bạn có một menu tùy chọn dọc Bạn sẽ chỉ cần 'Tự động hóa' để bắt đầu Nửa bên trái của màn hình bao gồm các khối, nhóm khối và chuỗi của
Trang 12bạn Phía bên phải là khung chỉnh sửa cho nội dung của khối hoặc chuỗi đang hoạt động.
Nếu bạn chọn khối bạn muốn chỉnh sửa (ví dụ như Hello), bạn sẽ thấy ở dưới cùng của cửa sổ chỉnh sửa một loạt các tùy chọn: Text, Typing, Quick Reply, Image, Gallery, Go to Block, to Sequence và dấu cộng để truy cập các tùy chọn khác Đây là những thành phần cơ bản của bot Kéo chúng vào ngăn chỉnh sửa của các khối của bạn và chỉnh sửa chúng khi thích hợp
Hình 10 Add a card
Bước 5: Kiểm tra Bot
Nhấp vào nút “Test this chatbox” màu xanh ở phía trên bên phải để thử bot
của bạn
Hình 11 Test this chatbox
IV Tiến hành cài đặt và sử dụng
1 Định hướng
- Mục tiêu: Xây dựng một ứng dụng Chatbox trên website cá nhân liên
kết với facebook hỗ trợ việc học lập trình ngôn ngữ html
Trang 13- Yêu cầu: Chatbox có thể trả lời người dùng các câu hỏi liên quan đến
ngôn ngữ html và một số câu hỏi đơn giản
- Nền tảng xây dựng: Facebook bot framework, Zotabox, Blogger.
- Nền tảng phát triển: Chatfuel
2 Tiến hành cài đặt
2.1 Khởi tạo một Chatbox trên Chatfuel
Trước khi tạo một Chatbox, hãy tìm hiểu một số thuật ngữ sẽ gặp phải:
Block: bao gồm một hoặc nhiều thẻ card (tin nhắn) Các card này có thể được
gửi cùng một lúc với 1 block Bạn có thể thêm 1 nút ở phía dưới 1 card để gửi chongười dùng số điện thoại để liên hệ, một URL để truy cập hoặc 1 block mới vớimột hoặc nhiều card mới
Hình 12 Đặc điểm của Block
Có rất nhiều loại card như Gallery (chuỗi hình ảnh), Text card (văn bản), Image hoặc Plugin:
Gallery card: là một chuỗi nhiều hình ảnh Mỗi ảnh có một tiêu đề, phụ đề
và đường link URL, nút bấm hoặc tin trả lời nhanh Tin trả lời nhanh có thểđược coi như một card phụ hoạt động giống như một lời nhắc với nhiều chỉ
Trang 14dẫn từ fanpge của bạn nếu như người dùng không biết làm gì tiếp theo sauchuỗi tin nhắn tự động của bạn
Text card: bao gồm phần văn bản, các nút bấm hoặc tin trả lời nhanh
Image card: bao gồm 1 ảnh và 1 tin trả lời nhanh
Plugin card: tích hợp nhiều lựa chọn như cho phép dười dùng đọc và theo
dõi blog của bạn, gửi bài từ tài khoản Youtube hay Instagram của bạn vớicác công cụ như IFTTT hay Zapier, và rất nhiều lựa chọn như Google Sheetshoặc Google Calendar
Để tạo một Chatbox với Chatfuel, đầu tiên phải tạo một tài khoản Chatfuel Sau đó bạn phải đăng nhập vào tài khoản Facebook, nhấp chuột vào dấu
“+” để bắt đầu một Chatbox mới.
Vào địa chỉ Chatfuel.com đăng kí tài khoản
Hình 13 Trang chủ Chatfuel
Sau đó nhấp vào Add đề tạo Bot chat mới
Trang 15Hình 14 Nút tạo mới 1 Bot chat
Tiếp theo, chọn một mẫu để chỉnh sửa hoặc chọn một mẫu trắng để làm từ đầu Nhập tên cho Chatbox trong hộp văn bản và nhấp vào nút “Create a
Chatbox” để tạo
Hình 15 Chọn nút Create a Chatbox để hoàn thành khởi tạo Chatbox
Ở trang tiếp theo, nhấp chuột vào “Connect to Facebook”
Trang 16Hình 16 Kết nối tới Fanpage Facebook
Chọn một fanpage đã có sẵn của bạn hoặc là tạo một fanpage mới nơi mà bạn sẽ sử
dụng Chatbox
Hình 17 Giao diện khung kết nối
Bây giờ nhấp chuột vào “Build” trong thanh menu góc bên để bắt đầu tạo Chatboxcủa bạn
Trang 17Hình 18 Xây dựng Chatbox
Tin nhắn chào mừng mặc định được để trong một text card, đây là điều đầu tiênngười dùng sẽ nhìn thấy khi họ nhấp vào Messenger của bạn Bạn có thể giữ textcard này, hay thay đổi (ví dụ bức ảnh chẳng hạn), hoặc bắt đầu lại với một trongnhững tuỳ chọn khác có sẵn như gallery card hoặc plugin card
Trang 18Hình 19 Tin nhắn chào mừng mặc định
Nhập các tính năng của card mà bạn đã chọn Thêm các nút bấm cho card màngười dùng có thể nhấp vào để thực hiện hành động tiếp theo như lấy số điện thoại,truy cập vào một URL khác hoặc mở một block mới
Hình 20 Tùy chỉnh các tính năng cho card
Câu trả lời mặc định là block xuất hiện trên Main Menu khi bạn bắt đầu Chatfuel
cho phép thay đổi tin nhắn tương tác đầu tiên của mình sau khi người dùng đặt ra
một câu hỏi nào đó Có thể đổi đoạn văn bản ở đây hoặc tạo 1 block tùy chỉnh đểthêm vào phần câu trả lời mặc định
Trang 19Hình 21 Tin nhắn trả lời mặc định khi “bot” không nhận diện được tin nhắn
Lưu ý: Có thể thêm nhiều nút bấm dưới card này, vì thế nếu hầu hết những yêu cầucủa khách hàng là về thời gian, địa điểm, số điện thoại của bạn hoặc những chỉdẫn, hãy tạo thêm các block khác với các thông tin trên để cung cấp cho ngườidùng
Nếu muốn tạo 1 block mới, nhấp vào “+ Add Block”
Hình 22 Thêm 1 block mới
Một màn hình mới sẽ xuất hiện và cho phép bạn bắt đầu tạo các card và nút bấm
mới để gửi cho người dung
Hình 23 Giao diện khi tạo 1 block mới
Khi cảm thấy hài lòng với bot của mình, nhấn “Test This Chatbox” để lưu lại
Trang 20Hình 24 Nút Test This Chatbox
Sau đó bạn nhấp vào “View on Messenger.com” để kiểm tra lại nó.
Hình 25 Xem thử trên Messenger
Cũng có thể nhờ người khác kiểm tra bot của bạn từ máy tính bàn, điện thoại
và máy tính bảng
2.2 Đào tạo Chatbox
Bước 1:
Vào set up Ai, tạo kịch bản câu hỏi và câu trả lời trong mục “if user says
something similar to” và câu trả lời trong “bot replies with”
Càng nhiều câu hỏi, Chatbox của bạn càng tương tác tốt hơn với người dùng
Trang 21 Bước 2:
Vào Automate tùy chỉnh các cài đặt mặc định cho Chatbox
+ Welcome mesanger: Tùy chỉnh tin nhắn đầu tiên khi người dùng lần đầu nhắn tinvới Chatbox
Hình 27 Tùy chỉnh tin nhắn đầu tiền
Sử dụng Add a card để làm tin nhắn bot đa dạng hơn
Hình 28 Sử dụng Add a card
2.3 Thiết lập Chatbox trên Fanpage Facebook
Đầu tiên ta đăng nhập tài khoản liên kết với Chatfuel Vào trang chủ Fanpage của Chatbox Chọn Cài đặt Chọn nền tảng Messenger