Ekosistem di sekitar Google Assistant tumbuh dengan cepat. Pada bulan April 2017, hanya 165 aksi yang tersedia untuk pengguna, dan hari ini hanya dalam bahasa Inggris ada lebih dari 4.500. Seberapa beragam dan menarik sudut bahasa Rusia dari alam semesta ini tergantung pada pengembangnya. Dmitry Chechetkin, direktur proyek-proyek strategis di Just AI dan penulis
"Ya, Tuanku," salah satu game paling populer untuk Asisten tidak hanya di Rusia tetapi juga di dunia (lebih dari 240 ribu orang telah memainkannya), berbagi peretasan kehidupan yang penting untuk membuat game aksi untuk Asisten Google. Mengapa memisahkan kode dan konten dari skrip? Apa yang harus diingat ketika bekerja pada antarmuka percakapan? Secara umum, kami memahami bagaimana cara menangkis aksi mimpi.

Kocok tetapi tidak campur: peran skrip, konten, dan kode
Setiap aplikasi suara terdiri dari tiga komponen - skrip interaktif, konten yang berinteraksi dengan tindakan, dan logika yang dapat diprogram, yaitu kode.
Skenario mungkin adalah hal utama. Ini menggambarkan frasa apa yang bisa diucapkan pengguna, bagaimana suatu tindakan harus bereaksi terhadap mereka, apa yang menyatakannya, dan bagaimana tepatnya responsnya. Saya telah pemrograman selama 12 tahun, tetapi ketika datang untuk menciptakan antarmuka percakapan, saya menggunakan berbagai alat visual.
Sebagai permulaan, tidak ada salahnya untuk menggambar garis besar skrip sederhana di atas kertas. Jadi, Anda memutuskan apa dan apa yang mengikuti dialog. Kemudian Anda dapat mentransfer skrip ke beberapa produk untuk memvisualisasikannya. Saya menggunakan konstruktor visual kami dengan NLU
Aimylogic (
cara membuat tindakan untuk Asisten Google di Aimylogic ) untuk melihat bagaimana semua transisi dalam dialog saya akan berfungsi, menguji dan memvalidasi hipotesis itu sendiri dan gagasan tentang apa yang ingin saya terapkan. Di Aimylogic, Anda bisa membuat skrip tanpa keahlian pemrograman yang mendalam, dan Anda bisa langsung menguji aksinya. Google sendiri menawarkan
Dialogflow untuk membuat dialog yang disesuaikan, dan untuk skrip sederhana dan pendek yang tidak memerlukan pemahaman luas tentang bahasa,
Actions SDK .

Logika yang dapat diprogram seringkali diperlukan. Misalnya, situs Anda mungkin terlihat keren, tetapi agar "tahu caranya", ia harus merujuk ke kode di server - dan kode tersebut dapat menghitung sesuatu, menyimpan, dan mengembalikan hasilnya. Hal yang sama dengan skrip tindakan. Kode harus berjalan dengan lancar, dan lebih baik jika sepenuhnya gratis. Hari ini tidak perlu membayar ribuan dolar sehingga kode 50, 100, 1000 baris tersedia untuk tindakan Anda 24/7. Saya menggunakan beberapa layanan untuk ini sekaligus: Fungsi Cloud, Heroku, Webtask.io, Amazon Lambda. Mesin virtual gratis tersedia di Google Cloud Platform.
Script dapat mengakses kode menggunakan panggilan http paling sederhana yang kita semua terbiasa. Tetapi pada saat yang sama, kode dan skrip tidak tercampur. Dan ini bagus, karena Anda dapat memperbarui kedua komponen ini, memperluasnya sesuka Anda, tanpa menyulitkan pekerjaan pada tindakan.

Komponen ketiga adalah konten. Ini adalah data yang dapat berubah sepanjang waktu, tanpa memengaruhi struktur skrip itu sendiri. Misalnya, pertanyaan kuis atau episode di game
Ya Ya kami. Jika konten hidup dengan skrip atau dengan kode, maka skrip seperti itu akan menjadi lebih rumit. Dan dalam hal ini, apa pun alat yang Anda gunakan untuk membuat tindakan, bekerja dengannya akan tetap merepotkan Anda. Oleh karena itu, saya sarankan menyimpan konten secara terpisah: dalam database, dalam file di penyimpanan cloud, atau dalam tabel yang skrip juga dapat mengakses melalui API untuk menerima data dengan cepat. Memisahkan konten dari skrip dan kode, Anda dapat menarik orang lain untuk mengerjakan tindakan - mereka akan dapat mengisi ulang konten secara independen dari Anda. Dan pengembangan konten sangat penting, karena pengguna mengharapkan dari tindakan, yang ia kembalikan dari waktu ke waktu, konten segar dan beragam.

