Bot akan membantu kita

Bot akan membantu kita

Setahun yang lalu, departemen SDM kami yang tercinta menghubungi kami dengan sebuah permintaan: untuk menulis sebuah chatbot yang akan membantu proses orientasi karyawan baru ke perusahaan.

Perlu diperjelas bahwa kami tidak mengembangkan produk sendiri, tetapi kami menawarkan berbagai layanan pengembangan kepada klien kami. Kisah ini tentang proyek internal kami, yang kliennya bukan perusahaan pihak ketiga, melainkan departemen SDM kami sendiri. Mengingat keterbatasan sumber daya manusia, sumber daya, dan waktu, tujuan utamanya adalah menyelesaikan proyek tepat waktu dan merilis produk.

Pertama, mari kita jelaskan tugas yang perlu diselesaikan.

Pengembang umumnya introvert dan tidak suka berbicara, jadi jauh lebih mudah untuk menuliskan pertanyaan Anda dalam obrolan email. Dengan bot, Anda tidak perlu khawatir tentang siapa yang harus ditanya, siapa yang harus dihubungi, ke mana harus pergi, atau bahkan di mana harus mencari informasi, atau apakah informasi tersebut terkini.

Masalah kedua adalah informasi - jumlahnya sangat banyak, berasal dari berbagai sumber, tidak selalu tersedia dan perlu terus-menerus ditambah dan diperbarui.

Perusahaan ini memiliki hampir 500 karyawan yang tersebar di berbagai kantor, zona waktu, kota, dan bahkan di luar negeri. Biasanya terdapat banyak pertanyaan, sehingga tantangan lainnya adalah mengurangi beban kerja staf SDM terkait pertanyaan yang paling sering diajukan.

Proses-proses berikut juga perlu diotomatisasi: penerimaan karyawan baru, pengiriman pesan kepada manajer dan mentor karyawan baru, serta pengiriman pengingat otomatis tentang kursus dan tes yang harus diselesaikan karyawan baru agar adaptasinya berhasil.

Berdasarkan persyaratan bisnis, persyaratan teknis dibentuk.

Bot tersebut harus bekerja di Skype (secara historis, kebetulan saja perusahaan tersebut menggunakannya), jadi layanan di Azure dipilih.

Untuk membatasi aksesnya, kami mulai menggunakan mekanisme otorisasi Skype.
Pustaka ParlAI digunakan untuk pengenalan teks.

Portal web administratif juga diperlukan untuk konfigurasi, pelatihan, debugging, pengaturan milis, dan tugas lainnya.

Bot akan membantu kita

Selama proses pengerjaan proyek ini, kami menemui sejumlah masalah dan kesulitan.

Misalnya, kami mengalami masalah teknis dengan akun Azure kami. Microsoft menolak mengaktifkan langganan kami karena beberapa kendala teknis dalam layanan mereka. Selama hampir dua bulan, kami tidak dapat berbuat apa-apa, dan dukungan Microsoft akhirnya menyerah dan merujuk kami ke mitra mereka, yang berhasil mengatur semuanya dan menerbitkan akun untuk kami.

Tahap yang paling menantang adalah peluncuran proyek, ketika kami harus memilih apa yang akan kami gunakan, seperti apa arsitekturnya, bagaimana dan di mana data disimpan, serta bagaimana komponen dan modul sistem berinteraksi satu sama lain.

Dalam kasus kami, tantangan umum peluncuran proyek apa pun semakin rumit karena masalah kepegawaian. Sifat bisnis kami sedemikian rupa sehingga, tidak seperti proyek komersial, proyek internal sering kali melibatkan pengembang yang kurang memiliki pengetahuan memadai di bidang yang relevan—mereka hanya terpinggirkan, menunggu proyek komersial besar dan menarik berikutnya. Tentu saja, motivasi dalam situasi seperti itu juga cukup menantang. Produktivitas anjlok, tim sering menganggur, dan akhirnya, kami harus membujuk (memotivasi) atau mengganti pengembang. Saat mengganti pengembang, kami harus melakukan pelatihan, mentransfer pengetahuan, dan pada dasarnya memulai kembali proyek. Setiap pengembang baru memandang arsitektur secara berbeda dan mengkritik pengembang sebelumnya atas keputusan dan kode yang mereka tulis. Penulisan ulang dimulai dari awal.

