Kami mempercepatkan pembangunan menggunakan perkhidmatan Azure: kami mencipta chatbots dan perkhidmatan kognitif menggunakan platform

Hello, Habr! Hari ini kami akan menunjukkan kepada anda cara menggunakan Azure untuk menyelesaikan masalah yang biasanya memerlukan campur tangan manusia. Ejen menghabiskan banyak masa menjawab soalan yang sama, mengendalikan panggilan telefon dan mesej teks. Chatbots mengautomasikan komunikasi dan pengiktirafan serta mengurangkan beban orang. Bot juga digunakan dalam Azure DevOps, di mana mereka membenarkan, contohnya, untuk meluluskan keluaran, mengurus binaan - lihat, mula dan berhenti - terus daripada Slack atau Microsoft Teams. Pada dasarnya, chatbot agak mengingatkan CLI, hanya interaktif dan membenarkan pembangun kekal dalam konteks perbincangan sembang.

Dalam artikel ini, kita akan bercakap tentang alatan untuk mencipta chatbots, menunjukkan cara ia boleh dipertingkatkan dengan perkhidmatan kognitif dan menerangkan cara mempercepatkan pembangunan dengan perkhidmatan sedia dalam Azure.

Kami mempercepatkan pembangunan menggunakan perkhidmatan Azure: kami mencipta chatbots dan perkhidmatan kognitif menggunakan platform

Chatbots dan perkhidmatan kognitif: apakah persamaan dan apakah perbezaannya?

Untuk membuat bot dalam Microsoft Azure, anda menggunakan Perkhidmatan Bot Azure dan Rangka Kerja Bot. Bersama-sama mereka mewakili satu set perisian untuk membina, menguji, menggunakan dan mentadbir bot, yang membolehkan anda mencipta daripada modul siap pakai kedua-dua sistem komunikasi mudah dan lanjutan dengan sokongan pertuturan, pengecaman bahasa semula jadi dan keupayaan lain.

Katakan anda perlu melaksanakan bot ringkas berdasarkan perkhidmatan Soal Jawab korporat atau, sebaliknya, cipta bot berfungsi dengan sistem komunikasi bercabang yang kompleks. Untuk melakukan ini, anda boleh menggunakan beberapa alat, dibahagikan kepada tiga kumpulan: 

  1. Perkhidmatan untuk pembangunan pesat antara muka dialog (bot).
  2. Perkhidmatan AI kognitif sedia dibuat untuk kes penggunaan yang berbeza (pengecaman pola, pengecaman pertuturan, pangkalan pengetahuan dan carian).
  3. Perkhidmatan untuk mencipta dan melatih model AI.

Biasanya, orang secara intuitif mengelirukan "bot" dan "perkhidmatan kognitif" kerana kedua-dua konsep adalah berdasarkan prinsip komunikasi, dan kes penggunaan untuk bot dan perkhidmatan melibatkan dialog. Tetapi chatbots berfungsi dengan kata kunci dan pencetus, dan perkhidmatan kognitif berfungsi dengan permintaan sewenang-wenangnya yang biasanya diproses oleh manusia: 

Kami mempercepatkan pembangunan menggunakan perkhidmatan Azure: kami mencipta chatbots dan perkhidmatan kognitif menggunakan platform

Perkhidmatan kognitif ialah satu lagi cara untuk berkomunikasi dengan pengguna, membantu menukar permintaan sewenang-wenangnya kepada arahan yang jelas dan menyampaikannya kepada bot. 

Oleh itu, chatbots ialah aplikasi untuk bekerja dengan permintaan, dan perkhidmatan kognitif ialah alat untuk analisis pintar permintaan yang dilancarkan secara berasingan, tetapi yang boleh diakses oleh chatbot, menjadi "pintar." 

Mencipta chatbots

Gambar rajah reka bentuk yang disyorkan untuk bot dalam Azure adalah seperti berikut: 

Kami mempercepatkan pembangunan menggunakan perkhidmatan Azure: kami mencipta chatbots dan perkhidmatan kognitif menggunakan platform

