Cara membuat bot Anda sendiri tanpa keterampilan pemrograman dan menghubungkannya ke Yandex.Alice


Seperti yang kami tulis di artikel pertama kami, kami di Just AI berspesialisasi dalam teknologi kecerdasan buatan untuk memahami bahasa alami (NLU). Kami memiliki platform kami sendiri untuk mengembangkan asisten percakapan, baik teks maupun suara. Platform ini telah mengembangkan fungsionalitas untuk memecahkan masalah NLP (pengelompokan log, mencari frasa yang dekat secara semantik, dll.) Dan bahasa pengembangannya sendiri (Just AI DSL). Menggunakan DSL, tim pengembang linguistik menulis kode skrip chatbot, modul integrasi untuk berkomunikasi dengan sistem eksternal, serta pengujian otomatis.

Pada artikel ini, kita akan berbicara tentang alat yang kami buat untuk mengembangkan bot untuk platform yang berbeda, termasuk untuk Dialog Yandex, tanpa pengetahuan tentang DSL dan keterampilan pemrograman.

Proyek-proyek besar, seperti autoinformer untuk mendukung pelanggan operator telekomunikasi atau asisten suara berfitur lengkap, dapat mencakup lebih dari 1000 maksud pengguna rahasia, puluhan direktori untuk mengekstraksi entitas dan memasukkan integrasi dengan beberapa layanan eksternal. Oleh karena itu, pengembangan dilakukan secara bersamaan oleh beberapa ahli bahasa dan pengembang, menggunakan sistem kontrol versi dan alat untuk pengujian stres, dengan keterlibatan copywriter dan desainer UX.

Awalnya, kami yakin bahwa pendekatan komprehensif untuk pengembangan adalah apa yang dibutuhkan pengembang dan bisnis chatbot, karena membuat chatbot yang cerdas bukanlah tugas yang mudah dan padat sumber daya. Kami membangun arsitektur yang agak rumit untuk menutup semua kasus yang mungkin, dan bahkan membuat editor visual di platform untuk memudahkan pelanggan mengelola logika chatbot. Tetapi cukup sering, dalam praktiknya, kami terus menghadapi kenyataan bahwa bahkan bisnis yang sudah dipersiapkan dengan anggaran yang sudah direncanakan untuk otomasi, lambat untuk diimplementasikan dan tidak memahami bagaimana menyusun spesifikasi teknis dengan benar dan merencanakan implementasi AI dengan benar dalam prosesnya.

Kami ingin membuatnya lebih mudah bagi perusahaan untuk mulai bekerja dengan kecerdasan buatan dan pada saat yang sama memberi mereka alat yang akan segera memungkinkan kami untuk mulai menguji teknologi. Pada saat yang sama, produk perlu untuk dapat memahami bahasa alami (permintaan pengguna biasa) dan tidak menjawab satu suku kata untuk pertanyaan umum ("Saya tidak mengerti, ulangi pertanyaan Anda"). Secara umum, perlu untuk menyembunyikan "di balik tudung" teknologi keren kami dari platform perusahaan untuk memfasilitasi masuknya bisnis Rusia ke dunia kecerdasan buatan. Secara umum, itu perlu untuk membuat produk untuk pengguna sehingga Anda dapat mengkonfigurasi, menyentuh, melihat cara kerjanya. Oleh karena itu, bagian dalam platform disembunyikan di bawah cangkang desainer.

Apakah kami berhasil atau tidak, baik bagi Anda untuk menilai (tautan untuk pendaftaran desainer dan korespondensi dalam komunitas ada di akhir artikel). Akibatnya, produk Aimylogic muncul - seorang desainer visual tempat Anda dapat mengumpulkan chatbot cerdas yang memahami bahasa alami dari blok sederhana: replika pengguna, respons bot, panggilan ke sistem eksternal. Bekerja dengan Aimylogic tidak memerlukan pengetahuan tentang platform inti DSL, keterampilan dalam menulis pola untuk mengenali maksud dan uji otomatis.

