Bot akan membantu kami

Bot akan membantu kami

Setahun yang lalu, jabatan HR kami yang tercinta meminta kami untuk menulis bot sembang yang akan membantu dengan penyesuaian pendatang baru kepada syarikat.

Mari buat tempahan bahawa kami tidak membangunkan produk kami sendiri, tetapi kami menyediakan pelanggan dengan rangkaian penuh perkhidmatan pembangunan. Ceritanya akan mengenai projek dalaman kami, yang mana pelanggannya bukanlah syarikat pihak ketiga, tetapi HR kami sendiri. Dan tugas utama, memandangkan ketersediaan terhad orang, sumber, dan masa, adalah untuk menyelesaikan projek tepat pada masanya dan mengeluarkan produk.

Pertama, mari kita huraikan masalah yang perlu diselesaikan.

Pembangun kebanyakannya adalah orang yang introvert dan tidak suka bercakap; lebih mudah untuk menulis soalan anda dalam sembang e-mel. Dengan bot, anda tidak perlu memikirkan siapa yang hendak ditanya, siapa yang perlu dihubungi, ke mana hendak pergi dan secara umum, tempat untuk mencari maklumat dan sama ada ia berkaitan.

Masalah kedua ialah maklumat - terdapat banyak, ia berada dalam sumber yang berbeza, ia tidak selalu tersedia dan memerlukan penambahan dan pengemaskinian yang berterusan.

Syarikat itu mempunyai hampir 500 pekerja, mereka terletak di pejabat yang berbeza, zon waktu, bandar Rusia dan juga di luar negara, biasanya terdapat banyak soalan, jadi tugas lain adalah untuk mengurangkan beban kakitangan HR yang berkaitan dengan soalan yang paling kerap ditanya. oleh pekerja.

Ia juga perlu untuk mengautomasikan proses: pendatang baru menyertai syarikat, menghantar mesej kepada pengurus dan mentor pendatang baru, menghantar peringatan automatik tentang kursus dan ujian yang perlu dilalui oleh pendatang baru untuk penyesuaian yang berjaya.

Keperluan teknikal dibentuk berdasarkan keperluan perniagaan.

Bot mesti berfungsi berdasarkan Skype (secara sejarah, mereka menggunakannya dalam syarikat), jadi perkhidmatan pada Azura dipilih.

Untuk menyekat akses kepadanya, kami mula menggunakan mekanisme kebenaran melalui Skype.
Pustaka ParlAI telah digunakan untuk pengecaman teks

Portal web pentadbiran juga diperlukan untuk konfigurasi, latihan, penyahpepijatan, menyediakan mel dan tugasan lain.

Bot akan membantu kami

Semasa menjalankan projek, kami menghadapi beberapa masalah dan kesukaran.

Sebagai contoh, terdapat masalah teknikal dengan akaun Azure. Microsoft tidak mahu mengaktifkan langganan kami kerana beberapa masalah teknikal dalam perkhidmatan mereka. Selama hampir dua bulan kami tidak dapat berbuat apa-apa mengenainya; sokongan Microsoft akhirnya mengangkat tangan dan menghantar kami kepada rakan kongsi, yang berjaya menyediakan segala-galanya dan memberi kami akaun.

Peringkat yang paling sukar ialah permulaan projek, apabila anda perlu memilih apa yang akan kami gunakan, apakah seni bina, bagaimana dan di mana untuk menyimpan data, dan bagaimana komponen dan modul sistem akan berinteraksi antara satu sama lain.

Dalam kes kami, pada asasnya masalah biasa untuk memulakan sebarang projek menjadi lebih rumit oleh kakitangan. Khusus perniagaan kami adalah sedemikian rupa sehingga, tidak seperti yang komersial, projek dalaman sering diusahakan oleh pemaju yang tidak mempunyai pengetahuan yang mencukupi dalam bidang yang diperlukan - mereka hanya, dengan kehendak takdir, berakhir di bangku simpanan menunggu yang seterusnya projek komersial yang hebat. Adalah logik bahawa keadaan juga sangat sukar dengan motivasi dalam keadaan sedemikian. Produktiviti jatuh rendah, pasukan sering terbiar, dan akibatnya anda perlu memujuk (memotivasi) atau mengubah orang itu. Apabila menukar pembangun, anda perlu menjalankan latihan, memindahkan pengetahuan dan pada asasnya memulakan projek semula. Setiap pembangun baharu melihat seni bina dengan caranya sendiri dan memarahi yang sebelumnya kerana keputusan yang mereka buat dan kod orang lain. Penulisan semula bermula dari awal.

