Buat Tindakan Percakapan untuk Asisten Google

Actions on Google adalah platform pengembang yang memungkinkan Anda membuat perangkat lunak untuk memperluas fungsi Asisten Google, asisten pribadi virtual Google, di lebih dari 1 miliar perangkat, termasuk speaker pintar, ponsel, mobil, TV, headphone, dan banyak lagi. Pengguna melibatkan Asisten dalam percakapan untuk menyelesaikan berbagai hal, seperti membeli bahan makanan atau memesan tumpangan. (Untuk daftar lengkap tentang kemungkinan, lihat direktori Actions .)

Sebagai pengembang, Anda dapat menggunakan Actions on Google untuk dengan mudah membuat dan mengelola pengalaman percakapan yang menyenangkan dan efektif antara pengguna dan layanan pemenuhan pihak ketiga Anda sendiri. Codelab mencakup konsep tingkat pemula untuk mengembangkan dengan Actions on Google. Anda tidak memerlukan pengalaman sebelumnya dengan platform untuk menyelesaikan codelab.

Apa yang akan Anda bangun

Anda akan membuat Tindakan Percakapan sederhana dengan fitur-fitur berikut:

  • Pengguna bisa memulai percakapan dengan secara eksplisit memanggil Action by name Anda, yang kemudian merespons dengan pesan salam.
  • Setelah melakukan percakapan, pengguna diminta untuk memberikan warna favorit mereka. Tindakan Anda mem-parsing masukan pengguna untuk mengekstrak informasi yang dibutuhkannya (yaitu, parameter warna).
  • Jika warna disediakan, Tindakan Anda memproses parameter warna untuk membuat "angka keberuntungan" secara otomatis untuk dikirim kembali ke pengguna dan percakapan berakhir.
  • Jika tidak ada warna yang diberikan, Tindakan Anda akan mengirimkan perintah tambahan kepada pengguna hingga parameter diekstrak.
  • Pengguna dapat meninggalkan percakapan secara eksplisit kapan saja.

157f022c342b8d61.png

Apa yang akan Anda pelajari

  • Bagaimana Tindakan bekerja
  • Cara membuat proyek di Actions Console
  • Cara membuat agen Dialogflow
  • Bagaimana mendefinisikan frase pelatihan di Dialogflow
  • Cara menguji Tindakan Anda di Simulator Konsol Tindakan
  • Cara menggunakan pengisian slot Dialogflow dan entitas sistem
  • Cara mengimplementasikan pemenuhan Action menggunakan Actions on Google client library dan Dialogflow inline editor

Apa yang Anda butuhkan

Alat berikut harus ada di lingkungan Anda:

Opsional: Dapatkan kode contoh

Anda bisa mendapatkan kode proyek lengkap untuk codelab dari repositori GitHub .

Jadi, bagaimana cara kerja Action?

Untuk memulai percakapan, pengguna perlu menjalankan Tindakan Anda melalui Asisten. Pengguna mengucapkan atau mengetik frasa seperti, "Hai Google, bicaralah dengan Google IO". Itu memberi tahu Asisten nama Tindakan yang akan diajak bicara.

Sejak saat itu, pengguna berbicara dengan Tindakan Anda dan memberikan masukan. Percakapan berlanjut sebagai dialog dua arah hingga maksud pengguna terpenuhi atau percakapan selesai.

bdaaf2db85f0134f.png

Lihat apa yang terjadi di balik layar selama percakapan.

5e1b1b6b5dca7a4c.png

  • Tindakan Anda sepenuhnya berjalan di awan, bahkan saat pengguna berbicara dengan mereka di ponsel, perangkat rumah pintar, atau jam tangan.
  • Setiap Tindakan mendukung maksud tertentu dan memiliki pemenuhan terkait yang memproses maksud tersebut.
  • Perangkat pengguna mengirimkan ucapan pengguna ke Assistant, yang mengarahkannya ke layanan pemenuhan Anda melalui permintaan HTTP POST.
  • Pemenuhan Anda mengetahui respons yang relevan dan mengirimkannya kembali ke Asisten, yang pada akhirnya mengembalikannya kepada pengguna.

