Chat bot là một trợ lý ảo hữu dụng giúp bạn có được thông tin nhanh chóng. Đây là bước đầu tiên trong việc tạo một chat bot bằng Amazon Lex và Slack.

Bạn đang xem: Chatbot đa ngôn ngữ sử dụng Amazon Lex

Nếu muốn trở thành một Full-Stack Developer phát triển giải pháp bán lẻ toàn cầu thông minh, ứng tuyển tại đây

Amazon Lex là gì

Trước hết chúng ta sẽ nói qua một chút về AWS và Amazon Lex. Amazon web services là một nền tảng điện toán đám mây phát triển toàn diện được cung cấp bởi Amazon. Dịch vụ Web đôi khi được gọi là dịch vụ đám mây hoặc các dịch vụ điện toán từ xa. Các dịch vụ AWS đầu tiên đã được đưa ra vào năm 2006 để cung cấp các dịch vụ trực tuyến cho các trang web và các ứng dụng phía máy khách.

Amazon Lex là dịch vụ xây dựng giao diện hội thoại trên bất cứ ứng dụng nào bằng giọng nói và văn bản được cung cấp bởi AWS. Amazon Lex đem lại các chức năng deep learning nâng cao của nhận dạng giọng nói tự động (ASR) cho việc chuyển đổi giọng nói thành văn bản cùng với chức năng hiểu ngôn ngữ tự nhiên (NLU) để hiểu ý của văn bản. Công nghệ deep learning sử dụng cho Amazon Alexa nay đã có mặt cho các nhà phát triển qua Amazon Lex, cho phép chúng ta xây dựng những ứng dụng chatbot hiệu quả và nhanh chóng. Một vài chức năng chính có thể tạo cho chatbot của bạn như bot tổng đài liên lạc, bot thông tin để lấy dữ liệu trả về thông tin cho người dùng, bot ứng dụng để tích hợp đặt vé, đặt đồ ăn, bot tăng hiệu suất doanh nghiệp giúp nhân viên kiểm tra dữ liệu, …

Về mặt cơ bản, để có thể xây dựng một chatbot tích hợp vào slack trên Amazon Lex, chúng ta cần phải tạo được chatbot, sau đó tích hợp nó vào trong slack application. Chi tiết hơn, bạn có thể tham khảo các bước làm sau :

Tạo chatbot thông qua Amazon Lex

Sau khi đăng nhập vào tài khoản aws, tìm kiếm và truy cập vào Amazon Lex trên AWS management console.


*

Tạo chatbot thông qua Amazon Lex

Tiếp theo, sau khi vào được console của Amazon Lex, tại tab Bot, chọn Create để tạo một Bot mới. Sẽ có 2 lựa chọn được đưa ra cho chúng ta, đó là custom một chatbot mới, hoặc sử dụng ngay một sample mà AWS đã dựng sẵn.


*

Đương nhiên khi phát triển một chatbot phục vụ cho công việc, chúng ta sẽ lựa chọn Custom bot, tuy nhiên trong khuôn khổ bài viết này mình muốn nhấn mạnh về cách để tạo và tích hợp con Bot của chúng ta vào với slack, vì vậy chúng ta sẽ chọn sử dụng một sample đã có sẵn, chẳng hạn như Schedule
Appointment.

Lưu ý khi tạo, tick No vào dòng COPPA sau đó create.


*

Sau khi create, chúng ta có thể nhìn thấy console để edit cho Schedule
Appointment Bot mà AWS đã dựng sẵn. Bạn có thể tự do tùy chỉnh thêm các intents, hoặc thử chat với con bot vừa được tạo ở màn hình demo chat bên phải.

Tạo một application trong slack

Đăng nhập vào tài khoản slack của bạn để truy nhập vào slack team, hoặc tạo một workspace để thoải mái truy cập đủ quyền hạn.

Để tạo một slack app mới, truy cập vào trang http://api.slack.com . Đặt tên cho app của bạn và lựa chọn workspace mà bạn muốn đưa slack app này vào.

Tiếp theo chúng ta sẽ cấu hình cho Slack app này một chút để hoàn thiện.

Sau khi tạo xong app mới, Slack sẽ đưa chúng ta về trang Basic Information để cung cấp cho bạn những thông tin cơ bản của Slack app bạn vừa tạo ra. Tại đây bạn click vào Interactive Components và bật nó lên.


*

Tại request URL, bạn có thể để tạm vào đó bất kỳ một URL nào đó tồn tại, chúng ta sẽ update nó sau. Điền xong URL, ta sẽ Save Changes để lưu lại.

Tích hợp slack application với Amazon Lex Bot

Quay trở lại Lex Bot console của bạn, chọn tab channels và chọn channel là slack.

Tên và mô tả cho chatbot bạn có thể tự lựa chọn theo ý của mình.