Ini berterusan selama kira-kira enam bulan. Kami hanya menandakan masa, memfaktorkan semula kod dan tidak menulis sesuatu yang baharu.

Juga, pada projek dalaman, sebagai peraturan, hampir tiada dokumentasi, dan sukar untuk memahami apa yang perlu dilakukan pada setiap masa, dan apa keutamaan semasa. Ia adalah perlu untuk mewujudkan pasukan tetap, mewujudkan proses, dan menjalankan perancangan dan penilaian selama sekurang-kurangnya tiga bulan. Tetapi bagaimana untuk melakukan ini apabila projek itu bukan komersial, yang bermaksud bahawa anda perlu melabur sekurang-kurangnya jam kerja, dan pada masa yang sama mendapatkan hasilnya tidak lebih buruk daripada pelanggan luar?

Kami telah mengenal pasti kumpulan sumber yang mengambil bahagian dalam pembangunan projek, biasa dengannya dan ingin mengusahakannya. Kami merangka jadual untuk menggaji orang dalam projek. Kami menilai dan menyelaraskan kerja, dan menyesuaikan kerja-kerja ini ke dalam "lubang" antara projek utama. Selepas 4 bulan kami menerima prototaip aplikasi yang berfungsi.

Sekarang mari kita bercakap dengan lebih terperinci tentang kefungsian bot, seni bina dan penyelesaian teknikal.

Salah satu keperluan utama HR ialah mengenali teks yang ditulis oleh pengguna untuk menjawab soalan dengan betul. Anda boleh menulis kepadanya - Saya ingin pergi bercuti, saya ingin pergi bercuti atau ingin pergi bercuti, dan dia akan memahami dan bertindak balas dengan sewajarnya. Atau tiba-tiba kerusi pekerja patah dan dia ingin menulis "kerusi rosak" atau "Kerusi saya retak" atau "Bahagian belakang kerusi telah jatuh"; dengan latihan yang betul, bot akan mengenali permintaan sedemikian. Kualiti pengecaman teks itu sendiri bergantung pada latihan bot, yang akan kita bincangkan kemudian.

Keperluan seterusnya dan sebahagian daripada fungsi ialah sistem dialog bot. Sistem telah dibangunkan di mana bot boleh menjalankan dialog dan memahami konteks isu semasa. Sebagai tindak balas kepada soalan anda, dia mungkin bertanya apa-apa soalan yang menjelaskan dan meneruskan perbualan jika kami telah melatih bot untuk melakukan perkara ini. Skype menyokong pilihan menu mudah untuk menggesa pengguna tentang pilihan untuk meneruskan perbualan. Selain itu, jika kami mengadakan dialog, tetapi tiba-tiba memutuskan untuk bertanya soalan di luar topik, bot juga akan memahami perkara ini.

Bot memungkinkan untuk menghantar pelbagai artifak kepada pengguna berdasarkan data peribadinya. Sebagai contoh, di lokasinya. Katakan jika seseorang ingin mencari tandas, maka dia akan ditunjukkan peta pejabat yang membawanya ke tandas. Dan kad itu akan dipilih bergantung pada pejabat syarikat mana pekerja itu berada.

Salah satu tugas yang paling penting ialah melindungi maklumat peribadi pengguna. Kami tidak boleh membenarkan setiap orang mempunyai akses kepada data sensitif yang bot kami kendalikan. Keperluan untuk kebenaran untuk bot sedemikian adalah sebahagian daripadanya. Bot meminta pengguna untuk mengesahkan sebelum dia boleh menjalankan sebarang dialog dengannya. Ini berlaku pada kali pertama pekerja menghubungi bot. Keizinan itu sendiri mengubah hala pengguna ke halaman yang sesuai, di mana pengguna menerima token, yang kemudiannya dimasukkan ke dalam mesej Skype. Jika kebenaran berjaya, anda boleh mula berkomunikasi dengan bot.