Kasus: membuat chatbot untuk departemen SDM


Hari ini kita akan melihat kasus yang cukup sederhana: membuat chatbot untuk HR, yang berkonsultasi dengan karyawan tentang proses internal perusahaan melalui Telegram, situs web perusahaan atau Yandex.Alisa, dapat menerima aplikasi (untuk liburan, VHI, dll.) Dan mengirimkannya ke papan di Trello.

Seluruh proses dapat dibagi ke dalam tahapan berikut:

  1. membuat skrip untuk dialog bot SDM dengan karyawan perusahaan;
  2. konfigurasi pengumpulan permintaan pengguna (kami akan menggunakan Trello);
  3. pengujian bot;
  4. publikasi bot di Telegram, di situs web atau di Yandex.Alice.

Jadi, hal pertama yang pertama ...

1. Membuat skrip untuk komunikasi dengan karyawan


Sekarang di Aimylogic sudah ada template bot untuk HR dengan dialog tentang proyek gaji, liburan, asuransi dan masalah lain yang bot akan segera mengerti. Dengan demikian, Anda dapat menggunakan skrip yang sudah jadi dan, jika Anda mau, ubah sendiri. Kami menjelaskan bagaimana templat ini dibuat.

Proses membuat skrip dalam Aimylogic bermula dengan menambahkan blok dan membuat transisi di antara mereka.

Tangkapan layar di atas menunjukkan bahwa skrip bot dimulai dengan salam. Untuk menyambut pengguna dan menjelaskan pertanyaan apa yang bisa diajukannya pada bot, kami menggunakan blok teks. Anda dapat menambahkan gambar.

Setelah membuat blok dengan teks sambutan, kami akan menambahkan blok “Frasa” di bot kami, yang memungkinkan kami untuk melatih bot menggunakan contoh-contoh permintaan pengguna. Di blok "Frasa", tambahkan grup frasa terpisah yang sesuai dengan niat (intensi) pengguna dan isilah masing-masing dengan contoh-contoh pertanyaan.

Dalam contoh ini, kami akan membuat beberapa grup frasa:

  • koneksi proyek gaji;
  • Program perusahaan VHI;
  • aplikasi liburan;
  • mendapatkan sertifikat dari akuntansi dan sumber daya manusia;
  • kompensasi daya.

Dalam kelompok frasa, kami mendefinisikan serangkaian contoh berdasarkan permintaan nyata karyawan ke departemen SDM. Misalnya, untuk grup "VHI Corporate Program", ini akan menjadi permintaan:

  • Bagaimana cara mendaftar untuk DMS?
  • Saya tertarik dengan asuransi kesehatan
  • Bagaimana cara mendapatkan kebijakan VHI?

Kelompok frasa dapat dilengkapi dengan contoh kapan saja, yang memungkinkan Anda untuk segera melatih ulang bot selama operasi.

Untuk setiap grup frasa, buat urutan tindakan Anda sendiri dalam skrip. Misalnya, untuk grup frasa “Aplikasi Liburan”, kami menerapkan permintaan untuk data tambahan dari pengguna dan menyimpan aplikasinya di Trello untuk diproses lebih lanjut oleh karyawan departemen SDM.

Untuk meminta data dari pengguna, kami akan secara berurutan menambahkan blok ke skrip yang meminta nama karyawan dan tanggal liburan yang diinginkan.



Informasi yang dimasukkan oleh pengguna disimpan dalam variabel $ Name dan $ vacation_date dan tersedia untuk digunakan lebih lanjut dalam skrip. Misalnya, untuk mengirim data ini ke sistem eksternal.

Dalam versi Aimylogic yang akan datang untuk menerima data dari berbagai jenis (teks, angka, nomor telepon), blok yang sesuai akan muncul dalam sistem, yang secara otomatis memvalidasi input pengguna.

Sekarang kita akan mengkonfigurasi integrasi bot dengan Trello, di mana aplikasi yang dikumpulkan dari pengguna akan disimpan.

