Platform developer Asisten Google memungkinkan Anda membuat software untuk memperluas fungsi Asisten Google (asisten pribadi virtual) di lebih dari 1 miliar perangkat, termasuk smart speaker, ponsel, mobil, TV, headphone, dan lainnya. Pengguna berinteraksi dengan Asisten melalui percakapan untuk menyelesaikan berbagai hal, seperti membeli bahan makanan atau memesan transportasi online. Sebagai developer, Anda dapat menggunakan platform developer Asisten untuk dengan mudah membuat dan mengelola pengalaman percakapan yang menyenangkan dan efektif antara pengguna dan layanan fulfillment pihak ketiga Anda sendiri.
Codelab ini mencakup konsep tingkat pemula untuk mengembangkan dengan Actions SDK untuk Asisten Google; Anda tidak memerlukan pengalaman sebelumnya dengan platform untuk menyelesaikannya. Dalam codelab ini, Anda akan membuat Action Asisten Google sederhana yang memberi tahu pengguna tentang ramalan (Fortune) saat mereka memulai sebuah petualangan di negeri dongeng Gryffinberg. Di codelab level 2 Action SDK, Anda akan mengembangkan Action ini lebih lanjut untuk menyesuaikan ramalan pengguna berdasarkan input mereka.
Yang akan Anda buat
Dalam codelab ini, Anda akan membuat Action sederhana dengan fungsi berikut:
- Merespons pengguna dengan pesan sambutan.
- Mengajukan pertanyaan kepada pengguna. Saat mereka menjawab, Action Anda akan menanggapi pilihan pengguna dengan tepat.
- Memberikan chip saran yang dapat diklik pengguna untuk memberikan masukan.
- Mengubah pesan sambutan kepada pengguna berdasarkan apakah mereka pengguna lama yang kembali.
Setelah menyelesaikan codelab ini, Action lengkap Anda akan memiliki alur percakapan berikut (teks di samping mikrofon mewakili input pengguna, sedangkan teks di samping speaker mewakili respons Action):
Yang akan Anda pelajari
- Cara membuat project di Konsol Actions
- Cara menggunakan fitur gaction untuk mendorong dan menarik project Action antara konsol Actions dan sistem file lokal Anda
- Cara mengirim pesan kepada pengguna setelah mereka memanggil Action Anda
- Cara memproses input pengguna dan memberikan respons
- Cara menguji Action di simulator Action
- Cara menerapkan fulfillment menggunakan editor Cloud Functions
Yang akan Anda butuhkan
Fitur berikut harus ada dalam lingkungan pengembangan Anda:
- IDE/editor teks pilihan Anda.
- Terminal untuk menjalankan perintah shell untuk NodeJS dan npm.
- Browser web, seperti Google Chrome.
Bagian berikut menjelaskan cara menyiapkan lingkungan pengembangan dan membuat project Action Anda.
Memeriksa setelan izin Google Anda
Untuk menguji Action yang Anda buat di codelab ini, Anda perlu mengaktifkan izin yang diperlukan agar simulator dapat mengakses Action Anda.
Untuk mengaktifkan izin, ikuti langkah-langkah berikut:
- Buka halaman Kontrol Aktivitas.
- Login dengan akun Google Anda, jika Anda belum melakukannya.
- Aktifkan izin berikut:
- Aktivitas Web & Aplikasi
- Di bagian Aktivitas Web & Aplikasi, centang kotak di samping Sertakan histori Chrome dan aktivitas dari situs, aplikasi, dan perangkat yang menggunakan layanan Google.
Membuat project Action
Project Action Anda adalah container untuk Action Anda.
Untuk membuat project Action codelab ini, ikuti langkah-langkah berikut:
- Buka Konsol Actions.
- Klik New project.
- Ketikkan Project name, misalnya
actions-codelab
. (Nama adalah untuk referensi internal Anda. Setelah ini, Anda dapat menetapkan nama eksternal untuk project Anda.)
- Klik Create project.
- Di layar What kind of Action do you want to build?, pilih kartu Custom. Klik Berikutnya.
- Di layar How do you want to build it?, pilih kartu Blank project. Lalu, klik Mulai membuat.
Simpan Project ID untuk Action Anda
Project ID adalah ID unik untuk Action Anda. Anda memerlukan Project ID untuk beberapa langkah dalam codelab ini.
Untuk mengambil Project ID, ikuti langkah berikut:
- Di konsol Actions, klik tiga titik vertikal (sisipkan ikon di sini) di kanan atas.
- Klik Setelan project.
- Salin Project ID.
Mengaitkan akun penagihan
Untuk men-deploy fulfillment Anda nanti dalam codelab ini menggunakan Cloud Functions, Anda harus mengaitkan akun penagihan dengan project Anda di Google Cloud. Jika sudah memiliki akun penagihan, Anda dapat mengabaikan langkah-langkah berikut.
Untuk mengaitkan akun penagihan dengan project Anda, ikuti langkah-langkah berikut:
- Buka halaman penagihan Google Cloud Platform.
- Klik Tambahkan akun penagihan.
- Masukkan informasi pembayaran Anda dan klik Mulai uji coba gratis saya atau Kirim dan aktifkan penagihan.
- Klik tab Project Saya di bagian atas halaman.
- Klik tiga titik pada Action di samping project Action untuk codelab ini.
- Klik Ubah penagihan.
- Di menu drop-down, pilih akun penagihan yang sudah Anda konfigurasi. Klik Tetapkan akun.
Agar tidak dikenai biaya lebih, ikuti langkah-langkah di bagian "Membersihkan project" pada halaman "Langkah berikutnya" di akhir codelab ini.
Menginstal antarmuka command line gaction
Di codelab ini, Anda menggunakan alat antarmuka command line (CLI) gaction untuk menyinkronkan project Action antara konsol Actions dan sistem file lokal Anda.
Untuk menginstal CLI gaction, ikuti petunjuk di bagian Menginstal alat command line gaction.
Mendownload project Action Anda
Mulai buat Action dengan mendownload project Action Anda dari konsol Actions.
Untuk mendownload project Actions, ikuti langkah-langkah berikut:
- Untuk membuat direktori baru dan mengubahnya menjadi direktori tersebut, jalankan perintah berikut:
mkdir myproject cd myproject
- Untuk menyalin konfigurasi project Action ke sistem file lokal Anda, jalankan perintah berikut:
gactions pull --project-id <projectID>
Memahami struktur file
Project Action yang Anda download dari konsol Actions ditampilkan dalam struktur file YAML. Gambar berikut menampilkan tampilan dasar dari struktur file tersebut:
Struktur file terdiri dari berikut ini:
actions/
- Mewakili project Action Anda. Sistem memanggilactions.yaml
saat Action Anda diaktifkan, yang kemudian memanggil filecustom/global/actions.intent.MAIN.yaml
.custom/
- Direktori tempat Anda akan bekerja untuk mengubah Action.global/
- Direktori ini berisi intent sistem yang ditambahkan platform ke project Anda secara otomatis. Anda akan mempelajari lebih lanjut tentang intent sistem nanti di codelab ini.manifest.yaml
- File berisi informasi yang "dapat dipindahkan"; yaitu, tidak spesifik untuk project tertentu dan dapat dipindahkan antar project.settings/
- Mewakili setelan project Action, seperti nama tampilan, lokal default, dan kategori.
Pengguna memulai percakapan dengan Action Anda melalui pemanggilan (invocation). Misalnya, jika Anda memiliki Action bernamaiFlix, pengguna dapat memanggil Action Anda dengan mengucapkan frasa seperti "Ok Google, bicara dengan iFlix", yang manaiFlix adalahnama tampilannya. Action Anda harus memiliki nama tampilan jika Anda ingin men-deploy-nya ke produksi; namun, untuk menguji Action, Anda tidak perlu menetapkan nama tampilan. Sebagai gantinya, Anda dapat menggunakan frasa "Bicara dengan aplikasi pengujian saya" di simulator untuk mengaktifkan Action Anda. Anda akan mempelajari simulator lebih lanjut di bagian ini nanti.
Anda harus mengedit pemanggilan utama untuk menentukan apa yang terjadi setelah pengguna memanggil Action Anda.
Secara default, Action Anda menyediakan pesan generik saat pemanggilan dipicu ("Mulai buat Action Anda dengan menentukan pemanggilan utama.").
Di bagian berikutnya, Anda menyesuaikan permintaan untuk pemanggilan utama di file custom/global/actions.intent.MAIN.yaml
.
Menyiapkan pemanggilan utama
Anda dapat mengedit pesan pemanggilan utama di file actions.intent.MAIN.yaml
.
Untuk mengubah pesan yang dikirimkan Action kepada pengguna saat pengguna memanggil Action, ikuti langkah-langkah berikut:
- Buka
custom/global/actions.intent.MAIN.yaml
di editor teks Anda. - Ganti teks di kolom
speech
(Start building your action...
) dengan pesan selamat datang berikut:A wondrous greeting, adventurer! Welcome to the mythical land of Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you're on your way to an epic journey.
actions.intent.MAIN.yaml
handler: staticPrompt: candidates: - promptResponse: firstSimple: variants: - speech: A wondrous greeting, adventurer! Welcome to the mythical land of Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you're on your way to an epic journey. transitionToScene: actions.scene.END_CONVERSATION
- Simpan file tersebut.
Menguji pemanggilan utama di simulator
Konsol Actions menyediakan sebuah fitur web untuk menguji Action Anda yang disebut simulator. Antarmukanya menyimulasikan perangkat hardware dan setelannya, sehingga Anda dapat berkomunikasi dengan Action Anda seolah-olah sedang menjalankannya di Layar Smart, ponsel, speaker, atau KaiOS.
Saat Anda memanggil Action, maka sekarang Action tersebut akan merespons dengan pesan kustom yang Anda tambahkan ("Salam sejahtera, Petualang!...").
Anda dapat menggunakan perintah gactions deploy preview
untuk menguji Action di konsol tanpa mengupdate versi project Action Anda. Saat menjalankan perintah ini, tidak ada perubahan yang Anda buat di sistem file lokal yang disebarkan ke versi project Action yang di-deploy, tetapi Anda dapat mengujinya pada versi pratinjau.
Untuk menguji pemanggilan utama Action Anda di simulator, ikuti langkah-langkah berikut:
- Untuk men-deploy project Anda ke konsol Actions untuk pengujian, jalankan perintah berikut di terminal:
gactions deploy preview
Anda akan menerima output yang tampak seperti berikut ini:
✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
- Salin URL yang diberikan dan tempelkan ke browser.
- Untuk memanggil Action di simulator, ketik
Talk to my test app
di kolom Input di kiri atas, lalu tekan Enter.
Saat Anda memicu pemanggilan utama Action, Asisten akan merespons dengan pesan selamat datang yang telah disesuaikan. Pada tahap ini, percakapan akan berakhir setelah Asisten merespons dengan salam. Di bagian berikutnya, Anda akan mengubah Action sehingga percakapan berlanjut.
Melihat log aktivitas
Saat Anda berada di tab Test di Konsol Actions, panel di sebelah kanan menampilkan log aktivitas, yang menampilkan histori percakapan sebagai log aktivitas. Setiap log aktivitas menampilkan aktivitas yang terjadi selama percakapan tersebut
Action Anda saat ini memiliki satu log aktivitas, yang menampilkan input pengguna ("Bicara dengan aplikasi uji saya") dan respons Action Anda. Screenshot berikut menunjukkan log aktivitas Action Anda:
Jika Anda mengklik panah ke bawah di samping Talk to my test app
di log aktivitas, Anda dapat melihat aktivitas yang terjadi dalam percakapan tersebut, tersusun secara kronologis:
userInput
: Merujuk pada input pengguna ("Bicara dengan aplikasi pengujian saya").interactionMatch
: Merujuk pada respons pemanggilan utama Actions Anda, yang dipicu oleh input pengguna. Jika Anda meluaskan baris ini dengan mengklik panahnya, Anda dapat melihat perintah yang ditambahkan untuk pemanggilan utama (A wondrous greeting, adventurer!...
)endConversation
: Merujuk pada transisi yang dipilih dalam intentMain invocation
, yang saat ini mengakhiri percakapan. Anda akan mempelajari lebih lanjut tentang transisi di bagian berikutnya dari codelab ini.
Log aktivitas memberikan visibilitas tentang cara kerja Action Anda dan merupakan fitur yang berguna untuk men-debug Action jika Anda menemui masalah. Untuk melihat detail aktivitas, klik panah di sebelah nama aktivitas, seperti yang ditampilkan di screenshot berikut:
Kini, setelah Anda menentukan apa yang terjadi setelah pengguna memanggil Action, Anda dapat membuat bagian percakapan Action lainnya. Sebelum melanjutkan dengan codelab ini, biasakan diri Anda dengan istilah berikut untuk memahami cara kerja percakapan Action:
Action Anda dapat memiliki satu atau beberapa scene, dan Anda harus mengaktifkan setiap scene sebelum Action dapat berjalan. Action yang Anda buat di codelab ini hanya memiliki satu scene berjudul Start
. Cara paling umum untuk mengaktifkan scene adalah dengan mengonfigurasi Action Anda sehingga, saat input pengguna cocok dengan intent dalam suatu scene, intent tersebut akan memicu transisi ke scene lain dan mengaktifkannya.
Misalnya, bayangkan ada contoh Action yang menceritakan fakta hewan kepada pengguna. Saat pengguna memanggil Action ini, intent Main invocation
dicocokkan dan memicu transisi ke scene bernama Facts.
Transisi ini mengaktifkan scene Facts
, yang mengirimkan perintah berikut kepada pengguna: Would you like to hear a fact about cats or dogs?
Dalam scene Facts
terdapat intent kustom yang disebut Cat
, yang berisi frasa pelatihan yang mungkin diucapkan pengguna untuk mendengar fakta kucing, seperti "Saya ingin mendengar fakta kucing" atau "kucing". Saat pengguna meminta untuk mendengar fakta kucing, intent Cat
dicocokkan, dan memicu transisi ke scene yang disebut Cat fact.
Scene Cat fact
akan mengaktifkan dan mengirimkan pesan ke pengguna yang menyertakan fakta kucing.
Gambar 1. Alur percakapan umum dalam sebuah Action yang dibuat dengan Action SDK.
Bersama-sama, scene, intent, dan transisi membentuk logika percakapan Anda dan menentukan berbagai jalur yang dapat diambil pengguna dalam percakapan Action Anda. Di bagian berikut, Anda akan membuat scene dan menentukan cara scene tersebut diaktifkan setelah pengguna memanggil Action Anda.
Melakukan transisi dari pemanggilan utama ke scene
Di bagian ini, Anda akan membuat scene baru bernama Start
, yang mengirimkan pesan kepada pengguna yang menanyakan apakah mereka ingin diberi tahu ramalannya. Anda juga akan menambahkan transisi dari pemanggilan utama ke scene Start
yang baru.
Untuk membuat scene ini dan menambahkan transisi ke scene tersebut, ikuti langkah-langkah berikut:
- Buka
custom/global/actions.intent.MAIN.yaml
di editor teks Anda. - Ganti teks di kolom
transitionToScene
(actions.scene.END_CONVERSATION
) dengan yang berikut:transitionToScene: Start
actions.intent.MAIN.yaml
handler: staticPrompt: candidates: - promptResponse: firstSimple: variants: - speech: Welcome to the mythical land of Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you're on your way to an epic journey. transitionToScene: Start
Ini memberi tahu Action Anda untuk bertransisi dari pemanggilan utama ke scene Start
.
- Simpan file tersebut.
- Di terminal, buat direktori
scenes
baru di direktoricustom
:
mkdir custom/scenes
- Buat file baru bernama
Start.yaml
di direktoriscenes
, yang mewakili scenestart
di Action Anda:
touch custom/scenes/Start.yaml
- Buka
Start.yaml
di editor teks Anda. - Tempelkan kode berikut ke dalam file
Start.yaml
:
Start.yaml
onEnter: staticPrompt: candidates: - promptResponse: firstSimple: variants: - speech: Before you continue on your quest, would you like your fortune told?
Dalam kode file Start.yaml
, terdapat kolom yang disebut onEnter
, yang merupakan tahap pertama yang berjalan dalam siklus proses scene.
Dalam hal ini, pesan (Before you continue on your quest...
) ditambahkan ke antrean pesan saat pengguna pertama kali memasuki scene Start
.
Menambahkan chip saran
Chip saran menawarkan saran yang dapat diklik untuk pengguna. Chip ini kemudian akan diproses Action sebagai input pengguna. Di bagian ini, Anda akan menambahkan chip saran Yes
dan No
yang muncul di bawah pesan yang baru saja Anda konfigurasikan (Before you continue on your quest, would you like your fortune told?
) untuk mendukung pengguna di perangkat dengan layar.
Untuk menambahkan chip saran ke pesan scene Start
, ikuti langkah-langkah berikut:
- Perbarui kode di
Start.yaml
agar cocok dengan cuplikan kode berikut, yang menyertakan kode untuk mengonfigurasi chip saran:
Start.yaml
onEnter: staticPrompt: candidates: - promptResponse: firstSimple: variants: - speech: Before you continue on your quest, would you like your fortune told? suggestions: - title: "Yes" - title: "No"
- Simpan file tersebut.
Menguji Action Anda di simulator
Pada tahap ini, Action Anda seharusnya bertransisi dari pemanggilan utama ke scene Start
dan bertanya kepada pengguna apakah mereka ingin diramal. Chip saran juga akan muncul di tampilan simulasi.
Untuk menguji Action Anda di simulator, ikuti langkah-langkah berikut:
- Di terminal, jalankan perintah berikut:
gactions deploy preview
Anda akan menerima output yang tampak seperti berikut ini:
✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
- Salin URL yang diberikan dan tempelkan ke browser.
- Klik Test untuk mengarahkan Anda ke simulator.
- Ketik
Talk to my test app
di kolom Input di kiri atas. Lalu, tekan Enter. Action Anda akan merespons dengan pesanMain invocation
dan pesan sceneStart
yang ditambahkan, "Sebelum melanjutkan misi, apakah Anda ingin diramal?", dengan menampilkan chip saran.
Screenshot berikut menunjukkan interaksi ini:
- Klik chip saran
Yes
atauNo
untuk merespons perintah. (Anda juga dapat mengucapkan "Ya" atau "Tidak" atau masukkanYes
atauNo
di kolom Input.)
Saat Anda merespons pesan, Action merespons dengan pesan yang menunjukkan bahwa ia tidak dapat memahami input Anda: "Maaf, saya tidak mengerti. Boleh ucapkan lagi?" Karena Anda belum mengonfigurasi Action untuk memahami dan merespons input "Yes" atau "No", Action Anda akan mencocokkan input dengan intent NO_MATCH
.
Secara default, intent sistem NO_MATCH
memberikan respons generik, tetapi Anda dapat menyesuaikan respons ini untuk menunjukkan kepada pengguna bahwa Anda tidak memahami input mereka. Asisten mengakhiri percakapan pengguna dengan Action Anda setelah tidak bisa mencocokkan input pengguna sebanyak tiga kali.
Menambahkan intent yes
dan no
Karena pengguna dapat merespons pertanyaan yang ada di Action, Anda dapat mengonfigurasi Action untuk memahami respons pengguna ("Ya" atau "Tidak"). Di bagian berikut, Anda akan membuat intent kustom yang dicocokkan saat pengguna mengatakan "Ya" atau "Tidak" dan menambahkan intent ini ke scene Start
.
Membuat intent yes
Untuk membuat intent yes
, ikuti langkah-langkah berikut:
- Di terminal, buat direktori baru bernama
intents
di direktoricustom
:
mkdir custom/intents
- Buat file baru bernama
yes.yaml
di direktoriintents
:
touch custom/intents/yes.yaml
- Buka
yes.yaml
di editor teks Anda. - Tempel cuplikan kode berikut yang berisi frasa pelatihan ke dalam
yes.yaml
:
yes.yaml
trainingPhrases: - of course - let's do it - ok - sure - "y" - "yes"
- Simpan file tersebut.
Tambahkan intent yes
ke scene Start
Sekarang, Action dapat memahami saat pengguna menyatakan intent "ya". Anda dapat menambahkan intent kustom yes
ke scene Start
, karena pengguna merespons pesan Start
("Sebelum melanjutkan misi, apakah Anda ingin mendengar ramalan?".)
Untuk menambahkan intent kustom ini ke scene Start
, ikuti langkah-langkah berikut:
- Buka
custom/scenes/Start.yaml
di editor teks Anda. - Tambahkan pengendali
intentEvents
danyes
ke akhir fileStart.yaml
:
Start.yaml
intentEvents: - handler: staticPrompt: candidates: - promptResponse: firstSimple: variants: - speech: Your future depends on the item you choose to use for your quest. Choose wisely! Farewell, stranger. intent: "yes" transitionToScene: actions.scene.END_CONVERSATION
Saat intent yes
cocok, pesan "Masa depan Anda bergantung pada item yang dipilih untuk misi..." akan ditambahkan ke antrean pesan. Scene Start
lalu bertransisi ke scene sistem actions.scene.END_CONVERSATION
, yang mengirimkan pesan di antrean pesan dan mengakhiri percakapan.
Menguji intent yes
dalam simulator
Pada tahap ini, Action Anda akan memahami saat pengguna ingin mendengarkan ramalan dan memberikan respons yang sesuai.
Untuk menguji intent ini di simulator, ikuti langkah-langkah berikut:
- Di terminal, jalankan perintah berikut:
gactions deploy preview
Anda akan menerima output yang tampak seperti berikut ini:
✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
- Salin URL yang diberikan dan tempelkan ke browser.
- Klik Test untuk mengarahkan Anda ke simulator.
- Untuk menguji Action di simulator, ketik
Talk to my test app
di kolom Input di kiri atas, lalu tekan Enter. - Ketik
Yes
di kolom Input, lalu tekan Enter. Atau, klik chip saranYes
.
Action Anda merespons pengguna dan memberi tahu bahwa keberuntungan mereka bergantung pada bantuan yang mereka pilih. Action Anda lalu mengakhiri sesi karena Anda mengonfigurasi transisi End conversation
untuk intent yes
.
Membuat intent no
Sekarang, Anda dapat membuat intent no
sehingga Action Anda dapat memahami dan merespons pengguna saat mereka tidak ingin mendengar ramalan.
Untuk membuat intent ini, ikuti langkah-langkah berikut:
- Di terminal, buat file baru bernama
no.yaml
di direktoriintents
:
touch custom/intents/no.yaml
- Buka
no.yaml
di editor teks Anda. - Tempelkan frasa pelatihan berikut ke dalam file
no.yaml
:
no.yaml
trainingPhrases: - nope - I don't want - "n" - "no" - nah - no thanks
- Simpan file tersebut.
Tambahkan intent no
ke scene Start
Sekarang, Action dapat memahami saat pengguna menyatakan "no" atau sesuatu yang mirip dengan "no", seperti "nope". Anda perlu menambahkan intent kustom no
ke scene Start
karena pengguna merespons pesan Start
("Sebelum melanjutkan misi, apakah Anda ingin mendengar ramalan?".)
Untuk menambahkan intent ini ke scene Start
, ikuti langkah-langkah berikut:
- Buka
custom/scenes/Start.yaml
di editor teks Anda. - Tambahkan pengendali
no
berikut di bawah pengendaliyes
diStart.yaml
:
Start.yaml
- handler: staticPrompt: candidates: - promptResponse: firstSimple: variants: - speech: I understand, stranger. Best of luck on your quest! Farewell. intent: "no" transitionToScene: actions.scene.END_CONVERSATION
- Simpan file tersebut.
Menguji intent no
di simulator
Pada tahap ini, Action Anda akan memahami ketika pengguna tidak ingin mendengar ramalan dan memberikan respons yang sesuai.
Untuk menguji intent ini di simulator, ikuti langkah-langkah berikut:
- Di terminal, jalankan perintah berikut:
gactions deploy preview
Anda akan menerima output yang tampak seperti berikut ini:
✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
- Salin URL yang diberikan dan tempelkan ke browser.
- Klik Test untuk mengarahkan Anda ke simulator.
- Ketik
Talk to my test app
di kolom Input, lalu tekan Enter. - Ketik
No
di kolom Input, lalu tekan Enter. Atau, klik chip saranNo
.
Alih-alih memberikan ramalan kepada pengguna, Action Anda memberi ucapan semoga beruntung dalam perjalanan mereka. Action Anda lalu mengakhiri sesi karena Anda mengonfigurasi transisi End conversation
untuk intent no
.
Saat ini, respons Action Anda statis; saat scene yang berisi pesan diaktifkan, Action Anda akan mengirim pesan yang sama setiap kali. Di bagian ini, Anda akan menerapkan fulfillment yang berisi logika untuk menyusun respons percakapan dinamis.
Fulfillment Anda mengidentifikasi apakah pengguna adalah pengguna yang kembali atau pengguna baru dan memodifikasi pesan salam Action untuk pengguna yang kembali. Pesan salam dipersingkat bagi pengguna yang kembali dan mengakui kembalinya pengguna: "Salam sejahtera, Petualang! Selamat datang kembali di negeri dongeng Gryffinberg!"
Untuk codelab ini, Anda menggunakan editor Cloud Functions untuk mengedit dan men-deploy kode fulfillment.
Action Anda dapat memicu webhook yang memberitahukan fulfillment Anda atas peristiwa yang terjadi selama pemanggilan atau bagian tertentu dari eksekusi scene. Ketika webhook dipicu, Action Anda mengirimkan permintaan dengan payload JSON ke fulfillment Anda bersama dengan nama pengendali yang digunakan untuk memproses peristiwa. Pengendali ini menjalankan beberapa logika dan memberikan respons JSON yang sesuai.
Membuat fulfillment
Di bagian ini, Anda akan memodifikasi fulfillment untuk menghasilkan perintah yang berbeda bagi pengguna yang kembali dan pengguna baru ketika mereka memanggil Action Anda.
Untuk menambahkan logika ini ke fulfillment Anda, ikuti langkah-langkah berikut:
- Di terminal, pastikan Anda berada di direktori utama project dan membuat direktori
webhooks
baru:
mkdir webhooks
- Buat file baru bernama
ActionsOnGoogleFulfillment.yaml
di direktoriwebhooks
:
touch webhooks/ActionsOnGoogleFulfillment.yaml
- Buka
ActionsOnGoogleFulfillment.yaml
di editor teks Anda. - Tambahkan pengendali
greeting
dan konteninlineCloudFunction
ke fileActionsOnGoogleFulfillment.yaml
:
ActionsOnGoogleFulfillment.yaml
handlers: - name: greeting inlineCloudFunction: executeFunction: ActionsOnGoogleFulfillment
File ActionsOnGoogleFulfillment.yaml
menentukan pengendali webhook Anda (seperti pengendali greeting
) dan memberi tahu Action Anda untuk menggunakan Cloud Functions sebagai endpoint webhook.
- Buat direktori
ActionsOnGoogleFulfillment
baru di direktoriwebhooks
:
mkdir webhooks/ActionsOnGoogleFulfillment
- Buat file baru bernama
index.js
di direktoriActionsOnGoogleFulfillment
:
touch webhooks/ActionsOnGoogleFulfillment/index.js
- Buka
index.js
di editor teks Anda. - Tambahkan kode berikut ke
index.js
:
index.js
const { conversation } = require('@assistant/conversation');
const functions = require('firebase-functions');
const app = conversation({debug: true});
app.handle('greeting', conv => {
let message = 'A wondrous greeting, adventurer! Welcome back to the mythical land of Gryffinberg!';
if (!conv.user.lastSeenTime) {
message = 'Welcome to the mythical land of Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you\'re on your way to an epic journey.';
}
conv.add(message);
});
exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);
Kode ini menentukan pengendali greeting
, yang mengirimkan salam yang sesuai kepada pengguna.
- Simpan file tersebut.
- Buat file baru bernama
package.json
di direktoriActionsOnGoogleFulfillment
:
touch webhooks/ActionsOnGoogleFulfillment/package.json
File package.json
menentukan dependensi dan metadata lainnya untuk webhook Anda.
- Buka
package.json
di editor teks Anda. - Salin kode dari repo GitHub ini dan tempelkan ke file
package.json
. - Simpan file tersebut.
Memahami kode
Fulfillment Anda, yang menggunakan library Fulfillment Actions on Google untuk Node.js, merespons permintaan HTTP dari Asisten Google.
Pada cuplikan kode sebelumnya, Anda menentukan pengendali greeting
, yang memeriksa apakah pengguna pernah mengunjungi Action sebelumnya dengan properti lastSeenTime
. Jika properti lastSeenTime
tidak ditentukan, pengguna tersebut baru dan menerima salam yang ditujukan untuk pengguna baru. Jika tidak, pesan akan mengonfirmasi kembalinya pengguna dan menghasilkan salam yang telah dimodifikasi.
Memperbarui pemanggilan utama untuk memicu webhook
Setelah Anda menentukan fungsi greeting
, Anda dapat mengonfigurasikan pengendali peristiwa greeting
di intent pemanggilan utama sehingga Action Anda tahu untuk memanggil fungsi ini saat pengguna memanggil Action.
Untuk mengonfigurasi Action untuk memanggil pengendali greeting
baru, ikuti langkah-langkah berikut:
- Buka
custom/global/actions.intent.MAIN.yaml
di editor teks Anda. - Ganti kode di
actions.intent.MAIN.yaml
dengan kode berikut:
actions.intent.MAIN.yaml
handler: webhookHandler: greeting transitionToScene: Start
- Simpan file tersebut.
Sekarang, saat intent pemanggilan utama Anda cocok, pengendali webhook greeting
akan dipanggil.
Menguji pemanggilan utama yang diperbarui di simulator
Untuk menguji Action Anda di simulator, ikuti langkah-langkah berikut:
- Di terminal, jalankan perintah berikut:
gactions deploy preview
Anda akan menerima output yang tampak seperti berikut ini:
✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
- Salin URL yang diberikan dan tempelkan ke browser.
- Untuk menguji Action di simulator, ketik
Talk to my test app
di kolom Input, lalu tekan Enter.
Karena Anda telah menguji Action lebih awal di codelab ini, Anda bukan pengguna baru, jadi Anda menerima sambutan singkat berikut: "Salam sejahtera, Petualang! Selamat datang kembali di negeri dongeng Gryffinberg!..."
Actions SDK memiliki interoperabilitas dengan IDE berbasis web yang disebut Actions Builder yang terintegrasi ke dalam konsol Actions. Anda dapat mengirim sistem file lokal ke draf Action di konsol dengan perintah gactions push
. Tidak seperti gactions deploy preview
, yang hanya memungkinkan Anda menguji Action di simulator, gactions push
memindahkan semua konten dari file lokal ke Actions Builder.
Konsol Actions menyediakan representasi visual dari konfigurasi Action Anda. Melihat Action Anda dipetakan secara visual bisa berguna selama pengembangan, dan tidak memengaruhi versi Action yang disajikan untuk pengujian.
Untuk mendorong project Action Anda dan melihatnya di konsol Actions, ikuti langkah-langkah berikut:
- Di terminal, jalankan perintah berikut untuk mendorong project Anda ke konsol Actions:
gactions push
Anda akan menerima output yang tampak seperti berikut ini:
✔ Done. Files were pushed to Actions Console, and you can now view your project with this URL: https://console.actions.google.com/project/{project-id}/overview. If you want to test your changes, run "gactions deploy preview", or navigate to the Test section in the Console.
- Salin URL yang diberikan dan tempelkan ke browser.
- Di Konsol Actions, klik Kembangkan di bagian atas menu navigasi.
- Klik panah drop-down di samping Scene, lalu klik Start. Anda akan melihat representasi visual scene
Start
Action, seperti yang ditunjukkan di screenshot berikut:
Selamat!
Anda telah mengetahui dasar-dasar membuat Actions untuk Asisten Google dengan Actions SDK.
Yang telah Anda pelajari
- Cara menyiapkan project Actions di Konsol Actions
- Cara menggunakan Actions SDK untuk membuat project Actions di sistem file lokal Anda
- Cara menambahkan pesan ke pemanggilan utama sehingga pengguna dapat memulai percakapan dengan Action Anda
- Cara membuat antarmuka percakapan dengan scene, intent, transisi, chip saran, dan fulfillment
- Cara menguji Action dengan simulator Action
Referensi pembelajaran tambahan
Jelajahi referensi berikut untuk mempelajari lebih lanjut cara membuat Action untuk Asisten Google:
- Situs dokumentasi resmi untuk mengembangkan Action untuk Asisten Google.
- Halaman GitHub Actions on Google untuk kode contoh dan library.
- Komunitas Reddit resmi untuk developer yang bekerja dengan Asisten.
Ikuti @ActionsOnGoogle di Twitter untuk mendapatkan pengumuman dan tweet terbaru dengan #AoGDevs untuk membagikan yang telah Anda buat!
Membersihkan project [disarankan]
Untuk menghindari biaya yang mungkin dikenakan, sebaiknya hapus project yang tidak ingin Anda gunakan. Untuk menghapus project yang Anda buat di codelab ini, ikuti langkah-langkah berikut:
- Untuk menghapus Project Cloud dan resource, selesaikan langkah-langkah yang tercantum di bagian Shutting down (deleting) projects.
- Opsional: Untuk segera menghapus project Anda dari Konsol Actions, selesaikan langkah-langkah yang tercantum di bagian Deleting a project. Jika Anda tidak menyelesaikan langkah ini, project Anda akan dihapus secara otomatis setelah sekitar 30 hari.
Survei masukan
Sebelum pergi, isi survei singkat tentang pengalaman Anda.