Bagaimana cara menggunakan tabel biasa di cloud agar tidak menyimpan semua konten dalam skrip itu sendiri? Misalnya, dalam game
"Pertama atau Kedua" kami menggunakan spreadsheet Excel berbasis cloud di mana salah satu peserta proyek dapat menambahkan pertanyaan dan jawaban baru untuk tindakan tersebut. Script Aimylogic mengakses tabel ini menggunakan satu permintaan http melalui API khusus. Seperti yang Anda lihat, skrip itu sendiri kecil - karena skrip tidak menyimpan semua data dari tabel, yang diperbarui setiap hari. Dengan demikian, kami memisahkan skrip interaktif dari konten, yang memungkinkan kami untuk bekerja dengan konten secara independen dan secara kolektif mengisi kembali skrip dengan data baru. Omong-omong, 80 ribu orang sudah memainkan game ini.
Daftar Periksa: Hal-hal yang Harus Diingat Ketika Membuat Antarmuka Percakapan
Setiap antarmuka memiliki komponen yang berinteraksi dengan pengguna: daftar, tombol, gambar, dan banyak lagi. Antarmuka percakapan ada sesuai dengan hukum yang sama, tetapi perbedaan mendasar adalah bahwa seseorang berkomunikasi dengan program melalui suara. Dari sini kita harus membangun, menciptakan tindakan kita sendiri.
Tindakan yang benar seharusnya tidak dapat melakukan segalanya di dunia. Ketika seseorang berbicara dengan sebuah program, dia tidak dapat menyimpan banyak informasi di kepalanya (ingat bagaimana Anda mendengarkan penawaran pribadi bertingkat dari bank atau operator seluler melalui telepon). Menyerahkan berlebihan dan fokus pada satu, tetapi fungsi yang paling penting dari layanan Anda, yang akan paling mudah dilakukan menggunakan suara Anda, tanpa menyentuh layar.
Misalnya, Anda memiliki layanan tiket. Anda tidak boleh berharap bahwa klien akan memutar skenario yang biasa dengan suara - mencari tiket sesuai dengan lima atau enam kriteria, memilih antara operator, membandingkan dan membayar. Tetapi aplikasi yang memberi tahu Anda harga minimum ke arah yang dipilih mungkin berguna: ini adalah operasi yang sangat cepat, dan nyaman untuk melakukannya dengan suara tanpa membuka situs, tanpa harus melalui skrip "pengisian formulir" setiap kali (saat Anda mengisi kolom dan memilih filter) )
Tindakan adalah tentang suara, bukan tentang layanan secara keseluruhan. Pengguna tidak boleh menyesal bahwa ia meluncurkan tindakan di Asisten, dan tidak masuk, misalnya, ke dalam aplikasi atau situs. Tetapi bagaimana memahami bahwa seseorang tidak dapat melakukannya tanpa suara? Untuk memulai, coba ide tindakan pada diri Anda sendiri. Jika Anda dapat dengan mudah melakukan tindakan yang sama tanpa suara, tidak akan ada gunanya. Salah satu aplikasi Asisten pertama saya adalah
Yoga for the Eyes . Ini adalah pelatih pribadi virtual yang membantu melakukan latihan visi. Tidak ada keraguan bahwa diperlukan suara di sini: mata Anda sibuk dengan latihan, Anda santai dan fokus pada rekomendasi oral. Mengintip memo itu, mengalihkan perhatian dari pelatihan, akan merepotkan dan tidak efektif.
Atau di sini adalah contoh skrip yang gagal untuk aplikasi suara. Seringkali saya mendengar tentang bagaimana toko online lain ingin menjual sesuatu melalui asisten virtual. Tetapi mengisi keranjang dengan suara tidak nyaman dan tidak praktis. Dan tidak mungkin klien akan mengerti mengapa dia membutuhkannya. Tetapi kemampuan untuk mengulangi urutan terakhir dengan suara atau melemparkan sesuatu saat bepergian pada daftar belanja adalah masalah lain.
Ingat tentang UX. Tindakan harus dilakukan bersama dengan pengguna: menemani dan membimbingnya dalam proses dialog sehingga ia dengan mudah memahami apa yang harus dikatakan. Jika seseorang terhenti, ia mulai berpikir, "Dan apa selanjutnya?" Adalah sebuah kegagalan. Tidak perlu berharap bahwa pengguna Anda akan selalu merujuk pada bantuan. Kebuntuan perlu dipantau, dan membantu pengguna dengan pertanyaan atau kiat terkemuka. Dalam hal aksi suara, prediktabilitas bukanlah sifat buruk. Misalnya, dalam permainan kami "Ya, Tuanku", setiap kalimat berakhir sehingga peserta dapat menjawab "ya" atau "tidak". Dia tidak diharuskan untuk menciptakan sesuatu sendiri. Dan bukan itu ini permainan dasar. Hanya saja aturannya diatur sedemikian rupa sehingga semuanya sangat jelas bagi pengguna.
"Dia berbicara dengan baik!" Tindakan "mendengar" dengan baik terima kasih kepada Asisten, dan juga "berbicara" - terima kasih kepada pengembang skrip. Pembaruan terkini memberi Google Assistant opsi suara baru dan pelafalan yang lebih realistis. Semuanya keren, tetapi pengembang harus merenungkan frasa, struktur, bunyi, sehingga pengguna dapat memahami semuanya pertama kali. Atur tekanan, gunakan jeda untuk membuat frase tindakan terdengar manusiawi.
Jangan pernah memuat pengguna. Untuk game aksi menyuarakan umpan berita atau membacakan dongeng untuk anak-anak, ini bukan masalah. Tetapi mendengarkan pidato asisten suara tanpa henti ketika Anda ingin memesan pizza itu sulit. Cobalah untuk membuat replika singkat, tetapi tidak bersuku kata satu dan bervariasi (misalnya, untuk memikirkan beberapa pilihan untuk salam, perpisahan dan bahkan frasa jika asisten salah paham sesuatu). Dialog harus terdengar alami dan ramah, untuk ini Anda dapat menambahkan elemen pidato sehari-hari, emosi, kata seru untuk frasa.
Pengguna tidak memaafkan kebodohan. Orang sering menyalahkan asisten suara karena kebodohan. Dan pada dasarnya ini terjadi ketika seorang asisten atau aplikasi untuknya tidak dapat mengenali variasi yang berbeda dari frasa yang sama. Biarkan tindakan Anda sesederhana mengatur alarm, penting bahwa ia masih memahami sinonim, berbagai bentuk kata yang identik dalam artinya dan tidak gagal jika pengguna merespons dengan tidak terduga.
Bagaimana cara keluar dari situasi ketika suatu tindakan menolak untuk dipahami? Pertama, Anda dapat mendiversifikasi jawaban di Default Fallback Intent - gunakan tidak hanya standar yang disediakan, tetapi juga yang khusus. Dan kedua, Anda bisa melatih Fallback Intent dengan segala macam frase spam yang tidak terkait dengan game. Ini akan mengajarkan aplikasi tidak hanya untuk secara memadai menanggapi permintaan yang tidak relevan, tetapi juga meningkatkan keakuratan klasifikasi jenis permintaan lainnya.

