Chúng tôi tăng tốc phát triển bằng dịch vụ Azure: chúng tôi tạo chatbot và dịch vụ nhận thức bằng nền tảng này

Xin chào, Habr! Hôm nay chúng tôi sẽ hướng dẫn bạn cách sử dụng Azure để giải quyết các vấn đề thường cần sự can thiệp của con người. Các đại lý dành nhiều thời gian để trả lời những câu hỏi giống nhau, xử lý các cuộc gọi điện thoại và tin nhắn văn bản. Chatbots tự động hóa giao tiếp và nhận dạng, đồng thời giảm gánh nặng cho mọi người. Bot cũng được sử dụng trong Azure DevOps, nơi chúng cho phép, chẳng hạn như phê duyệt bản phát hành, quản lý bản dựng - xem, bắt đầu và dừng - trực tiếp từ Slack hoặc Microsoft Teams. Về bản chất, chatbot phần nào gợi nhớ đến CLI, chỉ mang tính tương tác và cho phép nhà phát triển duy trì bối cảnh của cuộc thảo luận trò chuyện.

Trong bài viết này, chúng ta sẽ nói về các công cụ tạo chatbot, chỉ ra cách cải thiện chúng bằng các dịch vụ nhận thức và mô tả cách tăng tốc độ phát triển với các dịch vụ có sẵn trong Azure.

Chúng tôi tăng tốc phát triển bằng dịch vụ Azure: chúng tôi tạo chatbot và dịch vụ nhận thức bằng nền tảng này

Chatbots và dịch vụ nhận thức: điểm tương đồng và điểm khác biệt là gì?

Để tạo bot trong Microsoft Azure, bạn sử dụng Dịch vụ Bot Azure và Bot Framework. Chúng cùng nhau đại diện cho một bộ phần mềm để xây dựng, thử nghiệm, triển khai và quản lý bot, cho phép bạn tạo từ các mô-đun làm sẵn cả hệ thống giao tiếp đơn giản và nâng cao với hỗ trợ giọng nói, nhận dạng ngôn ngữ tự nhiên và các khả năng khác.

Giả sử rằng bạn cần triển khai một bot đơn giản dựa trên dịch vụ Hỏi đáp của công ty hoặc ngược lại, tạo một bot chức năng với hệ thống liên lạc phân nhánh, phức tạp. Để làm điều này, bạn có thể sử dụng một số công cụ được chia thành ba nhóm: 

  1. Dịch vụ phát triển nhanh chóng các giao diện hộp thoại (bot).
  2. Các dịch vụ AI nhận thức được tạo sẵn cho các trường hợp sử dụng khác nhau (nhận dạng mẫu, nhận dạng giọng nói, cơ sở kiến ​​thức và tìm kiếm).
  3. Dịch vụ tạo và đào tạo mô hình AI.

Thông thường, mọi người thường nhầm lẫn giữa “bot” và “dịch vụ nhận thức” vì cả hai khái niệm đều dựa trên nguyên tắc giao tiếp và trường hợp sử dụng bot và dịch vụ đều liên quan đến đối thoại. Nhưng chatbot hoạt động với từ khóa và trình kích hoạt, còn dịch vụ nhận thức hoạt động với các yêu cầu tùy ý thường được con người xử lý: 

Chúng tôi tăng tốc phát triển bằng dịch vụ Azure: chúng tôi tạo chatbot và dịch vụ nhận thức bằng nền tảng này

Dịch vụ nhận thức là một cách khác để giao tiếp với người dùng, giúp chuyển đổi một yêu cầu tùy ý thành một lệnh rõ ràng và chuyển nó tới bot. 

Do đó, chatbot là ứng dụng để xử lý các yêu cầu và dịch vụ nhận thức là công cụ để phân tích thông minh các yêu cầu được đưa ra riêng biệt nhưng chatbot có thể truy cập, trở nên “thông minh”. 

Tạo chatbot

Sơ đồ thiết kế được đề xuất cho bot trong Azure như sau: 

Chúng tôi tăng tốc phát triển bằng dịch vụ Azure: chúng tôi tạo chatbot và dịch vụ nhận thức bằng nền tảng này

Để thiết kế và phát triển bot trong Azure, hãy sử dụng Khung Bot. Có sẵn trên GitHub ví dụ về bot, khả năng của khung thay đổi, do đó cần phải tính đến phiên bản SDK được sử dụng trong bot.

