Beberapa bulan yang lalu, Yandex
meluncurkan beta dari asisten suaranya Alice , di mana ia membuka API-nya. Dan baru-baru ini saya menggulung semuanya ke publik. Sekarang jutaan pengguna dapat meluncurkan berbagai fungsi dan layanan dengan suara langsung dari pencarian mobile, navigator dan dari browser Yandex. Tidak mengherankan, ada lebih banyak keterampilan suara. Tetapi API dialog mengasumsikan bahwa Anda harus dapat memprogram, Anda harus memiliki server sendiri dengan HTTPS, dan selain itu Anda harus dapat memproses permintaan dalam bahasa alami ...
Sementara itu, Google telah lama memiliki perancang dialog yang gratis dan cukup nyaman yang disebut Dialogflow. Tentu saja, dia tidak mendukung protokol Alice di luar kotak, jadi idenya datang untuk memperbaiki situasi ini sehingga pengembang (dan tidak hanya) dengan cepat dan tanpa server menciptakan keterampilan untuk Alice yang dapat memahami ucapan alami dan konteks dialog.
Apa itu Dialogflow?
Dialogflow adalah layanan online dari Google yang memungkinkan Anda untuk membuat bot obrolan sendiri atau
fungsi untuk asisten Google (ini disebut
agen ). Sudah ada beberapa artikel bagus tentang Habré, yang membahas alat utama produk ini.
Ini salah satunya .
Bahkan, Dialogflow dapat mencocokkan frase pengguna dalam bahasa alami (dan juga dalam bahasa Rusia) dengan beberapa makna "non-linguistik" (disebut
niat ) dan menjawab sesuatu. Selain itu, ia juga memegang konteks dialog sehingga kalimat selanjutnya dapat bereaksi dalam konteks pernyataan sebelumnya.
Alat ini cukup sederhana untuk dikelola, dan masih menyimpan semua statistik permintaan, sehingga Anda dapat melatih kembali agen dengan maksud baru atau mengisi yang sudah ada dengan satu klik. Sebenarnya, beginilah pelatihan terjadi - Anda hanya menunjukkan contoh permintaan yang terkait dengan maksud tertentu di agen Anda, dan Dialogflow secara otomatis membuat model dan memahami pengguna dengan lebih baik dan lebih baik. Dia juga dapat memilih beberapa entitas dari frasa, misalnya, tanggal atau kota, jika Anda memerlukannya untuk melakukan beberapa fungsi.
Kenapa itu Alice?
Alice
memiliki API yang mirip dengan API telegram. Dengan kata lain, untuk membuat keterampilan bagi Alice, Anda harus meningkatkan server yang akan menerima permintaan teks dari Alice dari pengguna dan merespons dengan data dalam format yang diinginkan. Segalanya tampak sederhana, tetapi untuk menciptakan bahkan ketrampilan yang paling sederhana, Anda perlu mempelajari protokol Alice, meningkatkan server publik Anda dengan HTTPS, menulis kode yang dapat memahami bahasa manusia dan mempertahankan konteks percakapan.
Agar Anda tidak harus melakukan semua langkah ini setiap saat, tetapi pada saat yang sama jika Anda bukan seorang programmer, dan Anda benar-benar harus mendapatkan keterampilan yang benar, Anda dapat menggunakan Dialogflow.
Dialogflower

Hanya Dialogflow tidak mendukung protokol Alice, jadi Anda tidak bisa hanya mengubah agen menjadi suatu keterampilan. Untuk ini, layanan
dialogflower.com dibuat, yang pada dasarnya adalah adaptor - ini mengimplementasikan protokol Alice di satu sisi dan terhubung ke agen Dialogflow Anda di sisi lain. Dan dengan demikian mengubah agen menjadi keterampilan. Tanpa server dan kode.

Buat agen