Ini berlangsung sekitar enam bulan. Kami hanya mengulur waktu, memfaktorkan ulang kode, dan tidak menulis hal baru.

Proyek internal juga biasanya kurang terdokumentasi, sehingga sulit untuk memahami apa yang perlu dilakukan pada waktu tertentu dan apa prioritasnya. Pembentukan tim permanen, penyederhanaan proses, serta perencanaan dan evaluasi perlu dilakukan setidaknya selama tiga bulan. Namun, bagaimana hal ini dapat tercapai jika proyek tersebut bersifat non-komersial, yang berarti investasi jam kerja minimal, namun tetap menghasilkan hasil yang tidak lebih buruk daripada klien eksternal?

Kami mengidentifikasi sekumpulan sumber daya yang telah berpartisipasi dalam pengembangan proyek, familier dengannya, dan bersedia mengerjakannya. Kami menyusun jadwal beban kerja setiap orang untuk setiap proyek. Kami menilai dan mengoordinasikan pekerjaan tersebut, lalu mengintegrasikannya ke dalam celah-celah di antara proyek-proyek utama. Empat bulan kemudian, kami memiliki prototipe aplikasi yang berfungsi.

Sekarang mari kita bahas lebih rinci tentang fungsionalitas bot, arsitektur, dan solusi teknis.

Salah satu persyaratan utama SDM adalah mengenali teks yang ditulis pengguna untuk menjawab pertanyaan dengan benar. Anda bisa menulis sesuatu seperti "Saya ingin berlibur", "Saya ingin berlibur", atau "Saya ingin berlibur", dan bot akan memahami dan meresponsnya dengan tepat. Atau, mungkin kursi seorang karyawan rusak dan mereka ingin menulis sesuatu seperti "kursinya rusak", atau "Kursi saya retak", atau "Sandaran kursinya jatuh". Dengan pelatihan yang tepat, bot akan mengenali pertanyaan semacam itu. Kualitas pengenalan teks tentu bergantung pada pelatihan bot, yang akan kita bahas nanti.

Persyaratan dan bagian dari fungsionalitas selanjutnya adalah sistem dialog bot. Kami mengembangkan sistem yang memungkinkan bot untuk berdialog dan memahami konteks pertanyaan yang diajukan. Bot dapat mengajukan pertanyaan klarifikasi sebagai tanggapan atas pertanyaan Anda dan melanjutkan percakapan jika kami telah melatih bot untuk melakukannya. Skype mendukung menu sederhana untuk memberi tahu pengguna tentang opsi yang memungkinkan untuk melanjutkan percakapan. Selain itu, jika kita sedang berdialog tetapi tiba-tiba memutuskan untuk mengajukan pertanyaan yang tidak sesuai topik, bot juga akan memahaminya.

Bot ini memungkinkan pengguna mengirimkan berbagai artefak berdasarkan data pribadi mereka, seperti lokasi. Misalnya, jika seseorang ingin mencari toilet, mereka akan diperlihatkan peta kantor yang mengarahkan mereka ke toilet. Peta tersebut akan dipilih berdasarkan lokasi kantor karyawan saat ini.

Melindungi informasi pribadi pengguna adalah prioritas utama. Kami tidak dapat mengizinkan sembarang orang mengakses data sensitif yang ditangani bot kami. Otorisasi merupakan bagian integral dari bot ini. Bot meminta pengguna untuk memberikan otorisasi sebelum terlibat dalam percakapan apa pun. Ini terjadi saat pertama kali karyawan berinteraksi dengan bot. Otorisasi akan mengarahkan pengguna ke halaman yang sesuai, tempat mereka menerima token, yang kemudian mereka tempelkan ke dalam pesan Skype. Jika otorisasi berhasil, mereka dapat mulai berkomunikasi dengan bot.