Bot akan membantu kami

Keizinan berlaku melalui Skype - perkhidmatan kebenaran portal, rangkaian korporat dan LDAP. Oleh itu, kebenaran bergantung pada data pengguna semasa pada rangkaian korporat.

Dalam proses membangunkan bot, kami menyedari bahawa kami memerlukan sejenis sistem terbina dalam kefungsian portal yang boleh membantu HR menyahpepijat bot dengan cepat. Kami telah menambah halaman portal di mana HR boleh melihat ralat yang direkodkan oleh pengguna semasa bekerja dengan bot dan menyelesaikannya menggunakan latihan semula atau meninggalkannya untuk pembangun.

Keupayaan untuk melatih bot secara langsung di portal tidak disertakan sejak awal lagi. Semasa proses pembangunan, kami menyedari bahawa melatih bot adalah tugas paling biasa yang akan dilakukan oleh pekerja jabatan HR apabila bekerja dengannya, dan menghantar fail teks kepada pembangun untuk latihan tambahan bot adalah tidak boleh diterima sepenuhnya. Ini memakan terlalu banyak masa dan mencipta terlalu banyak ralat dan masalah.

Bot akan membantu kami

Kami menulis UI pada portal untuk latihan bot yang mesra pengguna. Ia membolehkan HR melihat latihan semasa bot, melatihnya lagi dan membuat pelarasan pada latihan semasa. Latihan diwakili oleh struktur pokok di mana nod, iaitu, cawangan, adalah kesinambungan dialog dengan bot. Anda boleh membuat soalan dan jawapan mudah, atau anda boleh mencipta dialog yang berat, semuanya bergantung pada HR dan keperluan mereka.

Beberapa perkataan tentang seni bina penyelesaian.

Bot akan membantu kami

Seni bina penyelesaian adalah modular. Ia termasuk perkhidmatan yang bertanggungjawab untuk pelbagai tugas, iaitu:
β€’ Perkhidmatan bot Skype pada Azure - menerima dan memproses permintaan pengguna. Ini adalah perkhidmatan yang agak mudah yang merupakan yang pertama menerima permintaan dan melaksanakan pemprosesan awalnya.
β€’ Portal pentadbir - perkhidmatan yang menyediakan antara muka web untuk menyediakan portal dan untuk bot itu sendiri. Bot sentiasa menghubungi portal terlebih dahulu, dan portal memutuskan perkara yang perlu dilakukan seterusnya dengan permintaan tersebut.
β€’ Perkhidmatan kebenaran - menyediakan mekanisme pengesahan untuk bot dan untuk portal pentadbir. Keizinan berlaku melalui protokol Oauth2. Dengan kebenaran positif, perkhidmatan melaksanakan keizinan dalam rangkaian korporat mengikut data pengguna yang sah, supaya sistem boleh mengawal ralat yang berkaitan dengan data tidak segerak.
β€’ Modul pengecaman teks AI, ditulis dalam Python dan menggunakan rangka kerja ParlAI untuk pengecaman teks itu sendiri. Ini adalah rangkaian saraf, sekurang-kurangnya dalam pelaksanaan semasanya. Kami menggunakan algoritma tfDiff untuk memahami soalan. Modul ini menyediakan API untuk berkomunikasi dengannya dan belajar.

Sebagai kesimpulan, saya ingin mengatakan bahawa ini adalah pengalaman pertama kami dalam mencipta bot sembang, dan kami cuba menjadikan sistem semudah mungkin, tetapi pada masa yang sama berfungsi, dengan kos buruh yang minimum. Saya rasa kami mempunyai produk yang sangat menarik. Dengan sistem latihan sendiri, pengelogan ralat, penghantaran pemberitahuan, ia juga boleh disepadukan dengan mana-mana messenger lain.

Sumber: www.habr.com

Tambah komen