Tải bản đầy đủ (.docx) (29 trang)

XÂY DỰNG CHATBOX dựa TRÊN nền TẢNG TENSORFLOW

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.84 MB, 29 trang )

TRƯỜ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

1


MỤ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

2


I. 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.

TensorRankShapeType
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
3


 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

 Shape:
Shape là chiều của tensor. Vi dụ Tensor = [[[1,1,1],[178,62,74]]] sẽ có Shape
= (1,2,3), Tensor = [[1,1,1],[178,62,74]] sẽ có Shape = (2,3).

 Type:
Type kiểu dữ liệu của các elements trong Tensor. Vì một Tensor chỉ có duy
nhất một thuộc tính Type nên từ đó cũng suy ra là chỉ có duy nhất một kiểu Type
duy nhất cho toàn bộ các elements có trong Tensor hiện tại.
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
cho phép xây dựng nhiều mạng neural network khác nhau. Tensorflow cũng cho
4



phé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ạng
neuron.
 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

5


II. 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ên
internet. 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.











3.

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óm

Messenger 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ới
con 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…
Nền tảng xây dựng ChatBox
3.1. ChatFuel.com

6


Hì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í.
7


3.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
8


đượ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 fanpage
doanh 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òng
chat và từ đó đưa ra những kết quả tương ứng với điều mà người dùng đang quan
tâ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ề đồ ăn
chay trong thực đơn, bạn có thể lập trình từ “ăn chay” ngay trong bot. Sau đó khi
người dùng gõ từ khoá đó, tin nhắn trả về sẽ bao gồm những lựa chọn về đồ ăn
chay 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.
9


III. Xây dựng ChatBox trên Messenger
 Bước 1:
Truy cập vào trang web />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.

10



Hì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
11


bạ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.
12


- 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 cho
người dùng số điện thoại để liên hệ, một URL để truy cập hoặc 1 block mới với
mộ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ỉ
13


dẫn từ fanpge của bạn nếu như người dùng không biết làm gì tiếp theo sau

chuỗ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ới
các công cụ như IFTTT hay Zapier, và rất nhiều lựa chọn như Google Sheets
hoặ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

14


Hì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”

15


Hì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 Chatbox
của bạn.

16


Hì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ên
người dùng sẽ nhìn thấy khi họ nhấp vào Messenger của bạn. Bạn có thể giữ text
card 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 trong
những tuỳ chọn khác có sẵn như gallery card hoặc plugin card.

17


Hì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.

18


Hì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ầu
củ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ười
dù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

19


Hì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

ình 26. Nhập dữ liệu bằng tay cho “bot”
20


 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 tin
vớ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

21



Hình 29. Quá trình thiết lập nền tảng Messenger
Trong phần Nền tảng Messenger ta tìm đến mục “Miền được đưa vào danh
sách hợp lệ” và tiến hành thêm tên miền của website cá nhân của chúng ta vào và
nhớ “Lưu” lại.

22


Hình 30. Thêm tên miền website cá nhân vào Miên được đưa vào
danh sách hợp lệ
2.4. Cấu tình Zotabox
Ta vào trang chủ zotabox.com và tạo tài khoản mới để sử dụng dịch vụ (hoặc
đăng nhập tài khoản sẵn có) – ngoài ra chúng ta còn có thể đăng nhập bằng
Gmail hoặc Facebook.

23


Hình 31. Đăng nhập Zotabox
Sau khi đăng nhập thành công, zotabox sẽ đưa ta tới trang dashboard, tại
đây ta tìm đến mục “Support Customers” và chọn “Facebook Live Chat”

Hình 32. Giao diện Dashboard của Zotabox

24


Sau đó ta tiến hành cấu hình khung Chat live Facebook theo ý thích. Lưu
ý: Nhớ điền đúng tên Fanpage Facebook vào chỗ trống. Sau khi ưng ý nhớ nhấn

nút “Save” ở góc phải trên.

Hình 33. Cấu hình Facebook Chat Live
Sau khi Lưu thiết lập, ta tiến hành tìm đến mục Embed Code để nhận
Embedcode

25


×