Dan satu tip lagi. Jangan, jangan pernah membuat menu tombol dari tindakan Anda untuk membuat hidup pengguna lebih mudah - itu menjengkelkan, mengalihkan perhatian dari dialog dan membuat Anda meragukan perlunya menggunakan suara.
Ajarkan tindakan kesopanan. Bahkan aksi paling keren pun harus diakhiri. Idealnya, selamat tinggal, setelah itu kamu ingin kembali padanya lagi. Ngomong-ngomong, ingatlah bahwa jika tindakan tidak mengajukan pertanyaan, tetapi hanya menjawab pertanyaan pengguna, ia harus โmenutup mikrofonโ (jika tidak, aplikasi tidak akan dimoderasi dan tidak akan dipublikasikan). Dalam kasus Aimylogic, Anda hanya perlu menambahkan blok "Script Completion" ke skrip.
Dan jika Anda mengandalkan retensi, penting untuk memberikan aturan lain dengan nada yang baik dalam skrip: tindakan harus bekerja dalam konteks - ingat nama dan jenis kelamin pengguna dan tidak bertanya lagi apa yang telah ditentukan.
Cara bekerja dengan peringkat dan ulasan
Pengguna Google Assistant dapat memberi peringkat game aksi dan karenanya memengaruhi peringkatnya. Karena itu, penting untuk mempelajari cara menggunakan sistem peringkat untuk keuntungan Anda. Tampaknya Anda hanya perlu memberi pengguna tautan ke laman dengan tindakan Anda dan memintanya untuk meninggalkan ulasan. Tapi ada aturannya. Misalnya, jangan menawarkan untuk mengevaluasi tindakan dalam pesan pertama: pengguna harus memahami apa yang dia peringkat. Tunggu hingga aplikasi benar-benar memenuhi beberapa misi pengguna yang bermanfaat atau menarik, dan baru kemudian menawarkan untuk meninggalkan ulasan.