Anda membuat Actions dengan membuat proyek Actions dan menentukan dua hal untuk setiap tindakan — maksud dan pemenuhan .

Periksa setelan izin Google Anda

Untuk menguji Tindakan yang akan Anda buat untuk codelab ini, Anda harus mengaktifkan izin yang diperlukan.

  1. Buka halaman Kontrol Aktivitas .
  2. Masuk dengan Akun Google Anda, jika Anda belum melakukannya.
  3. Pastikan izin berikut diaktifkan:
  • Informasi Perangkat
  • Aktivitas Suara & Audio
  • Aktivitas Web & Aplikasi (Anda juga harus mengaktifkan opsi untuk Menyertakan riwayat Chrome .)

Buat proyek Actions

Project Actions adalah container untuk Action atau Actions Anda dengan metadata (nama, deskripsi, dan kategori) yang menjadi listingan direktori Actions Anda.

fc02c549213d2288.png

Untuk mulai membuat Actions, Anda perlu membuat proyek Actions sebagai berikut:

  1. Buka Actions Console .
  2. Klik Proyek baru .
  3. Ketik nama Proyek , seperti "actions-codelab". (Nama ini untuk referensi internal Anda. Nanti, Anda dapat menyetel nama eksternal untuk proyek Anda.)

f91664aa75c4a5f5.png

  1. Klik Buat proyek .
  2. Daripada memilih kategori, gulir ke bawah ke bagian Opsi lainnya dan klik kartu Percakapan .

4241cbc92f5c6b42.png

  1. Klik Buat Tindakan Anda untuk memperluas opsi dan pilih Tambahkan Tindakan.
  2. Klik Tambahkan tindakan pertama Anda .
  3. Pada dialog Buat Tindakan , pilih Niat kustom dan klik Bangun. Itu membuka Konsol Dialogflow di tab lain.

baee8f25a1165377.png

Bagaimana Tindakan bekerja dengan Dialogflow

Anda mungkin bertanya-tanya bagaimana Asisten mengurai arti semantik dari input pengguna, seperti ucapan yang diucapkan. Itu dilakukan melalui pemahaman bahasa alami (NLU) , yang memungkinkan perangkat lunak Google mengenali kata-kata dalam ucapan.

Untuk Tindakan Anda, Google menyediakan layanan yang disebut Dialogflow agar Anda dapat menangani NLU dengan mudah. Dialogflow menyederhanakan tugas untuk memahami masukan pengguna, mengekstrak kata kunci dan frasa dari masukan, dan mengembalikan tanggapan. Anda menentukan bagaimana semua itu bekerja dalam agen Dialogflow.

Diagram berikut menunjukkan contoh bagaimana Dialogflow (diwakili oleh kolom kedua dari kanan) menangani input pengguna dari Assistant dan mengirimkan permintaan ke pemenuhan Anda (diwakili oleh kolom paling kanan).

dd9b9b73a367c4a6.png

Buat agen Dialogflow

Sekarang setelah Anda membangun proyek Actions Anda, buat agen Dialogflow dan kaitkan dengan proyek Anda:

  1. Anda seharusnya sudah berada di Konsol Dialogflow dengan nama proyek Actions Anda di bagian atas. Anda mungkin perlu memberi otorisasi Dialogflow untuk menggunakan Akun Google Anda dan menerima persyaratan layanan.
  1. Klik Buat .

283b838d7220938c.png

Jika pembuatan agen berhasil, Anda akan berada di halaman Maksud dan Anda dapat mulai menyesuaikan bagaimana agen Dialogflow Anda menanggapi permintaan pengguna.

Pengguna memulai percakapan dengan Actions Anda melalui doa . (Contoh pemanggilan eksplisit adalah frasa seperti, "Hai Google, bicaralah dengan MovieTime." ) Asisten lalu mencoba mencocokkan masukan pengguna ke salah satu Tindakan Anda.

Ciptakan sebuah ucapan selamat datang

Setiap proyek Actions harus memiliki maksud selamat datang yang bertindak sebagai titik masuk bagi pengguna untuk memulai percakapan. Maksud selamat datang dipicu saat pengguna secara eksplisit memanggil Action dengan mengucapkan namanya.