Bot akan membantu kita

Otorisasi dilakukan melalui portal layanan otorisasi Skype, jaringan perusahaan, dan LDAP. Oleh karena itu, otorisasi bergantung pada data pengguna saat ini di jaringan perusahaan.

Selama pengembangan bot, kami menyadari bahwa kami membutuhkan sistem yang terintegrasi ke dalam fungsionalitas portal untuk membantu HR men-debug bot dengan cepat. Kami menambahkan halaman portal tempat HR dapat melihat kesalahan yang dilaporkan pengguna saat menggunakan bot dan menyelesaikannya melalui pelatihan ulang atau menyerahkannya kepada pengembang untuk diselesaikan.

Kemampuan untuk melatih bot langsung di portal tidak terintegrasi sejak awal. Selama pengembangan, kami menyadari bahwa melatih bot adalah tugas paling umum yang dilakukan staf SDM saat bekerja dengannya, dan mengirimkan berkas teks kepada pengembang untuk pelatihan bot tambahan sama sekali tidak dapat diterima. Hal ini memakan waktu terlalu lama dan menimbulkan terlalu banyak kesalahan serta masalah.

Bot akan membantu kita

Kami mengembangkan antarmuka pengguna untuk portal pelatihan bot yang ramah pengguna. Antarmuka ini memungkinkan HR untuk melihat pelatihan bot saat ini, memberikan pelatihan tambahan, dan melakukan penyesuaian pada pelatihan yang ada. Pelatihan disajikan sebagai struktur pohon, dengan simpul (atau cabang) yang merupakan perpanjangan dari dialog bot. Anda dapat membuat pertanyaan dan jawaban sederhana atau dialog yang kompleks, tergantung pada HR dan kebutuhan mereka.

Beberapa kata tentang arsitektur solusi.

Bot akan membantu kita

Arsitektur solusinya bersifat modular. Ini mencakup layanan yang bertanggung jawab atas berbagai tugas, yaitu:
• Layanan bot Skype di Azure – menerima dan memproses permintaan pengguna. Layanan ini cukup sederhana, pertama-tama menerima permintaan dan melakukan pemrosesan awalnya.
• Portal Admin adalah layanan yang menyediakan antarmuka web untuk mengonfigurasi portal dan bot itu sendiri. Bot selalu menghubungi portal terlebih dahulu, baru kemudian portal memutuskan tindakan yang harus diambil terkait permintaan tersebut.
• Layanan otorisasi — menyediakan mekanisme autentikasi untuk bot dan portal admin. Otorisasi dilakukan melalui protokol Oauth2. Jika otorisasi berhasil, layanan akan mengautentikasi pengguna di jaringan perusahaan menggunakan data pengguna yang valid, sehingga sistem dapat mendeteksi kesalahan terkait desinkronisasi data.
• Modul Pengenalan Teks AI, ditulis dengan Python dan menggunakan kerangka kerja ParlAI untuk pengenalan teks. Ini adalah jaringan saraf tiruan, setidaknya dalam implementasinya saat ini. Kami menggunakan algoritma tfDiff untuk memahami pertanyaan. Modul ini menyediakan API untuk berkomunikasi dengannya dan melakukan pelatihan.

Sebagai kesimpulan, saya ingin menyampaikan bahwa ini adalah percobaan pertama kami dalam menciptakan chatbot, dan kami berusaha membuat sistemnya sesederhana mungkin, namun tetap fungsional, dengan upaya minimal. Saya rasa kami telah menciptakan produk yang sangat menarik. Produk ini memiliki sistem pelatihan, pencatatan kesalahan, dan notifikasinya sendiri, dan juga dapat diintegrasikan dengan aplikasi perpesanan lainnya.

Sumber: www.habr.com

Beli hosting yang andal untuk situs dengan perlindungan DDoS, server VPS VDS 🔥 Beli hosting website andal dengan perlindungan DDoS, server VPS VDS | ProHoster