Untuk mereka bentuk dan membangunkan bot dalam Azure, gunakan Rangka Kerja Bot. Tersedia di GitHub contoh bot, keupayaan rangka kerja berubah, jadi perlu mengambil kira versi SDK yang digunakan dalam bot.

Rangka kerja menyediakan beberapa pilihan untuk membuat bot: menggunakan kod klasik, alat baris arahan atau carta alir. Pilihan terakhir menggambarkan dialog; untuk ini anda boleh menggunakan pengurus Komposer Rangka Kerja Bot. Ia dibina pada SDK Rangka Kerja Bot sebagai alat pembangunan visual yang boleh digunakan oleh pasukan rentas disiplin untuk mencipta bot.

Kami mempercepatkan pembangunan menggunakan perkhidmatan Azure: kami mencipta chatbots dan perkhidmatan kognitif menggunakan platform

Komposer Rangka Kerja Bot membolehkan anda menggunakan blok untuk mencipta struktur dialog yang bot akan berfungsi. Selain itu, anda boleh mencipta pencetus, iaitu kata kunci yang bot akan bertindak balas semasa dialog. Contohnya, perkataan "pengendali", "kecurian" atau "berhenti" dan "cukup".

Dalam Bot Framework Composer, anda boleh mencipta sistem dialog kompleks menggunakan Dialog Adaptif. Dialog boleh menggunakan kedua-dua perkhidmatan kognitif dan kad acara (Kad Adaptif):

Kami mempercepatkan pembangunan menggunakan perkhidmatan Azure: kami mencipta chatbots dan perkhidmatan kognitif menggunakan platform

Selepas penciptaan, anda boleh menggunakan chatbot dalam langganan, dan skrip yang disediakan secara automatik akan mencipta semua sumber yang diperlukan: perkhidmatan kognitif, Pelan Aplikasi, Cerapan Aplikasi, pangkalan data dan sebagainya.

Pembuat QnA

Untuk mencipta bot mudah berdasarkan pangkalan data Soal Jawab korporat, anda boleh menggunakan perkhidmatan kognitif QnA Maker. Dilaksanakan sebagai wizard web yang mudah, ia membolehkan anda memasukkan pautan ke pangkalan pengetahuan korporat (Url Soalan Lazim) atau menggunakan pangkalan data dokumen dalam format *.doc atau *.pdf sebagai asas. Selepas mencipta indeks, bot secara automatik akan memilih jawapan yang paling sesuai untuk soalan pengguna.

Menggunakan QnAMaker, anda juga boleh membuat rangkaian soalan penjelasan dengan penciptaan butang automatik, menambah pangkalan pengetahuan dengan metadata dan seterusnya melatih perkhidmatan semasa penggunaan.

Perkhidmatan ini boleh digunakan sebagai chatbot yang hanya melaksanakan satu fungsi ini, atau sebagai sebahagian daripada chatbot kompleks yang menggunakan, bergantung pada permintaan, perkhidmatan AI lain atau elemen Rangka Kerja Bot.

Bekerja dengan perkhidmatan kognitif lain

Terdapat banyak perkhidmatan kognitif yang berbeza pada platform Azure. Secara teknikal, ini adalah perkhidmatan web bebas yang boleh dipanggil daripada kod. Sebagai tindak balas, perkhidmatan menghantar json dalam format tertentu, yang boleh digunakan dalam chatbot.

Kami mempercepatkan pembangunan menggunakan perkhidmatan Azure: kami mencipta chatbots dan perkhidmatan kognitif menggunakan platform
Penggunaan chatbot yang paling biasa ialah:

  1. Mengecam teks.
  2. Pengiktirafan kategori imej Perkhidmatan Visi Tersuai yang ditentukan oleh pembangun (kes pengeluaran: pengecaman sama ada pekerja memakai topi keras, cermin mata atau topeng).
  3. Pengecaman muka (kes penggunaan yang sangat baik ialah menyemak sama ada orang yang ditinjau menyiarkan wajahnya sendiri, atau, katakan, foto anjing atau foto orang berlainan jantina).
  4. Pengenalan suara.
  5. Analisis imej.
  6. Terjemahan (kita semua ingat berapa banyak bunyi terjemahan serentak dalam Skype disebabkan).
  7. Semakan ejaan dan cadangan untuk membetulkan ralat.