Secara default, Dialogflow membuat maksud selamat datang untuk Anda. Ubah niat selamat datang yang dipicu pengguna saat mereka berkata, " Hai Google, bicarakan dengan aplikasi pengujian saya " .

  1. Di halaman Intents dari Dialogflow Console , klik Default Welcome Intent .

c60435d4f3d099b3.png

  1. Hapus semua tanggapan teks lainnya dengan mengklik ikon tempat sampah di sebelah masing-masing.

26d321543d6d6c21.png

  1. Di bawah bagian Tanggapan , klik Masukkan tanggapan teks dan ketik, "Selamat datang! Apa warna favorit Anda?"
  2. Klik Simpan . Anda akan melihat pemberitahuan Intent disimpan sebentar muncul.

Uji niat selamat datang

Actions Console menyediakan antarmuka web untuk pengujian yang disebut simulator . Antarmuka memungkinkan Anda mensimulasikan perangkat keras dan pengaturannya. Anda juga dapat mengakses informasi debug, seperti permintaan dan respons yang diterima dan dikirim oleh pemenuhan Anda.

Uji Tindakan Anda di simulator Konsol Tindakan.

  1. Di bilah navigasi kiri Konsol Dialogflow , klik Integrasi . Kemudian, klik Google Assistant > Integration Settings .
  2. Klik Uji untuk memperbarui proyek Actions Anda dan memuatnya ke simulator Actions Console. (Jika Anda melihat dialog Periksa setelan pratinjau otomatis , Anda dapat membiarkan opsi Perubahan pratinjau otomatis diaktifkan, lalu klik Lanjutkan .)

c9a15610e314692c.png

  1. Untuk menguji Tindakan Anda di simulator, ketik "Bicara dengan aplikasi pengujian saya" di bidang Input dan tekan enter.

8196a9d1ce52f96b.png

Saat niat selamat datang Tindakan Anda dipanggil, Asisten merespons dengan pesan sambutan dan meminta pengguna untuk memberikan warna favorit mereka.

Debug Tindakan Anda

Panel di sebelah kanan menunjukkan informasi debugging yang berguna saat menguji Action Anda.

  • Di tab Request and Response , Anda dapat melihat isi request dan response di JSON antara Assistant dan Dialogflow.
  • Di tab Audio , Anda melihat respons ucapan Tindakan Anda. Anda dapat mengubah respons dan memperbaruinya untuk mendengar bunyinya saat disintesis menjadi ucapan.
  • Tab Debug dan Kesalahan memberikan informasi tambahan untuk membantu Anda memecahkan masalah dengan respons Tindakan Anda.

Sekarang pengguna memiliki cara untuk memulai percakapan, terus lakukan.

Sekarang Anda perlu mempelajari dasar-dasar pengaturan pengisian slot , kemampuan penting dalam Dialogflow yang memungkinkan Anda mengumpulkan sekumpulan nilai dari pengguna melalui percakapan bolak-balik yang alami. Kemampuan ini berguna jika Tindakan Anda memerlukan sekumpulan nilai parameter tertentu untuk memenuhi maksud pengguna.

Untuk melihat tindakan pengisian slot (tidak ada permainan kata-kata yang dimaksudkan!), Anda akan membuat maksud baru untuk melihat respons warna. Ketika pengguna berbicara atau mengetik respons mereka, Dialogflow mem-parsing input pengguna untuk mengekstrak informasi yang dibutuhkan pemenuhan Anda — yaitu, warna — dan mengirimkannya ke pemenuhan Anda. Pemenuhan Anda kemudian secara otomatis menghasilkan angka keberuntungan untuk dikirim ke pengguna.

Untuk mengimplementasikan respons, Anda perlu menambahkan dua komponen di Dialogflow Console — maksud Dialogflow dan webhook Dialogflow .

Anda menentukan maksud Dialogflow di agen Anda untuk mengontrol bagaimana Anda ingin Dialogflow memproses permintaan pengguna.