Tại dòng KMS Key, chọn aws/lex.

Tiếp theo chúng ta sẽ cài đặt Alias. Bạn bật sang tab setting, tạo 1 alias mới với tên tùy ý và lựa chọn lastest version.


*

Tếp theo, quay lại api.slack, chọn Basic Information trong Slack app, sao chép các thông tin về Client ID, client secret và verification token.


Quay trở lại phần channels, lựa chọn alias vừa tạo. Paste lại các thông tin vừa copy vào các trường thông tin tương ứng trong tab channels.


Sau khi hoàn thành, chọn Activate.

Scroll down xuống dưới, bạn sẽ thấy Aws cung cấp cho chúng ta 2 đường link URL là Postback URL và OAuth URL.

Quay lại trang api.slack, chọn OAuth & Permission, thêm vào 1 Redirect URL mới. Copy OAuth URL mà AWS cung cấp vào đây, chọn Add sau đó Save URL.


Scroll down xuống dưới, trong mục Bot Token Scopes, chọn Add an OAuth scopes và add thêm 2 scopes là chat:write và team:read.


Tiếp theo, chúng ta update Request URL link trong Interactive Components bằng Postback URL còn lại.

Bước cuối cùng, chọn tab Event Subscription bên trái, bật chức năng này lên và copy Postback URL vừa rồi vào Request URL. Trong mục Subscribe to Bot Events, chọn Add Bot User Event và chọn message.im.


Tải ứng dụng slack bạn vừa tạo ra vào workspace của bạn

Chọn Manage Distribution dưới phần setting ở api.slack, click vào add to slack.

Đến đây, bạn đã hoàn thành các bước cài đặt để tích hợp một ứng dụng chatbot Amazone Lex vào slack.


Bây giờ bạn hoàn toàn có thể thấy chatbot của mình trong application của slack team, hãy thử nhắn tin trực tiếp với chatbot của mình.

Nếu muốn trở thành một Full-Stack Developer phát triển giải pháp bán lẻ toàn cầu thông minh, ứng tuyển tại đây
Hãy đăng ký nhận tin để là người đầu tiên đọc bài viết mới nhất từ chúng tôi nhé

Bảng điều khiển dữ liệu đã là một bổ sung hữu ích cho bộ công cụ doanh nghiệp, cho phép tất cả các bên liên quan tuân thủ việc ra quyết định dựa trên dữ liệu. Tuy nhiên, chúng có một vài nhược điểm:

Bảng điều khiển yêu cầu mọi người đăng nhập để truy cập dữ liệu, và không phải lúc nào cũng có thể truy cập từ xa.Việc tìm kiếm dữ liệu phù hợp trong bảng điều khiến sẽ tốn nhiều thời gian và công sức. Người dùng cần khá nhiều kỹ thuật cần thiết để tận dụng triệt để các bảng điều khiển này. Đồng thời cũng cần những khoản thời gian nhất định để mọi người có thể sử dụng chúng một cách thành thạo.

Vì tất cả những lý do đó, hầu hết các bên liên quan của doanh nghiệp đã ngừng hoàn toàn việc sử dụng bảng điều khiển dữ liệu.

Và giờ đây, việc truy cập phức tạp đã khiến một khối lượng dữ liệu có cấu trúc tốt có nguy cơ bị lãng phí.

Một công ty trong lĩnh vực sản xuất đã phải đối mặt với những thách thức trên. Họ đã được đề xuất giải pháp: thay thế bảng điều khiển dữ liệu bằng chatbot để truy cập dữ liệu.

Chatbot được thiết kế để mang lại những lợi ích sau:

Thông tin nhanh chóng và dễ hiểu

Chatbot hoạt động theo cách tiếp cận “hỏi và trả lời” (asked and answered). Điều này đã loại bỏ sự cần thiết phải đăng nhập vào bảng điều khiển và bộ lọc, cũng như thao tác các điều khiển để tìm dữ liệu bạn cần. Khách hàng có thể chỉ cần hỏi một truy vấn và bot sẽ phân tích tất cả dữ liệu cần thiết để đưa ra câu trả lời rõ ràng.

Ví dụ: bằng cách hỏi chatbot: “Các máy của khách hàng X hoạt động như thế nào?”, người dùng có thể biết được:

Tất cả các máy được giao cho khách hàng X ở bất kỳ khu vực nào.Chỉ số hiệu suất cho từng máy
Bảng tóm tắt hoạt động của từng máy, những máy ở vị trí nào cần bảo trì trong thời gian tới.

Những loại thông tin mà bot có thể cung cấp:

Chỉ số hiệu suất thiết bị
Tình trạng của thiết bị
Tiết kiệm tiềm năng
Sử dụng thiết bị nào trong kịch bản nào

Truy cập thông tin đơn giản