Jadi, sekarang kita hanya bisa fokus pada logika dialog itu sendiri di agen kami. Pertama, Anda perlu membuat agen ini di situs
dialogflow.comSetelah masuk, kami akan diminta untuk datang dengan nama agen dan memilih bahasanya. Hanya huruf Latin yang dapat digunakan dalam nama, dan ingat untuk beralih bahasa ke bahasa Rusia.
Setelah itu, Anda dapat menambahkan maksud - topik yang akan dipahami agen kami dan meresponsnya.
Intensi sambutan standar
Niat ini ada secara default di setiap agen. Itu dipicu bukan pada beberapa frasa pengguna, tetapi pada acara
sambutan . Yaitu, ketika pengguna meluncurkan skill Anda di Alice dengan frase seperti "Luncurkan skill adalah skill saya yang paling diperlukan." Maka masih belum ada perintah dari pengguna, dan agen sebagai respons, sebagai aturan, harus dengan mudah memberi tahu apa yang bisa dilakukan selanjutnya.
Jika Anda mengklik Default welcome intent dalam daftar intents, maka di bagian bawah halaman Anda dapat menambahkan Responses - jawaban dari mana agen secara acak memilih satu setiap kali dan mengirimkannya ke Alice.
Alice masih tahu cara menunjukkan tombol dan tautan, maka kami akan menunjukkan cara menambahkannya ke jawabannyaKlik
Tambahkan respons - Respons teks dan tambahkan opsi respons teks.
Intensi Pengembalian Default

Dan niat ini dipicu ketika pengguna mengatakan frasa bahwa agen tidak dapat menghubungkan ke salah satu maksud yang ada. Yaitu, ketika agen sama sekali tidak memahami permintaan pengguna. Di sini Anda juga dapat mengatur jawaban yang akan diberikan Alice ketika kami tidak tahu harus menjawab apa.
Kami merespons replika
Jika Anda mengklik tanda plus di sebelah kata Intents di menu sebelah kiri, Anda dapat menambahkan maksud baru dan menentukan untuk itu daftar frasa yang Anda butuhkan untuk menjawab sesuatu. Dalam daftar
frasa Pelatihan , tambahkan frasa yang cenderung diucapkan pengguna. Semakin banyak dari mereka, semakin baik.
Tentu saja, Dialogflow mengerti bahasa Inggris lebih baik daripada bahasa Rusia. Karena itu, jangan berharap dia mengerti semua frasa sinonim yang sesuai dengan artinya. Dalam hal ini, analog Aimylogic kami berfungsi lebih baik, yang akan saya bicarakan di bawah ini.Jangan lupa untuk menambahkan jawaban pada niat Anda dan klik tombol
Simpan . Tanpanya, tidak akan ada yang berhasil.
Anda dapat mengujinya di sini - di sisi kanan layar. Tulis frasa pengujian Anda di bidang Coba sekarang dan lihat jawaban agen Anda.
Ciptakan keterampilan
Sekarang semuanya siap untuk mengikat agen kami yang diciptakan untuk Alice dan mengujinya di konsol Dialog Yandex. Untuk melakukan ini, pergi ke
dialogflower.com dan klik
Buat keterampilan . Di jendela yang muncul, tentukan
token akses Klien dari agen Anda. Itu dapat ditemukan di halaman pengaturan agen di Dialogflow. Klik
Selesai dan dalam sedetik Anda akan memiliki
URL Webhook yang dengannya kami akan pergi ke Dialog Yandex.