Dalam ucapan selamat datang, Anda meminta warna favorit pengguna. Sekarang Anda perlu membuat niat untuk menangkap informasi. Untuk melakukannya, Anda perlu menggunakan dua bagian spesifik dari sebuah maksud — frasa pelatihan dan parameter — untuk mengurai informasi yang Anda perlukan dari pengguna.

Buat maksud Dialogflow

Untuk membuat maksud Dialogflow, lakukan hal berikut:

  1. Di Konsol Dialogflow , tutup halaman pengaturan integrasi Asisten jika Anda telah membukanya. Di bilah navigasi kiri, klik Intents , lalu klik Create intent .
  2. Di bidang nama maksud di atas, ketik "warna favorit" sebagai nama maksud baru Anda. Klik Simpan .
  1. Di bawah Frase pelatihan , tambahkan ekspresi pengguna berikut dengan mengetikkan frasa berikut, lalu klik Enter di keyboard Anda:
  • "ungu adalah favoritku"
  • "hitam adalah warna favoritku"
  • "aku suka kuning"
  • "Merah Jambu"
  • "warna kesukaanku adalah hijau"
  1. Di bawah Tindakan dan parameter , buat teks perintah untuk menanyakan warna favorit pengguna. Anda akan melihat garis dengan warna di bidang Nama Parameter . Entri parameter secara otomatis dibuat oleh Dialogflow karena ia dapat secara otomatis menganotasi kata dan frasa yang dikenali sebagai entitas dalam frasa pelatihan. Di baris tersebut, lakukan hal berikut:
  • Centang kotak Diperlukan .
  • Klik Define prompts .
  • Masukkan "Apa warna favorit Anda?" sebagai prompt.
  • Klik Tutup .

d0a6ec1d698ca1f1.png

  1. Di bawah bagian Pemenuhan di halaman (bukan bilah navigasi kiri), klik Aktifkan Pemenuhan . (Anda mungkin perlu memperluas bagian dengan mengklik panah yang mengarah ke bawah.)
  2. Aktifkan Aktifkan panggilan webhook untuk maksud ini .
  3. Klik Simpan .

Setelah Anda menyelesaikan langkah-langkah tersebut, Dialogflow akan secara otomatis mengekstrak parameter yang dikenali dari ucapan pengguna yang memicu maksud (dalam hal ini, parameter warna). Setelah memperoleh informasi itu, Dialogflow membuatnya tersedia untuk Anda penuhi.

Di bagian ini, Anda menerapkan webhook Dialogflow yang berisi logika untuk membuat respons percakapan. Anda juga mencoba Tindakan Anda secara real time dengan menggunakan simulator Konsol Tindakan.

Webhook Dialogflow berisi logika untuk membuat pesan respons secara dinamis untuk dikirim ke pengguna.

Buat webhook Anda

Gunakan editor kode sebaris Konsol Dialogflow untuk membuat dan menerapkan webhook. Untuk membuat webhook untuk Action Anda, lakukan hal berikut:

  1. Di bilah navigasi kiri, klik Pemenuhan .
  2. Alihkan Editor Inline ke Diaktifkan .

dd4c9aa16a4e4392.png

  1. Ganti konten index.js dengan kode berikut:

index.js

'use strict';

// Import the Dialogflow module from the Actions on Google client library.
const {dialogflow} = require('actions-on-google');

// Import the firebase-functions package for deployment.
const functions = require('firebase-functions');

// Instantiate the Dialogflow client.
const app = dialogflow({debug: true});

// Handle the Dialogflow intent named 'favorite color'.
// The intent collects a parameter named 'color'.
app.intent('favorite color', (conv, {color}) => {
    const luckyNumber = color.length;
    // Respond with the user's lucky number and end the conversation.
    conv.close('Your lucky number is ' + luckyNumber);
});