Chatbot được cung cấp qua các ứng dụng di động và có thể được sử dụng mọi lúc, mọi nơi để truy cập thông tin cần thiết.

Bot rất dễ sử dụng và không yêu cầu mọi người phải phân tích nhiều dữ liệu, do đó nó đã được chấp nhận, bởi cả khách hàng và khách hàng của họ.

Vì sao bot có thể làm được như vậy?

Các chatbot được cung cấp dưới dạng các ứng dụng web và i
OS, được xây dựng hoàn toàn bằng các sản phẩm AWS (Amazon Web Service - nền tảng dịch vụ đám mây an toàn, mang đến khả năng tính toán, lưu trữ cơ sở dữ liệu, phân phối nội dung và các chức năng khác nhằm giúp các doanh nghiệp mở rộng và phát triển). Điều này chủ yếu là do khách hàng đã sử dụng AWS Cloud cho các dịch vụ lưu trữ và việc xây dựng các giải pháp mới trong cùng một hệ sinh thái là điều hợp lý.

Kiến trúc giải pháp

*

Dưới đây là cách thức quy trình một chatbot hoàn chỉnh được thiết kế:

Thông tin đầu vào truy vấn người dùng trong chabot được đưa đến API Gateway (Giao diện lập trình ứng dụng – Application Programming Interface)Thông tin được truyền đến AWS Lambda, xác định vị trí nơi truy vấn bắt nguồn để xác định ngôn ngữ
AWS Translate chuyển đổi truy vấn sang ngôn ngữ tiếng Anh và chuyển nó sang Amazon Lex
Lex hiểu truy vấn người dùng và xác định mục đích hoặc dữ liệu mà người dùng muốn
Dữ liệu này được truyền tới AWS Lambda, truy vấn cơ sở dữ liệu Postgre
SQL để tìm câu trả lời phù hợp.Phản hồi cuối cùng một lần nữa được dịch trở lại ngôn ngữ gốc bởi AWS Translate
Thông tin sau đó được truyền tới Amazon Lex, cuối cùng sẽ được cung cấp cho người dùng trên ứng dụng

Giải pháp AWS tại Play

Amazon Lex

Amazon Lex là một khung giao diện đàm thoại, được sử dụng để thiết kế một chatbot có thể hiểu các câu hỏi tự nhiên và có khả năng tiếp tục cuộc trò chuyện. Các chức năng học sâu cho phép chatbot xác định ý định đằng sau một câu hỏi cụ thể, hiểu ngữ cảnh và đưa ra câu trả lời phù hợp.

Các yếu tố cơ bản liên quan đến việc thiết kế các luồng tương tác là cách nói, ý định và vị trí. Đối với một dự án cụ thể, cách thức các yếu tố này được xác định bao gồm:

Utterances (Phát ngôn): Đây là những câu hỏi mẫu mà người dùng có thể hỏi các chatbot. Dữ liệu này, cùng với dữ liệu về một số biến thể của mọi câu hỏi đã được đưa vào Amazon Lex. Dữ liệu đào tạo này đã giúp Lex hiểu phạm vi của những câu hỏi ngôn ngữ tự nhiên. Ngoài ra, khả năng học sâu cho phép Lex suy diễn từ các biến thể đã cho của câu hỏi, và mở rộng vốn từ vựng để hiểu các biến thể mới hơn của câu hỏi.Intent (Mục đích): Lex được đào tạo để phân tách từng dữ liệu theo một mục đích cơ bản. Đây là thông tin chính xác hoặc phần dữ liệu mà người dùng muốn biết. Mục đích chính của câu hỏi được chuyển tiếp và xử lý để trích xuất câu trả lời có liên quan.Slots (Giá trị bổ sung): Đây là những giá trị bổ sung cho những phát ngôn hoặc ý định cụ thể. Chúng cần thiết cho các câu hỏi cần dữ liệu bổ sung, để có thể trả lời chính xác.

Ví dụ: nếu câu hỏi là: “Có bao nhiêu thiết bị được bật?”, thì chatbot cần đặt câu hỏi tiếp theo về khu vực, vị trí, khung thời gian v.v... Tất cả những điều này - khu vực, vị trí, khung thời gian - có thể được định nghĩa là các giá trị bổ sung (slots) đối với câu hỏi mục đích về các thiết bị được bật.

Huấn luyện dữ liệu xung quanh các giá trị bổ sung, khả năng hoán vị và kết hợp của các giá trị bổ sung cũng được đưa vào Amazon Lex. Điều này cho phép chatbot xác định chính xác các câu hỏi và cũng phát hiện ra các giá trị bổ sung mới khi chúng xảy ra.

Amazon Cognito