Khung này cung cấp một số tùy chọn để tạo bot: sử dụng mã cổ điển, công cụ dòng lệnh hoặc sơ đồ. Tùy chọn cuối cùng hiển thị các hộp thoại; để làm được điều này, bạn có thể sử dụng trình quản lý Trình soạn thảo khung Bot. Nó được xây dựng trên Bot Framework SDK như một công cụ phát triển trực quan mà các nhóm liên ngành có thể sử dụng để tạo bot.

Chúng tôi tăng tốc phát triển bằng dịch vụ Azure: chúng tôi tạo chatbot và dịch vụ nhận thức bằng nền tảng này

Bot Framework Composer cho phép bạn sử dụng các khối để tạo cấu trúc hội thoại mà bot sẽ hoạt động. Ngoài ra, bạn có thể tạo trình kích hoạt, tức là các từ khóa mà bot sẽ phản ứng trong quá trình đối thoại. Ví dụ: các từ “người điều hành”, “trộm cắp” hoặc “dừng lại” và “đủ”.

Trong Bot Framework Composer, bạn có thể tạo các hệ thống hộp thoại phức tạp bằng cách sử dụng Hộp thoại thích ứng. Đối thoại có thể sử dụng cả dịch vụ nhận thức và thẻ sự kiện (Thẻ thích ứng):

Chúng tôi tăng tốc phát triển bằng dịch vụ Azure: chúng tôi tạo chatbot và dịch vụ nhận thức bằng nền tảng này

Sau khi tạo, bạn có thể triển khai chatbot trong gói đăng ký và tập lệnh được chuẩn bị tự động sẽ tạo tất cả các tài nguyên cần thiết: dịch vụ nhận thức, gói ứng dụng, Thông tin chi tiết về ứng dụng, cơ sở dữ liệu, v.v.

Trình tạo QnA

Để tạo các bot đơn giản dựa trên cơ sở dữ liệu Hỏi & Đáp của công ty, bạn có thể sử dụng dịch vụ nhận thức QnA Maker. Được triển khai như một trình hướng dẫn web đơn giản, nó cho phép bạn nhập liên kết đến cơ sở kiến ​​thức của công ty (URL câu hỏi thường gặp) hoặc sử dụng cơ sở dữ liệu tài liệu ở định dạng *.doc hoặc *.pdf làm cơ sở. Sau khi tạo chỉ mục, bot sẽ tự động chọn ra những câu trả lời phù hợp nhất cho câu hỏi của người dùng.

Sử dụng QnAMaker, bạn cũng có thể tạo chuỗi câu hỏi làm rõ bằng cách tự động tạo các nút, bổ sung siêu dữ liệu vào cơ sở kiến ​​thức và đào tạo thêm dịch vụ trong quá trình sử dụng.

Dịch vụ này có thể được sử dụng như một chatbot chỉ thực hiện một chức năng này hoặc như một phần của chatbot phức tạp sử dụng, tùy theo yêu cầu, các dịch vụ hoặc thành phần AI khác của Bot Framework.

Làm việc với các dịch vụ nhận thức khác

Có nhiều dịch vụ nhận thức khác nhau trên nền tảng Azure. Về mặt kỹ thuật, đây là những dịch vụ web độc lập có thể được gọi từ mã. Để đáp lại, dịch vụ sẽ gửi json có định dạng nhất định, định dạng này có thể được sử dụng trong chatbot.

Chúng tôi tăng tốc phát triển bằng dịch vụ Azure: chúng tôi tạo chatbot và dịch vụ nhận thức bằng nền tảng này
Các ứng dụng phổ biến nhất của chatbot là:

  1. Nhận dạng văn bản.
  2. Nhận dạng các danh mục hình ảnh Dịch vụ Tầm nhìn Tùy chỉnh do nhà phát triển xác định (trường hợp sản xuất: nhận dạng xem nhân viên có đội mũ cứng, kính bảo hộ hoặc khẩu trang hay không).
  3. Nhận dạng khuôn mặt (một trường hợp sử dụng tuyệt vời là kiểm tra xem người được khảo sát có đăng khuôn mặt của chính mình hay không, chẳng hạn như ảnh của một con chó hoặc ảnh của một người thuộc giới tính khác).
  4. Nhận dạng giọng nói.
  5. Phân tích hình ảnh.
  6. Dịch thuật (tất cả chúng ta đều nhớ việc dịch thuật đồng thời trong Skype đã gây ra bao nhiêu tiếng ồn).
  7. Kiểm tra chính tả và gợi ý sửa lỗi.