2. Menyimpan permintaan pengguna di Trello


Trello menyediakan API untuk integrasi dengan alat-alatnya, tetapi ada layanan, termasuk yang gratis, yang memungkinkan Anda untuk menggunakannya tanpa membuang waktu untuk menulis kode integrasi. Salah satu layanan tersebut adalah IFTTT. Chatbot yang kami buat di Aimylogic mengirimkan data ke IFTTT dan muncul di Trello.

Untuk melakukan ini, buat applet Webhook di IFTTT, yang, ketika menerima permintaan HTTP dari bot, akan meletakkan data dari badan permintaan ke papan di Trello. Dalam skrip bot dalam Aimylogic, tambahkan blok "permintaan HTTP", yang akan mengirimkan data ke applet.

Pembuatan Applet


Di antarmuka IFTTT, buat applet baru (Applet Saya -> Applet baru) atur pemicu untuk applet untuk memicu (dengan mengklik + ini ). Dalam pencarian yang muncul, ketik "webhook" dan pilih pemicu yang ditemukan dengan nama "Webhooks".

Klik "Terima permintaan web" dan tetapkan nama acara pemicu (tulis dalam bahasa Latin tanpa spasi di bidang "Nama Acara"). Klik pada "Buat pemicu".

Sekarang kita mengkonfigurasi tindakan yang akan terjadi ketika bot mengirimkan permintaan untuk applet dari script yang baru saja kita konfigurasikan - klik “ that ” di applet.

Mengonfigurasi Integrasi IFTTT dengan Trello


Setelah mengklik " itu " di IFTTT, pencarian muncul lagi. Kami mencari Trello di sana dan masuk ke layanan ini.

Setelah mengeluarkan izin untuk mengakses akun Anda di Trello, pilih tindakan "Buat kartu" di IFTTT.

