Trong bài báo cáo này, chúng tôi sử sẽ tạo một bot Azure và tích hợp nó với AzureCognitive Services API để cho phép nó dự đoán cảm tính của người dùng cuối và côngkhai bot lên dịch vụ Az
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA HỆ THỐNG THÔNG TIN
BÀI TẬP QUÁ TRÌNH
ĐIỆN TOÁN ĐÁM MÂY
INTEGRATING AZURE BOTS WITH AZURE
Trang 2MỤC LỤC
TỔNG QUAN VỀ ĐỀ TÀI 4
1 Bot là gì? 4
2 Mục tiêu của đề tài 5
CƠ SỞ LÝ THUYẾT 6
1 Công cụ Yoeman 6
1.1 Yoeman là gì 6
1.2 Các chức năng chính chủa Yoeman 7
2 Azure Bot Service 8
2.1 Azure Bot Service là gì? 8
2.2 Những lợi ích quan trọng khi sử dụng Azure Bot Service: 8
3 Microsoft Bot Framework 9
4 Azure Cognitive Services 10
4.1 Giới thiệu về Azure Cognitive Services 10
4.2 Các APIs của Azure Cognitive Services 11
4.3 Lợi ích của việc sử dụng Azure Cognitive Services 14
HƯỚNG DẪN TÍCH HỢP AZURE BOT VỚI AZURE COGNITIVE SERVICES 16
1 Quy trình tạo Azure Bot trong môi trường Node.js bằng công cụ Yeoman 16 2 Tạo Azure AI Language Service 19
3 Xây dựng chức năng phân tích cảm tính cho bot 22
4 Tạo Azure Bot Service để có thể deploy bot 25
5 Push code lên Github 26
6 Tạo service Web App 27
7 Kiểm tra và cài đặt các biến environment cho bot 29
TÀI LIỆU THAM KHẢO 30
BẢNG PHÂN CÔNG CÔNG VIỆC 31
Trang 3DANH MỤC HÌNH
Hình 1: Hỉnh ảnh Logo của công cụ Yoeman 6
Hình 2 Hình ảnh minh hoạ của Yoeman 7
Hình 3 Hình ảnh về Azure Bot Service 8
Hình 4 Hình ảnh mô tả các thành phần của Bot Framework 10
Hình 5 Hình ảnh logo của Azure Cognitive Services 10
Hình 6 Hình ảnh về các nhóm API của Azure Cognitive Services 11
Hình 7 Hình ảnh về tạo folder chứa project bot 16
Hình 8 Hình ảnh về tải công cụ Yeoman và generator 16
Hình 9 Hình ảnh về quá trình thực hiện build project 17
Hình 10 Hình ảnh về build project thành công 17
Hình 11 Hình ảnh các log thông báo khi chạy bot 17
Hình 12 Hình ảnh Github BotFramework-Emulator của Microsoft 18
Hình 13 Hình ảnh giao diện của ứng dụng BotFrameworkEmulator 18
Hình 14 Hình ảnh chat với bot sau khi connect 19
Hình 15 Hình ảnh Giao diện Azure Portal 19
Hình 16 Giao diện cảu Azure Language serrvice 20
Hình 17 Hình ảnh trang Chọn option language 20
Hình 18 Hình ảnh Chọn các thông tin cơ bản cho Language 21
Hình 19: Hình ảnh thông báo tạo TextAnalytics Language thành công 21
Hình 20: Hình ảnh trang Keys and endpoint của textAnalytics service 22
Hình 21 Hình ảnh code chức năng phân tích cảm tính 22
Hình 22 Hình ảnh biến endpoint và key được gán giá trị 23
Hình 23 Hình ảnh code xây dựng function cho bot 23
Hình 24 Hình ảnh khai báo chức năng phân tích trong bot 23
Trang 4Hình 26 Hình ảnh thông tin dữ liệu trả về và tốc độ xử lý 24
Hình 27 Hình ảnh giao diện Bot services của Azure 25
Hình 28 Hình ảnh trang tạo Azure bot 25
Hình 29 Hình ảnh trang thông báo khi tạo bot thành công 26
Hình 30 Hình ảnh trang repo github được tạo 26
Hình 31 Hình ảnh các log khi thực hiện quá trình đẩy code project lên github 27
Hình 32 Hình ảnh github sau khi đẩy code thành công 27
Hình 33 Hình ảnh tạo web application 28
Hình 34.Hình ảnh tạo liên kết với repo github đã được tạo 29
Hình 35, Hình ảnh tạo web application thành công 29
Hình 36 Hình ảnh trang Enviroment variables 30
Hình 37 Hình ảnh setup các biến 30
Trang 5Các nhóm sử dụng Azure một phần vì khả năng tích hợp chặc chẽ mà chũng cung cấpvới hầu hết các dịch vụ Azure khác Một ví dụ phổ biến là kết hợp bot với các dịch vụ AI,
để kết hợp các bot thông minh có khả năng hiểu và phản hồi thong minh nhận xét củangười dùng cuối
Trong bài báo cáo này, chúng tôi sử sẽ tạo một bot Azure và tích hợp nó với AzureCognitive Services API để cho phép nó dự đoán cảm tính của người dùng cuối và côngkhai bot lên dịch vụ Azure Bot Service
Trang 62 Mục tiêu của đề tài
Mục tiêu của đề tài là trang bị cho học viên kiến thức và kĩ năng cần thiết để xây dựng và triển khai bot trên nền tảng Azure Bằng cách sử dụng các công cụ như Yoeman, Bot Framework Emulator và Azure Cognitive Services API trong môi trường Node.js Qua đó học được cách tạo ra những bot thông minh và linh hoạt, có khả năng tương tác với người dùng một cách tự nhiên
Trong bài báo cáo này, chúng tôi sẽ tập trung vào bốn mục tiêu chính:
- Xây dụng bot trên Azure: Chúng tôi sẽ tạo bot trên nền tảng Azure, sử dụng môi trường lập trình là Node.js và cong cụ Yoeman để bắt đầu khởi tạo dự án của mình
- Tương tác cục bộ với Bot Framework Emulator: Bằng cách sử dụng Bot Emulator,chúng tôi có thể thử nghiệm và kiểm tra bot của mình một cách dễ dàng trên máy tính cá nhân trước khi triển khai
- Tích hợp bot với Azure Cognitive Services API: Chúng ta sẽ tích hợp bot với các dịch vụ Azure Cognitive Services, từ đó mở rộng kahr năng của bot thông qua các tính năng nhận dạng ngôn ngữ tự nhiên, nhận dạng hình ản và nhiều tính năng khác
- Triển khai bot lên Azure Bot Service: Cuối cùng, học cách triển khai bot của mìnhtrên Azure Bot, sử dụng Azure CLI và Azure Resoure Manager để tự động hoá quy trình triển khai và quản lý bot trên nền tảng đám mây
Với những kĩ năng này, chúng ta có khả năng xây dụng và triển khai các bo có hiệu suất cao, mang lại trải nghiệm tương tác thông minh và đáng tin cậy cho người dùng
Trang 7tự động) đêr tạo ra các phần của dự án, như cấu hình, cấu trúc thư mục và mã nguồn
Hình 1: Hỉnh ảnh Logo của công cụ Yoeman
- Yoeman còn hỗ trợ generate các script, frameworks bằng Node.js, Angular.js,…Yoeman không chỉ là tool mà còn được sử dụng như một workflow, tập hợp các “best
Trang 8dàng tạo phần khung sườn cho những dự án mới với các template tuỳ chỉnh được thôngqua dòng lệnh
Hình 2 Hình ảnh minh hoạ của Yoeman
1.2 Các chức năng chính chủa Yoeman
- Tạo dự án (Project Generation): Yoeman Tạo dự án (Project Generation): Yeomancung cấp các generator để tạo ra cấu trúc dự án (project structure) cho các loại ứngdụng web khác nhau như AngularJS, React, Vue.js, và nhiều framework khác.Người dùng có thể chọn từ các generator có sẵn để bắt đầu một dự án mới
- Quản lý dependencies (Dependency Management): Yeoman tích hợp với các
công cụ quản lý gói như npm và Bower để giúp cài đặt và quản lý cácdependencies của dự án một cách dễ dàng Điều này giúp đơn giản hóa quá trình
sử dụng các thư viện và framework bên thứ ba
- Cấu hình tùy chỉnh (Customization): Yeoman cho phép người dùng tùy chỉnh
các generator và các file mẫu (templates) để phù hợp với nhu cầu cụ thể của dự án
- Tạo các mẫu (Code scaffolding): Yeoman cung cấp các mẫu mã (boilerplate
code) để giúp nhà phát triển bắt đầu với các dự án mới một cách nhanh chóng
2 Azure Bot Service
2.1 Azure Bot Service là gì?
Trang 9- Azure Bot Service là một Bot Service được triển khai (deploy) trên nền tảng đámmây Azure Nó cung cấp một môi trường tích hợp các dịch vụ của Azure cho mụcđích phát triển bot, cho phép xây dựng (build), kết nối (connect), thử nghiêm(test), triển khai (deploy) và quản lý bot ở một nơi duy nhất.
Hình 3 Hình ảnh về Azure Bot Service
2.2 Những lợi ích quan trọng khi sử dụng Azure Bot Service:
- Xây dựng Bot nhanh chóng: Thực hiện, kiểm tra và xuất bản bot bằng giao diện
- Azure Bot Service còn kết nối với các thành phần khác như:
o Trình xử lí ngôn ngữ tự nhiên (Ví dụ: LUIS, QnAMaker)
o Hệ thống giám sát (Ví dụ: Application Insights)
o Persistency & State Layer (Ví dụ: Blob, CosmosDB)
o Kênh kết nối (Ví dụ: Alexa, Microsoft Teams, Facebook, Telegram)
o Platform (Ví dụ: App Service)
Trang 103 Microsoft Bot Framework
- Microsoft Bot Framework là một khung làm việc được phát triển bởi Microsoft đểxây dựng các ứng dụng bot và trải nghiệm thông qua các kênh khác nhau Bot Framwork cung cấp các công cụ, thư viện và dịch vụ để phát triển, triển khai và quản lý các bot thông minh có khả năng tương tác với người dùng
- Microsoft Bot Framework bao gồm các thành phần sau;
o Bot Framework SDK: Một SDK cung cấp các công cụ cần thiết để xây dựng bot Được phát triển hỗ trợ cho nhiều ngôn ngữ như C#, Javascript,…
o Bot Framework Emulator: Là một ứng dụng của Microsoft để triển khai, quản
lý và mở rộng bot Cho phép xây dựng kiểm tra gỡ lỗi các bot xây dựng bằng Bot Frame SDK
- Các thành phần của Microsoft Bot Framework trong quá trình trải nghiệm
o Đầu vào (Input): Được biểu diễn bằng các biểu tượng cho việc nhấn, thẻ điều
chỉnh, gõ và nói
o Thiết bị (Devices): Được mô tả bằng các biểu tượng đại diện cho các loại
thiết bị điện tử khác nhau bao gồm máy tính, máy tính bảng và điện thoại thông minh
o Kênh (Channels): Bao gồm nhiều nền tảng truyền thông được thể hiện bằng
các biểu tượng tương ứng của chúng
o Azure Bot Service: Nằm ở trung tâm của sơ đồ, kết nối Input, Thiết bị và
Kênh với Cognitive Services
o Cognitive Services: Bao gồm các khả năng Nhận biết Ngôn ngữ, Thị giác,
QnA (Câu hỏi và Trả lời) và Phát biểu Nó được cá nhân hóa như “Trợ lý của bạn” với tính cách thương hiệu của bạn
o Dispatch: Trợ lý này gửi thông tin đến các nguồn kiến thức như cơ sở dữ liệu
kiến thức chung hoặc hướng dẫn (PDF) hoặc Nguồn dữ liệu (Knowledge).
o Kỹ năng (Tùy chỉnh): Có thể được điều chỉnh cho các nhiệm vụ cụ thể như
xử lý thư, lịch, nhiệm vụ, điểm đặc biệt, ô tô, Bot khác, API tùy chỉnh, Office Graph, Directory, v.v., hoặc được tùy chỉnh theo nhu cầu
o Trợ lý 3P: Có thể đại diện cho các dịch vụ trợ lý bên thứ ba được tích hợp
vào framework
Trang 11
-Hình 4 -Hình ảnh mô tả các thành phần của Bot Framework
4 Azure Cognitive Services
4.1 Giới thiệu về Azure Cognitive Services
- Azure Cognitive Services là một bộ các dịch vụ trí tuệ nhân tạo (AI) đucowj cung cấp bởi Microsoft trên nền tảng đám mây Azure Các dịch vụ này được thiết kế để giúp các nhà phát triển tích hợp các khả năng trí tuệ nhân tạo vào ứng dụng của họ
mà không cần có kiến thức chuyên sau về lĩnh vực AI Azure Cognitive Services cung cấp các API dễ sử dụng để xử lý và hiểu dữ liệu hình ảnh, văn bản, giọng nói, ngôn ngữ tự nhiên và nhiều khía cạnh khác của thông tin
- Các API của Cognitive Services được viết dưới dạng REST API do vậy lập trình viên có thể tích hợp các API này trên nhiều nền tảng như iOS, Android hay Window chỉ cần có kết nối internet
Hình 5 Hình ảnh logo của Azure Cognitive Services
Trang 124.2 Các APIs của Azure Cognitive Services
- Tính đến thời điểm hiện tại, Microsoft Cognitive Services bao gồm 21 API được chia thành 5 nhóm: Vision, Speech, Language, Knowledge và Search
Hình 6 Hình ảnh về các nhóm API của Azure Cognitive Services
a Vision API
Computer Vision API: API này cho phép trích xuất những thông tin có giá
trị từ bức ảnh của bạn với khả năng xác định được kiểu đối tượng trong ảnh (là bánh mỳ, con chó, con mèo hay cây cối, …) hay nếu là người thì API này cũng xác định được giới tính của nhân vật trong ảnh Ngoài ra, API này cũng hỗ trợ nhận diện được những nhận vật nổi tiếng hay trích xuất chữ có trong bức hình của bạn
Face API: Cái tên nói lên tất cả, đây là API cho phép phát hiện khuôn mặt
có trong bức hình của bạn Ngoài ra, API này cũng trả về các thuộc tính của khuôn mặt như tuổi, giới tính, độ rạng ngời của nụ cười hay thậm chí là chiều dài của tóc, … Ngoài phát hiện khuôn mặt, Face
Trang 13API còn cho phép so sánh 2 khuôn mặt có phải là của cùng một người hay không
Emotion API: API này cho phép xác định tâm trạng của người có trong bức
hình xem họ đang vui, đang buồn hay đang giận dữ
Video API: API này là một tập hợp các thuật toán xử lý video tân tiến của
Microsoft Với Video API, các nhà phát triển có thể tích hợp các tính năng chỉnh sửa video bao gồm chống rung, phát hiện khuôn mặt người, phát hiện chuyển động hay tạo video thumbnail
b Speech API
Bing Speech API: API này cho phép trích xuất một tập tin âm thanh sang dạng chữ,
chuyển đổi định dạng chữ sang âm thanh (tức là đọc chữ) hay đoán ý của một câu nói
Custom Recognition Intelligent Service (CRIS): CRIS cho phép bạn có thể tùy
biến language model và acoustic model sao cho phù hợp với ứng dụng hoặc người dùng của bạn
Speaker Recognition API: Với những thuật toán nhận dạng giọng nói tân tiến
của Microsoft, API này cho phép nhận dạng giọng nói của người nói trong một tập tin âm thanh API này bao gồm 2 thành phần: speaker verification
và speaker identification tạm dịch tương ứng là xác nhận người nói và xác định người nói
c Language API
Bing Spell Check API: API này cho phép phát hiện và sửa các lỗi chính tả có trong
một đoạn văn bản mà bạn cung cấp API còn có khả năng phát hiện từ lóng, sửa lỗi tên riêng hay sửa các từ đồng âm, …
Trang 14Web Language Model API: API này giúp hỗ trợ xử lý ngôn ngữ tự nhiên, với khả năng chèn
khoảng cách vào 1 đoạn văn bản được viết liền nhau như hashtag hay đường dẫn
: The Linguistic Analysis API giúp bạn hiểu sâu hơn
Linguistic Analysis API
văn bản của mình API này sẽ giúp phân tích cú pháp của ngôn ngữ tự nhiên để dễdàng xác định được các thực thể (danh từ) hay các hành động (động từ) có trong văn bản Việc xử lý văn bản này có thể hữu ích cho các công việc phân tích như phân tích tâm lý
Language Understanding Intelligent Service (LUIS): LUIS cho phép lập trình
viên xây dựng các model hiểu được ngôn ngữ tự nhiên cũng như hiểu được các câu lệnh riêng được thiết kế riêng cho ứng dụng của bạn
Text Analytics API: API này giúp xác định các ẩn ý, từ khóa, chủ đề hay ngôn
ngữ được sử dụng có trong một đoạn văn bản
d Knowledge API
Academic Knowledge API: API này cho phép lập trình viên xây dựng những
giải pháp tìm kiếm tài liệu học thuật với tính năng Interpret, trả về kết quả gợi ý cho từ khóa mà người dùng nhập vào dựa vào nguồn dữ liệu phong phú từ hệ thống Microsoft Academic Graph (MAG)
Knowledge Exploration Service API: API này cho phép lập trình viên xây
dựng những giải pháp tìm kiếm sử dụng ngôn ngữ tự nhiên bằng cách dịch ngôn ngữ tự nhiên mà người dùng nhập vào sang các biểu thức truy vấn có cấu trúc mà máy tính có thể dễ dàng hiểu và xử lý được
Entity Linking Intelligence Service API: Với một đoạn văn bản, Entity Linking
Intelligence Service sẽ nhận dạng và xác định từng thực thể (entity) có trong đoạnvăn dựa vào ngữ cảnh của đoạn văn đó và sẽ liên kết những entity này tới Wikipedia Lấy ví dụ rằng bạn có một đoạn văn bản trong đó chứa từ cloud, từcloud này có thể hiểu sang thành “Cloud Computing” (điện toán đám mây) hay
“Cloud” (đám mây trên trời), dựa vào ngữ cảnh mà API này sẽ xác định được rằng từ cloud có ý nghĩa như thế nào
Recommendations API: API này cho phép xây dựng các giải pháp khuyến nghị
cho người dùng Chẳng hạn như bạn xây dựng một ứng dụng bán hàng, sử dụng
Trang 15API này cho phép bạn dễ dàng xây dựng ra các tính năng khuyến nghị mua hàng như “Các sản phẩm được bán chạy”, “Các sản phẩm được mua cùng” hay “Những sản phẩm hàng đầu trong mặt hàng Đồ gia dụng” chẳng hạn, từ đó sẽ khuyến khích người dùng mua nhiều hơn.
e Search API
Bing Web Search API: Đây là API chủ lực của gói Search API Chỉ với một cú
pháp lệnh gọi đến API này, lập trình viên có thể lấy được các kết quả trả về cho trang web, hình ảnh, video hay tin tức tương ứng Nó khá tương tự với việc bạn tìm kiếm trên các công cụ tìm kiếm như Bing.com hay Google.com Ngoài ra, lập trình viên cũng sẽ nhận được những tính năng mạnh mẽ từ công cụ tìm kiếm Bing Search như ranking kết quả tìm kiếm, phân loại kết quả tìm kiếm theo vùng, …
Bing Autosuggest API: API này cho phép lập trình viên có thể xây dựng tính
năng đề xuất các từ khóa tìm kiếm liên quan kể cả khi từ khóa tìm kiếm chưa được điền đầy đủ Ví dụ nếu người dùng gõ từ khóa tìm kiếm là “Thời tiết tại H”, API sẽ trả về danh sách các từ khóa gợi ý như “Thời tiết tại Hà Nội”, “Thời tiết tại
Hồ Chí Minh” hay “Thời tiết tại Hà Giang” chẳng hạn
Bing Image Search API: API này cho phép lập trình viên có thể tìm kiếm các
hình ảnh tương ứng với từ khóa nhập vào Ngoài trả về đường dẫn của hình ảnh, API này cũng trả về các metadata hữu ích như kích thước ảnh, màu chủ đạo của ảnh, …
Bing Video Search API: API này cho phép lập trình viên có thể tìm kiếm
các video tương ứng với từ khóa nhập vào Ngoài trả về đường dẫn của video, APInày cũng trả về các metadata hữu ích khác như tên nhà sản xuất, định dạng mã hóa, ảnh thumbnail, …
Bing News Search API: API này cho phép lập trình viên có thể tìm kiếm các tin
tức, bài báo tương ứng với từ khóa nhập vào Ngoài ra, API cũng trả về các metadata hữu ích khác như thể loại, thông tin nhà xuất bản, ngày xuất bản, …
- Có thể thấy với bộ 21 API mà dịch vụ Microsoft Cognitive Services cung cấp, lập trình viên có thể thỏa sức xây dựng các ứng dụng tích hợp các tính năng thông minh sử dụng sức mạnh từ machine learning mà dịch vụ này mang lại một cách dễ dàng chỉ bằng việc gọi API và xử lý kết quả trả về với định dạng JSON Trong đó, Dịch vụ Text Analytics có giới hạn 5.120 ký tự (khoảng 5 KB) cho mỗi yêu cầu phân tích cảm xúc hoặc phân loại văn bản
Trang 164.3 Lợi ích của việc sử dụng Azure Cognitive Services
- Dễ dàng tích hợp: Azure Cognitive Services cung cấp các API và các SDK dễ dàng sử dung, giúp việc tích hợp công nghệ trí tuệ nhân tạo trở nên dễ dàng
- Tiết kiệm thời gian và chi phí: Giảm độ phức tạp của việc xây dung và quy mô AI
từ đầu Điều này giúp tiết kiêm thời gian và chi phí so với việc tự xây dựng AI
- Hiệu suất cao: Dịch vụ AI của Azure được xây dung trên nền tảng đám mây mạnh
mẽ, có khả năng mở rộng linh hoạt để đáp ứng như cầu của người dùng Điều này đảm bảo hiệu suất ổn định độ tin cậy cao cho ứng dung
- Cập nhật liên tục: Azure Cognitive Serivces được Microsoft cập nhật liên tục và được phát triển những cải tiến mới nhất trong lĩnh vực trí tuệ nhân tạo
- Độ bảo mật cao: Microsoft và các dịch vụ Azure có những tiêu chuẩn bảo mật cao, đảm bảo sự an toàn dữ liệu Azure Cognitive Services cung cấp các tính năng bảo mật như mã hoá, quản lý quyền truy cập…
- Hỗ trợ đa ngôn ngữ: các dịch vụ như Translator Text API của Azure Cognitive Service được hỗ trợ đa ngôn ngữ, giúp sự mở rộng và tiếp cận với người dùng toàn cầu
- Độ linh hoạt và sự đa dạng: Với nhiều dịch vụ khác nhau như xử lý ảnh, nhận diệngiọng nói, ngôn ngữ tự nhiên và khá nhiều chức năng khác Giúp các doanh nghiệp có thể đáp ứng được nhu cầu đa dạng