LUIS

Ngoài ra, để tạo bot bạn có thể cần LUIS (Ngôn ngữ hiểu dịch vụ thông minh). Mục tiêu dịch vụ:

  • Xác định xem tuyên bố của người dùng có hợp lý hay không và liệu phản hồi của bot có cần thiết hay không.
  • Giảm nỗ lực chuyển lời nói (văn bản) của người dùng thành các lệnh mà bot có thể hiểu được.
  • Dự đoán mục tiêu/ý định thực sự của người dùng và trích xuất những hiểu biết chính từ các cụm từ trong đoạn hội thoại.
  • Cho phép nhà phát triển khởi chạy bot chỉ bằng một số ví dụ về nhận dạng ý nghĩa và đào tạo bổ sung sau đó cho bot trong quá trình vận hành.
  • Cho phép nhà phát triển sử dụng tính năng trực quan hóa để đánh giá chất lượng phiên âm lệnh.
  • Hỗ trợ cải tiến gia tăng khả năng nhận dạng mục tiêu thực sự.

Trên thực tế, mục tiêu chính của LUIS là hiểu với một xác suất nhất định ý nghĩa của người dùng và chuyển một yêu cầu tự nhiên thành một mệnh lệnh hài hòa. Để nhận ra các giá trị truy vấn, LUIS sử dụng một tập hợp các ý định (ý nghĩa, ý định) và các thực thể (được các nhà phát triển định cấu hình trước hoặc các “miền” được lấy và tạo sẵn - một số thư viện cụm từ tiêu chuẩn được tạo sẵn do Microsoft chuẩn bị). 

Một ví dụ đơn giản: bạn có một bot cung cấp cho bạn dự báo thời tiết. Đối với anh ta, mục đích sẽ là chuyển một yêu cầu tự nhiên thành một “hành động” - yêu cầu dự báo thời tiết và các thực thể sẽ là thời gian và địa điểm. Dưới đây là sơ đồ về cách hoạt động của mục đích CheckWeather đối với một bot như vậy.

ý định
Tinh hoa
Ví dụ về truy vấn tự nhiên