Selanjutnya, tunjukkan papan tempat kartu akan muncul, di bidang "Judul" (nama kartu), tandai "Value1" - ini adalah variabel dari badan permintaan dari bot di mana esensi dari aplikasi karyawan akan dikirim ("<Nama karyawan> ingin pergi berlibur < masa liburan> ”).
Klik "Buat Tindakan" ketika semuanya dikonfigurasi sesuai kebutuhan. Berikutnya adalah "Selesai."
Sekarang, setiap kali bot mengirimkan permintaan HTTP ke webhook yang kami konfigurasi, IFTTT akan mengambil variabel "Value1" dari permintaan ini dan secara otomatis menambahkan kartu dengan nama itu ke Trello.

Mendapatkan alamat webhook di IFTTT


Mungkin ini adalah bagian paling non-sepele dari integrasi.

Klik menu “Cari” di bagian atas halaman IFTTT. Selanjutnya, cari "webhook". Klik pada Webhooks yang ditemukan. Selanjutnya, klik "Pengaturan".

Halaman terbuka dengan URL. Ini bukan alamat webhook! Anda perlu menyalin URL ini dan membukanya di tab browser baru.


Halaman pengujian webhook terbuka. Di sini Anda dapat mengisi nama peristiwa pemicu (salah satu yang kami pikirkan saat membuat applet di bagian "Membuat applet") dan nilai variabel "Value1". Sekarang jika Anda mengklik "Uji itu", maka kartu dengan nilai variabel "Value1" di header akan ditambahkan ke Trello.


Sekarang salin URL webhook yang dihasilkan (di baris terakhir, di atas tombol "Test it") - ini adalah alamat webhook yang harus kita gunakan dalam permintaan HTTP di bot.

Mengkonfigurasi permintaan HTTP dalam Aimylogic


Kami menambahkan blok dengan permintaan HTTP ke skrip ketika kami telah mengumpulkan data dari pengguna (dalam variabel $ Name dan $ vacation_date).

Dalam pengaturan permintaan HTTP, sebagai URL, kami menentukan alamat webhook yang kami terima dari IFTTT.


Kami menempatkan nilai variabel "Value1" di badan permintaan - kami membentuk teks di dalamnya dengan variabel $ Name, di mana nama pengguna disimpan, dan juga variabel $ vacation_date, di mana tanggal liburan disimpan. Artinya, harus berubah seperti ini:

{ "value1" : "$Name     $vacation_date" } 

Sekarang, ketika menjalankan permintaan ini, bot akan menggantikan nilai $ Name dan $ vacation_date di badan permintaan dan mengirimkan permintaan ke applet IFTTT. Itu, pada gilirannya, akan membuat kartu di papan Trello.

3. Menguji bot


Setelah menyiapkan skrip dialog, Anda dapat segera memeriksanya dalam Aimylogic dengan mengeklik tombol "Tes". Widget akan muncul di layar tempat Anda dapat mengobrol dengan bot. Widget mendukung input teks dan menggunakan tombol, jika disediakan oleh skrip. Sebagai contoh, di Alice biasanya menawarkan tombol pengguna sebagai petunjuk untuk membiasakannya dengan kemampuan keterampilan.

Pada tahap ini, Anda dapat men-debug dialog dan memeriksa seberapa benar dan dapat dimengerti tanpa menggunakan alat prototyping tambahan.

Harap dicatat bahwa, berkat teknologi NLU (termasuk sinonim yang cocok, bentuk kata normal, representasi vektor dan struktur kueri sintaksis), bot tidak hanya akan memahami frasa yang cocok dengan contoh, tetapi juga dekat dengan makna. Jika ini tidak terjadi, Anda dapat melatih bot dengan memperluas daftar contoh yang relevan.

Sekarang chatbot dapat berkomunikasi dengan karyawan dan menyimpan data di Trello. Tetap menempatkan bot di saluran yang diinginkan.

4. Publikasikan chatbot


Menggunakan Aimylogic, bot yang dibuat dapat ditempatkan di satu atau beberapa saluran. Saat ini tersedia dalam Aimylogic: widget obrolan untuk situs, Telegram atau asisten suara Yandex.Alice.

Segera kami akan menambahkan saluran baru: VK, Facebook, Slack, dan lainnya. Di mana-mana skenario perilaku bot SDM akan hampir sama, dan aplikasi dari semua saluran akan masuk ke papan Trello.


Bergantung pada saluran yang dipilih, Aimylogic akan secara otomatis menghasilkan skrip untuk dimasukkan ke situs web atau alamat webhook untuk menentukan dalam Yandex.Dialogs. Untuk menggunakan Telegram, cukup untuk menunjukkan token bot Telegram Anda yang diterima dari BotFather.

Aimylogic menampilkan semua saluran yang terhubung ke bot dan statusnya.

Di mana saya bisa mengujinya?


Kami membuka Aimylogic dalam mode beta. Jujur, ini masih "lembab", tetapi Anda dapat mengujinya dan mencoba berbagai kasus: membuat skrip dialog di saluran yang berbeda, bereksperimen dengan menghubungkan sistem eksternal, membangun bot FAQ dengan pemahaman tentang bahasa alami.

Rilis versi berikutnya akan mencakup direktori entitas bernama, yang akan secara signifikan memperluas kemampuan produk.

Kami mulai membuat Aimylogic, berusaha membuatnya lebih mudah bagi pengguna untuk membuat bot sederhana di platform kami, sambil mempertahankan akses ke fungsionalitas utamanya - NLU, kemudahan integrasi dengan sistem dan saluran eksternal. Kami akan terus mengembangkan produk, meningkatkan UX-nya, melempar fitur-fitur baru yang bermanfaat dari platform utama. Kami menantikan umpan balik dan saran.

Anda dapat menguji platform di sini: app.aimylogic.com

Anda dapat mengobrol dengan kami atau pengembang lain di saluran telegram . Atau cukup ketik "Aimylogic" di pencarian Telegram.

Source: https://habr.com/ru/post/id412557/


All Articles