Luis

Selain itu, untuk mencipta bot yang mungkin anda perlukan Luis (Perkhidmatan Pintar Pemahaman Bahasa). Objektif perkhidmatan:

  • Tentukan sama ada pernyataan pengguna masuk akal dan sama ada respons bot itu perlu.
  • Kurangkan usaha untuk menyalin pertuturan pengguna (teks) ke dalam perintah yang boleh difahami oleh bot.
  • Ramalkan matlamat/niat pengguna sebenar dan ekstrak cerapan utama daripada frasa dalam dialog.
  • Benarkan pembangun melancarkan bot menggunakan hanya beberapa contoh pengecaman makna dan latihan tambahan seterusnya bot semasa operasi.
  • Dayakan pembangun menggunakan visualisasi untuk menilai kualiti transkripsi arahan.
  • Membantu dalam peningkatan tambahan dalam pengecaman sasaran sebenar.

Malah, matlamat utama LUIS adalah untuk memahami dengan kebarangkalian tertentu apa yang dimaksudkan oleh pengguna dan menukar permintaan semula jadi kepada perintah yang harmoni. Untuk mengecam nilai pertanyaan, LUIS menggunakan satu set niat (makna, niat) dan entiti (sama ada diprakonfigurasikan oleh pembangun atau "domain" yang diambil dan dibentuk sebelumnya - beberapa pustaka sedia ada bagi frasa standard yang disediakan oleh Microsoft). 

Contoh mudah: anda mempunyai bot yang memberi anda ramalan cuaca. Baginya, maksudnya adalah terjemahan permintaan semula jadi ke dalam "tindakan" - permintaan untuk ramalan cuaca, dan entiti akan menjadi masa dan tempat. Berikut ialah gambarajah tentang cara niat CheckWeather berfungsi untuk bot sedemikian.

niat
Essence
Contoh pertanyaan semula jadi