Kiểm tra thời tiết
{"loại": "vị trí", "thực thể": "moscow"}
{"type": "buildin.datetimeV2.date", "entity": "tương lai","độ phân giải:"2020-05-30"}
Thời tiết ngày mai ở Moskva sẽ như thế nào?

Kiểm tra thời tiết
{ "type": "date_range", "entity": "cuối tuần này" }
Cho tôi xem dự báo cuối tuần này

Để kết hợp QnA Maker và LUIS bạn có thể sử dụng Điều phối

Chúng tôi tăng tốc phát triển bằng dịch vụ Azure: chúng tôi tạo chatbot và dịch vụ nhận thức bằng nền tảng này

Khi bạn làm việc với QnA Maker và nhận được yêu cầu từ người dùng, hệ thống sẽ xác định phần trăm xác suất mà câu trả lời từ QnA phù hợp với yêu cầu. Nếu xác suất cao, người dùng chỉ cần nhận được câu trả lời từ cơ sở tri thức của công ty; nếu xác suất thấp, yêu cầu có thể được gửi đến LUIS để làm rõ. Việc sử dụng Dispatcher cho phép bạn không lập trình logic này mà có thể tự động xác định ranh giới này của việc phân tách các yêu cầu và nhanh chóng phân phối chúng.

Kiểm tra và xuất bản bot

Một ứng dụng cục bộ khác được sử dụng để thử nghiệm, Trình mô phỏng khung Bot. Bằng cách sử dụng trình mô phỏng, bạn có thể giao tiếp với bot và kiểm tra tin nhắn mà nó gửi và nhận. Trình mô phỏng hiển thị các thông báo giống như chúng xuất hiện trong giao diện trò chuyện trên web và ghi lại các yêu cầu cũng như phản hồi JSON khi nhắn tin cho bot.

Một ví dụ về cách sử dụng trình giả lập được trình bày trong bản demo này, cho thấy việc tạo trợ lý ảo cho BMW. Video cũng nói về các công cụ tăng tốc mới để tạo chatbot - mẫu:

Chúng tôi tăng tốc phát triển bằng dịch vụ Azure: chúng tôi tạo chatbot và dịch vụ nhận thức bằng nền tảng này
https://youtu.be/u7Gql-ClcVA?t=564

Bạn cũng có thể sử dụng các mẫu khi tạo chatbot của mình. 
Các mẫu cho phép bạn không viết lại các hàm bot tiêu chuẩn mà có thể thêm mã tạo sẵn như một “kỹ năng”. Một ví dụ có thể là làm việc với lịch, đặt lịch hẹn, v.v. Quy tắc kỹ năng có sẵn xuất bản trên github.

Quá trình thử nghiệm đã thành công, bot đã sẵn sàng và bây giờ nó cần được xuất bản và kết nối các kênh. Việc xuất bản được thực hiện bằng Azure và các trình nhắn tin hoặc mạng xã hội có thể được sử dụng làm kênh. Nếu bạn không có kênh cần thiết để nhập dữ liệu, bạn có thể tìm kiếm kênh đó trong cộng đồng tương ứng trên GitHab. 

Ngoài ra, để tạo một chatbot chính thức làm giao diện để giao tiếp với người dùng và các dịch vụ nhận thức, tất nhiên, bạn sẽ cần các dịch vụ Azure bổ sung, chẳng hạn như cơ sở dữ liệu, serverless (Azure Functions), cũng như các dịch vụ LogicApp và có thể , Lưới sự kiện.

Chúng tôi tăng tốc phát triển bằng dịch vụ Azure: chúng tôi tạo chatbot và dịch vụ nhận thức bằng nền tảng này

Đánh giá và phân tích

Để đánh giá sự tương tác của người dùng, bạn có thể sử dụng cả phân tích tích hợp của Dịch vụ Azure Bot và dịch vụ Thông tin chi tiết về ứng dụng đặc biệt.

Do đó, bạn có thể thu thập thông tin dựa trên các tiêu chí sau:

  • Có bao nhiêu người dùng đã truy cập bot từ nhiều kênh khác nhau trong khoảng thời gian đã chọn.
  • Có bao nhiêu người dùng đã gửi một tin nhắn sau đó quay lại và gửi một tin nhắn khác.
  • Có bao nhiêu hành động được gửi và nhận bằng mỗi kênh trong khoảng thời gian đã chỉ định.

Bằng cách sử dụng Thông tin chi tiết về ứng dụng, bạn có thể giám sát bất kỳ ứng dụng nào trong Azure và đặc biệt là các chatbot, thu thập dữ liệu bổ sung về hành vi của người dùng, tải và phản ứng của chatbot. Cần lưu ý rằng dịch vụ Thông tin chi tiết về ứng dụng có giao diện riêng trong cổng Azure.

Bạn cũng có thể sử dụng dữ liệu được thu thập thông qua dịch vụ này để tạo các báo cáo phân tích và trực quan hóa bổ sung trong PowerBI. Có thể lấy một ví dụ về báo cáo và mẫu như vậy cho PowerBI đây.

Chúng tôi tăng tốc phát triển bằng dịch vụ Azure: chúng tôi tạo chatbot và dịch vụ nhận thức bằng nền tảng này

Cảm ơn tất cả các bạn đã quan tâm! Trong bài viết này chúng tôi đã sử dụng tài liệu từ hội thảo trực tuyến của kiến ​​trúc sư Microsoft Azure Anna Fenyushina “Khi mọi người không có thời gian. Cách sử dụng 100% chatbot và dịch vụ nhận thức để tự động hóa các quy trình thông thường”, trong đó chúng tôi đã trình bày rõ ràng chatbot là gì trong Azure và các kịch bản sử dụng chúng là gì, đồng thời cũng trình bày cách tạo bot trong QnA Maker trong 15 phút và cách thực hiện cấu trúc truy vấn được giải mã trong LUIS. 

Chúng tôi đã tổ chức hội thảo trực tuyến này như một phần của cuộc chạy marathon trực tuyến dành cho các nhà phát triển Dev Bootcamp. Đó là về các sản phẩm giúp tăng tốc độ phát triển và giảm bớt một số khối lượng công việc thường ngày của nhân viên công ty bằng cách sử dụng các công cụ tự động hóa và mô-đun Azure được cấu hình sẵn. Bản ghi của các hội thảo trực tuyến khác có trong cuộc chạy marathon có sẵn tại các liên kết sau:

Nguồn: www.habr.com

Thêm một lời nhận xét