// Set the DialogflowApp object to handle the HTTPS POST request.
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);
  1. Klik Deploy . (Anda perlu menunggu beberapa menit agar Dialogflow menyediakan dan menerapkan kode webhook Anda. Saat kode berhasil diterapkan, Anda akan melihat stempel waktu Terakhir diterapkan yang diperbarui di samping tombol Terapkan .

Pahami kodenya

Kode untuk webhook diimplementasikan dalam JavaScript . Saat Anda menggunakan editor kode inline Dialogflow, kode webhook Anda akan diterapkan pada lingkungan terkelola di cloud menggunakan Cloud Functions for Firebase .

Kode webhook menggunakan pustaka klien Actions on Google Node.js untuk menanggapi permintaan HTTP yang dikirim Asisten ke webhook Anda. Pustaka memungkinkan Anda membuat objek DialogflowApp , yang bertindak sebagai pembungkus untuk Dialogflow API.

Dalam kasus ini, variabel app dari DialogflowApp objek DialogflowApp dibuat. Fungsi app.intent() digunakan untuk mendeklarasikan callback untuk menangani maksud warna favorit.

Callback menerima dua argumen penting berikut:

  • Sebuah Dialogflow``Conversation Objek Dialogflow``Conversation . Ini adalah abstraksi pustaka klien dari status dialog dan menyertakan properti yang mewakili nilai permintaan masuk ke webhook Anda, seperti konteks Dialogflow aktif saat ini dan kemampuan permukaan perangkat pengguna.
  • Objek Parameters Dialogflow. Ini adalah representasi Objek JavaScript dari nilai parameter yang dikumpulkan dalam maksud terkait. (Ingat di bagian sebelumnya ketika Anda menentukan nama parameter "color" untuk memberi tahu Dialogflow untuk mengekstrak nilai yang sesuai dengan entitas sys.color ? Nama parameter yang sama digunakan oleh perpustakaan klien untuk mewakili nilainya.)

Callback menghasilkan angka keberuntungan pengguna dengan menentukan panjang kata untuk warna mereka (Misalnya, kata enam karakter "oranye" akan menghasilkan warna favorit enam). Kemudian menggunakan metode close parameter objek Conversation untuk menanggapi pengguna dan mengakhiri percakapan. Responsnya adalah string sederhana (seperti, "Nomor keberuntungan Anda adalah 6.")

d0ee9c1dc6989169.png

Gambar tersebut menunjukkan bagaimana warna variabel pada baris 21 implementasi webhook menggunakan nama parameter yang Anda tentukan sebelumnya di Dialogflow Console. Misalnya, jika pengguna mengatakan "Warna favorit saya adalah hijau", maka warna variabel Anda pada baris 21 akan memiliki nilai "hijau".

Uji Tindakan Anda

Uji Tindakan Anda.

  1. Buka Actions Console dan pilih project Actions Anda.
  2. Klik tab Test di bagian atas. Klik tombol X di bagian atas jendela keluaran, yang akan membuat Anda keluar dari percakapan apa pun yang mungkin telah Anda mulai sebelumnya di simulator.
  3. Ketik "Bicaralah dengan aplikasi pengujian saya" di bidang Input dan tekan Enter pada keyboard Anda.

6ad78f72952e8.png

Simulator kemudian melakukan pemanggilan eksplisit dengan memanggil maksud selamat datang Anda. Setelah Anda berada di tengah-tengah percakapan, Anda dapat memicu niat kustom 'warna favorit' dengan memberikan warna. Misalnya, coba uji dengan frasa berikut:

  • "Merah."
  • "Saya suka hijau."
  • "Favorit saya adalah merah muda."

Selamat!

Anda mengetahui dasar-dasar membangun antarmuka pengguna percakapan dengan Actions on Google.

Apa yang Anda liput

  • Cara menyiapkan proyek Actions dengan Actions Console.
  • Cara membuat niat selamat datang sehingga pengguna bisa memulai percakapan dengan Action Anda.
  • Cara membuat respons percakapan dengan maksud Dialogflow dan webhook kustom.
  • Cara menguji Action Anda secara real time dengan simulator Actions Console.

Apa berikutnya

Jelajahi sumber daya berikut untuk mempelajari lebih lanjut tentang Actions on Google:

Ikuti @ActionsOnGoogle di Twitter untuk pengumuman terbaru dan tweet dengan #AoGDevs untuk membagikan apa yang Anda buat!

Survei umpan balik

Sebelum Anda pergi, harap isi survei singkat tentang pengalaman Anda.