CheckWeather
{"type": "location", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Bagaimanakah cuaca esok di Moscow?

CheckWeather
{ "jenis": "julat_tarikh", "entiti": "hujung minggu ini" }
Tunjukkan saya ramalan untuk hujung minggu ini

Untuk menggabungkan QnA Maker dan LUIS anda boleh gunakan Penghantar

Kami mempercepatkan pembangunan menggunakan perkhidmatan Azure: kami mencipta chatbots dan perkhidmatan kognitif menggunakan platform

Apabila anda bekerja dengan QnA Maker dan menerima permintaan daripada pengguna, sistem menentukan peratusan kebarangkalian jawapan daripada QnA sepadan dengan permintaan. Jika kebarangkalian adalah tinggi, pengguna hanya diberi jawapan daripada pangkalan pengetahuan korporat; jika ia rendah, permintaan boleh dihantar kepada LUIS untuk penjelasan. Menggunakan Dispatcher membolehkan anda tidak memprogramkan logik ini, tetapi untuk secara automatik menentukan kelebihan pemisahan permintaan ini dan mengedarkannya dengan cepat.

Menguji dan menerbitkan bot

Satu lagi aplikasi tempatan digunakan untuk ujian, Emulator rangka kerja bot. Menggunakan emulator, anda boleh berkomunikasi dengan bot dan menyemak mesej yang dihantar dan diterimanya. Emulator memaparkan mesej seperti yang akan dipaparkan dalam antara muka sembang web dan merekodkan permintaan dan respons JSON apabila menghantar mesej kepada bot.

Contoh penggunaan emulator dibentangkan dalam demo ini, yang menunjukkan penciptaan pembantu maya untuk BMW. Video itu juga bercakap tentang pemecut baharu untuk mencipta chatbots - templat:

Kami mempercepatkan pembangunan menggunakan perkhidmatan Azure: kami mencipta chatbots dan perkhidmatan kognitif menggunakan platform
https://youtu.be/u7Gql-ClcVA?t=564

Anda juga boleh menggunakan templat semasa membuat chatbots anda. 
Templat membolehkan anda untuk tidak menulis fungsi bot standard semula, tetapi untuk menambah kod siap sedia sebagai "kemahiran". Contohnya boleh bekerja dengan kalendar, membuat janji temu, dsb. Kod kemahiran sedia diterbitkan pada github.

Ujian telah berjaya, bot sudah sedia, dan kini ia perlu diterbitkan dan saluran disambungkan. Penerbitan dijalankan menggunakan Azure, dan messenger atau rangkaian sosial boleh digunakan sebagai saluran. Jika anda tidak mempunyai saluran yang diperlukan untuk memasukkan data, anda boleh mencarinya dalam komuniti yang sepadan di GitHab. 

Selain itu, untuk mencipta chatbot yang lengkap sebagai antara muka untuk berkomunikasi dengan pengguna dan perkhidmatan kognitif, anda, sudah tentu, memerlukan perkhidmatan Azure tambahan, seperti pangkalan data, tanpa pelayan (Fungsi Azure), serta perkhidmatan LogicApp dan, mungkin. , Grid Acara.

Kami mempercepatkan pembangunan menggunakan perkhidmatan Azure: kami mencipta chatbots dan perkhidmatan kognitif menggunakan platform

Penilaian dan Analitis

Untuk menilai interaksi pengguna, anda boleh menggunakan kedua-dua analitik terbina dalam Perkhidmatan Bot Azure dan perkhidmatan Application Insights khas.

Hasilnya, anda boleh mengumpul maklumat berdasarkan kriteria berikut:

  • Berapa ramai pengguna yang mengakses bot daripada pelbagai saluran dalam tempoh masa yang dipilih.
  • Berapa ramai pengguna yang menghantar satu mesej kembali kemudian dan menghantar satu lagi.
  • Berapa banyak tindakan yang dihantar dan diterima menggunakan setiap saluran dalam selang masa yang ditentukan.

Menggunakan Application Insights, anda boleh memantau mana-mana aplikasi dalam Azure dan, khususnya, chatbots, mendapatkan data tambahan tentang tingkah laku pengguna, beban dan reaksi chatbot. Perlu diingat bahawa perkhidmatan Application Insights mempunyai antara muka sendiri dalam portal Azure.

Anda juga boleh menggunakan data yang dikumpul melalui perkhidmatan ini untuk membuat visualisasi tambahan dan laporan analisis dalam PowerBI. Contoh laporan dan templat untuk PowerBI boleh diambil di sini.

Kami mempercepatkan pembangunan menggunakan perkhidmatan Azure: kami mencipta chatbots dan perkhidmatan kognitif menggunakan platform

Terima kasih semua atas perhatian anda! Dalam artikel ini kami gunakan bahan daripada webinar oleh arkitek Microsoft Azure Anna Fenyushina β€œApabila orang tidak mempunyai masa. Bagaimana untuk 100% menggunakan chatbots dan perkhidmatan kognitif untuk mengautomasikan proses rutin", di mana kami menunjukkan dengan jelas apakah chatbots dalam Azure dan apakah senario untuk kegunaannya, dan juga menunjukkan cara mencipta bot dalam QnA Maker dalam masa 15 minit dan bagaimana struktur pertanyaan dihuraikan dalam LUIS. 

Kami membuat webinar ini sebagai sebahagian daripada maraton dalam talian untuk pembangun Dev Bootcamp. Ia adalah mengenai produk yang mempercepatkan pembangunan dan meringankan beberapa beban kerja rutin daripada pekerja syarikat menggunakan alat automasi dan modul Azure prakonfigurasi sedia dibuat. Rakaman webinar lain yang termasuk dalam maraton boleh didapati di pautan berikut:

Sumber: www.habr.com

Tambah komen