Dan lebih baik untuk tidak mencoba menyuarakan permintaan ini dengan suara Anda, dengan bantuan sintesis ucapan - Anda hanya menghabiskan waktu pengguna. Selain itu, ia mungkin tidak mengikuti tautan, tetapi mengatakan "Saya bertaruh lima," dan ini sama sekali tidak apa yang Anda butuhkan dalam kasus ini.
Dalam permainan "Ya, Tuanku", kami menampilkan tautan hanya untuk umpan balik setelah pengguna memainkan babak berikutnya. Dan pada saat yang sama kami tidak menyuarakan permintaan, tetapi hanya menampilkan tautan ke layar dan menawarkan untuk bermain lagi. Saya akan memperhatikan lagi - menawarkan tautan ini ketika pengguna dijamin menerima manfaat atau kesenangan. Jika Anda melakukan ini di waktu yang salah, ketika tindakan tidak memahami sesuatu atau melambat, Anda bisa mendapatkan umpan balik negatif.
Tiga Rahasia Asisten Google
- Penggunaan musik. Dari asisten suara dalam bahasa Rusia, hanya Google Assistant yang memungkinkan Anda menggunakan musik secara langsung dalam skrip tindakan. Pengaturan musik terdengar hebat dalam permainan aksi permainan, dan dari yoga ke musik ada sensasi yang sama sekali berbeda.
- Opsi pembayaran di dalam tindakan. Untuk pembelian dalam aplikasi, Google Assistant menggunakan platform Google Play. Kondisi untuk bekerja dengan platform untuk pembuat aksi game sama dengan pengembang aplikasi seluler - 70% transaksi dikurangkan ke pengembang.
- Moderasi . Agar berhasil moderasi, tindakan harus memiliki Kebijakan Pemrosesan Data Pribadi. Anda harus meletakkannya di sites.google.com , menunjukkan nama tindakan dan email Anda - sama dengan nama pengembang di konsol pengembang, dan menulis bahwa aplikasi tersebut tidak menggunakan data pengguna. Moderasi tindakan tanpa transaksi berlangsung 2-3 hari, tetapi moderasi aplikasi dengan pembayaran bawaan dapat memakan waktu 4-6 minggu. Lebih lanjut tentang prosedur peninjauan
Secara umum, coba tindakan kami
Yoga untuk Mata , permainan
Pertama atau Kedua dan
Ya, tuanku sendiri (dan transaksi akan segera muncul di dalamnya, dan akan lebih mudah bagi
tuanku untuk mempertahankan kekuatan dan kekayaannya!).
Dan kami juga mengembangkan Voice Quest
"Lovecraft World" untuk Google Assistant - tetapi itu diciptakan bukan dalam Aimylogic, tetapi pada Just AI Conversational Platform, solusi perusahaan profesional, jadi kami akan memberi tahu Anda tentang tindakan ini secara terpisah. Ini adalah drama interaktif dengan gaya mistis "Call of Cthulhu", di mana adegan disuarakan oleh aktor profesional, plot dapat dikontrol menggunakan suara dan melakukan pembayaran dalam game.