Amazon Cognito là một giải pháp để quản lý một cách an toàn việc đăng ký, đăng nhập và kiểm soát truy cập của người dùng trong một ứng dụng. Đối với khách hàng, Srijan đã sử dụng Amazon Cognito và AWS Identity and Access Manager (IAM) để tạo người dùng, lưu trữ dữ liệu người dùng, tạo nhóm người dùng và tạo kiểm soát truy cập dựa trên ủy quyền.

AWS Lambda

AWS Lambda là một nền tảng điện toán không có máy chủ, có thể chạy mã để đáp ứng với các trình kích hoạt sự kiện. Nó cũng tự động quản lý tất cả các tài nguyên cần thiết để quản lý và mở rộng mã của người dùng.

Đối với dự án này, mục đích của người dùng và các giá trị bổ sung được thu thập bởi Amazon Lex là yếu tố kích hoạt cho Lambda. Dựa trên những điều này, Lambda sẽ kích hoạt để tạo ra một câu trả lời thích hợp. Các câu trả lời có thể là:

Thông điệp giới thiệu đơn giản hoặc câu hỏi có thể được trả lời mà không cần truy vấn cơ sở dữ liệu.Dựa trên logic nghiệp vụ: Tất cả các câu hỏi xung quanh hiệu suất tài sản được trả lời bằng cách truy vấn cơ sở dữ liệu, trích xuất câu trả lời, định dạng lại thành định dạng dễ hiểu cho người dùng và chuyển nó cho người dùng thông qua Amazon Lex.

Đối với khách hàng, tất cả hiệu suất tài sản và dữ liệu liên quan đã được lưu trữ trong Postgre
SQL. Logic nghiệp vụ được xác định trên Lambda chi phối cách dữ liệu thô từ cơ sở dữ liệu được tính toán và diễn giải. Và điều đó hình thành nên cơ sở về cách Lambda tạo ra một câu trả lời có liên quan đến câu hỏi của người dùng, thay vì chỉ đưa ra các thông tin dữ liệu thôi.

Ví dụ, đối với một mục đích cụ thể có tiêu đề “hiệu suất thiết bị”, thì logic kinh doanh là việc xác định ba giá trị KPI - hiệu suất cao, hiệu suất bình thường và tắt - với mỗi giá trị bao trùm một phạm vi nhất định của chỉ số hiệu suất. Để trả lời truy vấn này, Lambda sẽ lấy số liệu này cho tất cả các thiết bị, và sau đó sắp xếp chúng vào KPI theo logic kinh doanh đã xác định. Và câu trả lời mà người dùng nhận được sẽ là: máy X có hiệu suất cao, máy Y có hiệu suất bình thường và máy Z bị tắt.

Logic kinh doanh của tất cả các mục đích được xác định trong sự tư vấn chặt chẽ với khách hàng, tùy thuộc vào nhu cầu hoạt động của họ.

AWS Translate

AWS Translate là một dịch vụ dịch thuật hỗ trợ học sâu. Giả định đặt ra là các thiết bị và các bên liên quan của khách hàng được trải đều trên các khu vực địa lý khác nhau, Translate được tận dụng để thực hiện các hoạt động đa ngôn ngữ.

AWS Translate đã làm việc với AWS Lambda để xác định khu vực địa lý, nơi bắt nguồn các câu hỏi. Các câu hỏi sau đó đã được dịch sang tiếng Anh trước khi được chuyển sang Amazon Lex.

Tương tự, một khi câu trả lời được tạo bởi Lambda bằng tiếng Anh, nó đã được chuyển qua AWS Translate để chuyển đổi nó trở lại ngôn ngữ gốc.

Amazon S3

Amazon S3 là một dịch vụ lưu trữ an toàn và có thể mở rộng. Hình ảnh thiết bị tĩnh, các biểu đồ và đồ thị khác được tạo để đi kèm câu trả lời của chatbot đã được lưu trữ trên Amazon S3. Nó được thiết lập để chỉ giao tiếp với Amazon Lambda, và các ứng dụng khác hoặc truy vấn trực tiếp không thể truy cập được.

Trong trường hợp người dùng muốn xem một kiểu thiết bị cụ thể hoặc dữ liệu hình ảnh khác, AWS Lambda sẽ lấy các hình ảnh liên quan từ S3 dưới dạng một URL tạm thời. Điều này sau đó đã được chuyển lên Amazon Lex và hình ảnh được hiển thị cho người dùng.

Tất cả những điều này cùng nhau tạo thành một chatbot mang dữ liệu về hiệu suất tài sản đến các nhân viên khách hàng.

Xem thêm: In The Basic Elements Of Public, The Basic Elements Of Public

Còn bạn thì sao? Bạn đang làm việc trên các dự án chatbot tương tự cho các doanh nghiệp? Chúng tôi rất muốn biết nếu bạn tiếp cận một số thách thức khác nhau, và về nền tảng và giải pháp bạn sử dụng để xây dựng các chatbot.