Kemudian buat keterampilan baru untuk Alice dan tentukan URL Webhook ini di pengaturannya. Selain itu, untuk tes Anda hanya perlu membuat nama keterampilan, semua bidang lainnya belum diperlukan. Klik
Simpan dan buka tab
Pengujian . Di sini Anda dapat menulis sesuatu dan memverifikasi bahwa keterampilan Anda berfungsi seperti yang diharapkan.
Kami meningkatkan fungsionalitasnya
Sekarang keahlian kami sudah siap, dan semua perubahan hanya akan mempengaruhi agen di Dialogflow. Cukup tambahkan dan ubah maksud, jangan lupa klik tombol Simpan dan uji hasilnya di konsol Yandex.Dialogs.
Bagaimana memahami konteksnya
Dialogflow dapat mengaitkan maksud sehingga keterampilan Anda dapat merespons dengan tepat frasa yang diucapkan dalam konteks percakapan. Untuk melakukan ini, cukup tambahkan maksud ke niat lain. Untuk melakukan ini, buka daftar maksud dan arahkan salah satu dari mereka. Pesan
Tambahkan maksud tindak lanjut yang samar muncul di sebelah kanan. Klik di atasnya dan tambahkan maksud yang akan berfungsi dalam konteks yang sebelumnya.
Misalnya, jika Anda memiliki niat yang merespons frasa seperti "Apa cuaca", maka Anda dapat menambahkan maksud dengan frasa seperti "besok". Maka frasa ini akan diproses oleh agen hanya jika pengguna pertama kali diminta untuk memberi tahu tentang cuaca.
Cara menambahkan tombol ke jawaban Alice
Alice tidak hanya dapat merespons dengan teks, tetapi juga menampilkan tombol dan tautan. Dengan mengklik tombol, pengguna, seolah-olah, membentuk permintaan baru, hanya tanpa mengucapkannya dan tanpa mengetik.
Untuk menambahkan tombol ke respons, Anda perlu menulis sepotong JSON dalam format yang dimengerti Alice. Untuk melakukan ini, buka maksud yang diinginkan, buka jawaban di sana dan klik
Tambah Tanggapan - Muatan Kustom . Di sini Anda dapat menentukan jawaban dari API Alice. Misalnya, untuk menambah tombol, tulis
{"buttons": [ {"title": " ", "hide": true} ]}
Di sini satu tombol ditambahkan, yang akan mengirim Alice permintaan "Teks Permintaan" ketika ditekan dan secara otomatis akan menghilang dari riwayat obrolan setelah itu. Dan ini adalah contoh lain
{"buttons": [ {"title": " ", "hide": true}, {"title": " ", "url": "https://dialogflower.com"} ]}
Dua tombol akan ditambahkan di sini, salah satunya adalah tautan ke dialogflower.com
Secara umum, Anda dapat menulis JSON apa pun dalam Payload dalam format bidang "respons" dari protokol Alice .
Dimana logikanya?
Tentu saja, Anda tidak selalu perlu menjawab dengan frasa acak, tetapi statis. Untuk menambahkan beberapa logika, Anda harus menulis sedikit kode. Baik, atau banyak, terserah Anda. Tetapi Dialogflow memungkinkan Anda melakukan ini tanpa menyewa server.
Buka tab
Pemenuhan dan nyalakan sakelar Dinonaktifkan. Di sini Anda dapat menulis kode Javascript yang akan merespons sesuai kebutuhan terhadap maksud yang dipicu dan melakukan semacam logika sebelum respons dikirimkan kepada pengguna. Sebenarnya, jawabannya sendiri dapat langsung didefinisikan ulang dalam kode.
Di sini saya tidak akan menjelaskan bagaimana dan apa yang harus dilakukan dengan kode ini, saya hanya akan memberikan
contoh yang bagus tentang github , di mana agen dapat membuat acara di kalender Google, merekam pengguna untuk memperbaiki sepeda dalam jam bebas.
Kelebihan utama di sini adalah Anda tidak perlu menaikkan server terpisah untuk menerapkan semacam logika untuk agen Anda. Google akan melakukan segalanya untuk Anda, dan gratis.
Pada akhirnya
Alice digunakan oleh semakin banyak orang di negara ini. Dia bekerja di pencarian, dan di navigator, dan di browser, dan segera
kolom beranda dengan Alice on board akan mulai dijual.
Alice memiliki API dan setiap hari semakin banyak keterampilan suara yang muncul untuknya.
Dialogflow dari Google menyediakan alat yang baik untuk mengembangkan aplikasi suara bahkan tanpa keterampilan pemrograman dan dengan kemungkinan menjalankan kode Anda di server Google secara gratis.
Dialogflower menghubungkan agen di Dialogflow dengan Alice sehingga Anda dapat dengan cepat membuat keterampilan dan bereksperimen.
Jadi apa masalahnya? Selain itu, Dialogflower sebebas Dialogflow dengan Alice.
Terbang di salep
Ini semua bunga interaktif, tetapi tidak semuanya begitu indah di dunia nyata. Tentu saja, Dialoglfow adalah alat yang keren, tetapi dalam bahasa Rusia itu tidak berfungsi sebaik dalam bahasa Inggris. Sejauh ini, dia tidak mengerti banyak sinonim, dan mereka harus dibunuh secara manual saat membuat maksud.
Kerugian lain adalah bahwa dalam Dialogflow cukup sulit untuk mengelola bahkan dialog yang sedikit rumit. Anda tidak dapat memeriksanya, karena maksudnya hanyalah daftar datar.
Hanya beberapa hari yang lalu
, sebuah alat dengan fungsi serupa
diperkenalkan di Habré, yang juga tahu bagaimana memahami ucapan Rusia alami, tetapi apakah itu jauh lebih baik, memahami sinonim, bahkan jika Anda melatih bot hanya dengan beberapa frasa. Belum ada banyak fitur Dialogflow, seperti ekstraksi entitas atau statistik. Tetapi ada editor visual keren di mana seluruh proses dialog dengan pengguna segera terlihat. Dan Anda dapat menambahkan logika tanpa menulis kode.
Namun, pengembang selalu menang dalam persaingan yang ketat antara produsen alat pengembang.