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 menengah pengembangan dengan Asisten Google dan pengembangan Action yang dibuat di codelab Level 1. Sangat disarankan agar Anda menyelesaikan codelab Level 1 sebelum memulai yang satu ini.
Action yang Anda buat dalam codelab ini memberi tahu pengguna tentang ramalan (Fortune) dari perjalanan mereka di sebuah dunia dongeng, Gryffinberg, berdasarkan bantuan yang mereka pilih.
Yang akan Anda buat
Dalam codelab ini, Anda akan membuat Action Percakapan canggih dengan fungsi berikut:
- Mengumpulkan data dari pengguna dan, tergantung nilainya, mengubah pesan percakapan
- Menanggapi dengan pertanyaan lanjutan untuk melanjutkan percakapan
- Membuat game loop sehingga pengguna dapat kembali berinteraksi dengan Action setelah menerima sebuah ramalan
Sebelum mulai membuat, Anda dapat berinteraksi dengan Action versi live di perangkat Anda yang dilengkapi Asisten Google dengan mengucapkan "Hey Google, talk to Fate and Fortune"("Ok Google, bicara dengan Fate dan Fortune"). Untuk pengguna yang kembali, jalur default melalui Action ini terlihat seperti interaksi berikut:
Yang akan Anda pelajari
- Cara menggunakan slot untuk mengumpulkan data dari pengguna
- Cara menggunakan kondisi untuk menambahkan logika ke sebuah scene
- Cara menambahkan game loop
- Cara menambahkan jalur pendukung
Yang akan Anda butuhkan
Prasyarat untuk codelab ini meliputi yang berikut:
- Browser web, seperti Chrome
- Project Action codelab Level 1 yang sudah selesai
Untuk memahami kode fulfillment codelab ini, pemahaman tentang JavaScript (ES6) sangat direkomendasikan, meskipun tidak diwajibkan.
Di codelab pertama, Anda telah membuat Action Percakapan sederhana dengan satu scene, Start
.
Di codelab ini, Anda akan memperluas percakapan Action Anda. Di bagian berikutnya, Anda akan mengonfigurasi Action untuk melakukan hal berikut:
- Melakukan transisi ke scene
Fortune
baru saat pengguna ingin mendengar ramalan mereka - Bertanya kepada pengguna bantuan mana yang ingin mereka pilih untuk perjalanan mereka
- Memberikan ramalan yang disesuaikan berdasarkan pilihan pengguna
Membuat scene Fortune
Di bagian ini, Anda akan membuat scene Fortune
dan menentukan cara pengguna bertransisi ke scene tersebut selama percakapan.
Untuk membuat scene baru bernama Fortune
, ikuti langkah berikut:
- Buka project Action codelab level 1 Anda.
- Klik Develop di navigasi.
- Di bagian Scenes, klik scene Start.
- Klik intent yes (kotak When yes is matched) untuk membuka opsinya.
- Hapus Send prompts untuk menghapus pesan.
- Di bagian Transition, klik menu drop-down, klik kotak teks, dan ketik
Fortune
. - Klik Add. Proses ini akan membuat scene baru bernama
Fortune
. Proses ini juga menambahkan transisi dari sceneStart
ke sceneFortune
saat pengguna ingin mendengar ramalan mereka.
Menentukan logika percakapan untuk scene Fortune
Dalam codelab ini, Anda akan mengonfigurasi scene Fortune
untuk bertanya kepada pengguna, "What do you choose to help you on your quest, a dragon, a translator, or a compass?"("Apa yang akan Anda pilih untuk membantu misi Anda, naga, penerjemah, atau kompas?") Anda dapat menggunakan fitur yang disebut pengisian slot untuk mengumpulkan informasi yang diperlukan dari pengguna sebelum melanjutkan.
Action Anda memberikan ramalan untuk tiga bantuan: naga, penerjemah, dan kompas. Untuk mengonfigurasi Action guna mengidentifikasi ketiga opsi ini di input pengguna, Anda harus membuat tipe baru.
Anda dapat menggunakan tipe dalam sebuah tahapan pengisian slot scene untuk menentukan informasi yang Anda inginkan dari pengguna. Ketika mesin NLU mendeteksi kecocokan slot dalam input pengguna, mesin akan mengekstrak slot sebagai parameter yang diketik, sehingga Anda dapat menjalankan logika dengannya dalam sebuah scene.
Membuat tipe available_options
Pada bagian ini, Anda akan membuat tipe baru yang disebut available_options
, yang menentukan ketiga opsi yang bisa dipilih pengguna (naga, penerjemah, dan kompas) sebagai tanggapan terhadap pesannya. Anda juga dapat menentukan beberapa sinonim untuk opsi-opsi ini jika pengguna mengatakan sesuatu yang serupa. Di bagian selanjutnya, Anda akan menambahkan tipe available_options
ke slot untuk menentukan bahwa Anda ingin memperoleh pilihan pengguna.
Untuk membuat tipe available_options
, ikuti langkah berikut:
- Pada navigasi, klik Types.
- Klik + (tanda plus), ketik
available_options
, lalu tekanEnter
. - Klik
available_options
untuk membuka opsinya.
Tipe dikonfigurasikan sebagai informasi key-value pair: kunci adalah nama tipe dan nilai adalah sinonim kunci tersebut. Setelah menentukan kunci, kunci akan otomatis ditambahkan sebagai sebuah nilai.
Untuk menambahkan ketiga opsi yang dapat dipilih pengguna, ikuti langkah-langkah berikut:
- Scroll ke bawah ke bagian Add entries.
- Di kolom New entry, ketik
dragon
, lalu tekanEnter
. Tindakan ini untuk membuat kuncidragon
. - Ketik
hydra
di kolom Add values lalu tekanEnter
untuk menambahkannya sebagai nilai (sinonim). Kemudian ulangi langkah ini untuk nilailizard
. - Tambahkan kunci lainnya dan nilai yang sesuai:
translator | translator, communicator, machine, decoder, translate
compass | compass, direction, guide
- Klik Save.
Action Anda sekarang memahami bahwa available_options
adalah naga, penerjemah, dan kompas, serta dapat mengenali beberapa sinonim yang sesuai.
Mengonfigurasi pengisian slot
Selanjutnya, Anda perlu mengonfigurasi pengisian slot di scene Fortune
. Untuk mengonfigurasi logika pengisian slot, ikuti langkah-langkah berikut:
- Pada navigasi, di bagian Scenes, klik Fortune.
- Di scene
Fortune
, klik + (tanda plus) untuk Slot filling. - Di kolom Enter slot name, tambahkan
chosenOptions
sebagai nama slot. - Di drop-down Select type, pilih
available_options
sebagai jenis slot. - Pilih This slot is required.
- Pilih Send prompts, lalu tambahkan pesan dan chip saran berikut:
candidates: - first_simple: variants: - speech: >- What do you choose to help you on your quest, a dragon, a translator, or a compass? suggestions: - title: 'Dragon' - title: 'Translator' - title: 'Compass'
- Klik Save.
Sekarang Anda telah menambahkan tipe available_options
ke slot, yang memberi tahu Action Anda informasi yang perlu dikumpulkan dari pengguna (yaitu pilihan bantuan) sebelum melanjutkan. Anda juga telah mengonfigurasi pesan dalam slot, yang ditambahkan ke antrean pesan saat pengguna mencapai tahap pengisian slot dalam scene.
Perhatikan bahwa saat Anda menamai slot chosenOptions
, kolom Customize slot value writeback diperbarui dengan nama yang sama ($session.params.chosenOptions
). Anda dapat mengakses parameter ini dengan nama tersebut di Action Builder dan di fulfillment Anda melalui library klien.
Mengonfigurasi kondisi scene.slots.status == "FINAL"
Saat Anda menambahkan slot, kondisi scene.slots.status == "FINAL"
akan otomatis ditambahkan ke daftar kondisi.
Kondisi scene.slots.status == "FINAL"
memeriksa apakah pengisian slot telah lengkap. Setelah semua slot terisi, kondisi dapat memicu webhook, melakukan transisi ke scene baru, atau menambahkan pesan ke antrean pesan.
Di bagian ini, Anda akan mengonfigurasi scene.slots.status == "FINAL"
untuk menambahkan pesan ke antrean pesan setelah slot terisi.
Untuk menambahkan pesan ini ke kondisi FINAL
, ikuti langkah berikut:
- Klik kondisi
scene.slots.status == "FINAL"
untuk membuka jendela opsi. - Pilih Send prompts dan tambahkan pesan berikut:
candidates: - first_simple: variants: - speech: You picked $session.params.chosenOptions.
- Klik Save.
Menguji Action Anda di simulator
Pada tahap ini, Anda telah menentukan opsi mana yang harus dipilih pengguna untuk mengisi slot. Setelah mendapatkan informasi ini dari pengguna, Action Anda seharusnya akan memberikan pesan yang merujuk pada opsi yang telah mereka pilih.
Untuk menguji Action Anda, ikuti langkah-langkah berikut:
- Di menu navigasi, klik Test.
- Klik atau ketik
Talk to my test app
di kolom Input, lalu tekanEnter
. - Ketik
Yes
di kolom Input, lalu tekanEnter
. (Atau, Anda dapat mengklik chip saran Yes.)
- Klik, ketik, atau ucapkan
dragon
. Anda akan menerima pesan "You picked dragon" ("Anda telah memilih naga").
Di bagian berikutnya, Anda akan menyesuaikan pesan untuk setiap bantuan yang bisa dipilih pengguna.
Menyesuaikan pesan menggunakan kondisi
Di bagian ini, Anda akan menambahkan kondisi untuk setiap opsi yang dapat dipilih pengguna dan menambahkan pesan kustom untuk setiap kondisi.
Menyesuaikan fortune dragon
Untuk memperbarui kondisi dan menyesuaikan pesan saat pengguna memilih "naga", ikuti langkah berikut:
- Klik Develop di navigasi.
- Pada navigasi, klik scene Fortune.
- Klik kondisi
scene.slots.status == "FINAL"
untuk membuka jendela opsi. - Perbarui pernyataan kondisi ke:
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
- Pilih Send prompts.
- Perbarui pesan dengan fortune berikut di editor kode:
candidates: - first_simple: variants: - speech: >- The people of Gryffinberg will be awestruck by the beauty and power of the ancient dragon. Much to your dismay, the townspeople fall into dispute over who will receive the honor of riding the dragon first. You return home from your quest without everlasting glory or a dragon.
- Klik Save.
Sekarang, saat pengguna mengatakan "naga" atau sesuatu yang terdengar mirip, Action Anda memberikan ramalan berdasarkan pilihan tersebut. Selanjutnya, tambahkan dua pilihan yang tersisa.
Menyesuaikan fortune translator
Untuk menambahkan kondisi dan menyesuaikan pesan saat pengguna memilih "penerjemah", ikuti langkah berikut:
- Klik + (tanda plus) di samping Condition.
- Tambahkan
scene.slots.status == "FINAL" && session.params.chosenOptions == "translator"
ke kolom else if. - Pilih Send prompts.
- Tambahkan pesan berikut di editor kode Anda:
candidates: - first_simple: variants: - speech: >- With the help of the translator, the rival factions in Gryffinberg are finally able to communicate with each other and resolve their disputes. You will complete your quest to restore peace in the town. The translator will be used on many subsequent journeys across the earth. After its work is done, it retires honorably to a premier location in the Gryffinberg History Museum.
- Klik Save.
Menyesuaikan fortune compass
Untuk menambahkan kondisi dan menyesuaikan pesan saat pengguna memilih "kompas", ikuti langkah berikut:
- Klik + (tanda plus) di samping Condition.
- Tambahkan
scene.slots.status == "FINAL" && session.params.chosenOptions == "compass"
ke kotak teks else if. - Pilih Send prompts.
- Tambahkan pesan berikut di editor kode:
candidates: - first_simple: variants: - speech: >- The compass will help you find the mystical and ancient Library of Gryffinberg. Among its infinite stacks of dusty books, you find one entitled "Wisdom of the Ages". By the time you've read the 50,000-page tome, the townspeople have forgotten their problems. You will write a second edition of "Wisdom of the Ages", but have limited commercial success.
- Klik Save.
Menguji Action Anda di simulator
Sampai di sini, Action Anda akan memberikan ramalan yang disesuaikan untuk pengguna berdasarkan opsi yang mereka pilih.
Untuk menguji Action Anda, ikuti langkah-langkah berikut:
- Di menu navigasi, klik Test.
- Ketik
Talk to my test app
di kolom Input, lalu tekanEnter
. - Ketik Yes di kolom Input, lalu tekan
Enter
**.** Atau, klik chip saran **Yes**. - Klik, ketik, atau ucapkan
Translator
.
Anda akan menerima ramalan yang sesuai untuk opsi "penerjemah".
Di bagian ini, Anda akan mengonfigurasi Action Anda sehingga pengguna dapat memilih opsi lain dan mendengar ramalan yang berbeda setelah membuat pilihan. Perubahan ini mirip dengan pesan "Do you want to play again?" ("Apakah Anda ingin bermain lagi?") di akhir sebuah game. Untuk membuat loop ini, Anda dapat menggunakan kembali intent yes
dan no
yang dibuat sebelumnya, lalu menambahkannya ke scene baru yang disebut Again
.
Membuat scene Again
Di bagian ini, Anda akan membuat scene Again
baru dan menambahkan pesan yang menanyakan pengguna apakah mereka ingin memilih opsi yang berbeda.
Untuk membuat scene Again
, ikuti langkah-langkah berikut:
- Klik Develop di navigasi.
- Klik + (tanda plus) di bagian Scene.
- Ketik
Again
dan tekanEnter
. - Klik scene
Again
di navigasi. - Klik + (tanda plus) di samping On enter.
- Pilih Send prompts, lalu tambahkan pesan dan chip saran berikut:
candidates: - first_simple: variants: - speech: >- That is what I see for you. Would you like to choose a different option and explore another future? suggestions: - title: 'Yes' - title: 'No'
- Klik Save.
Menambahkan transisi dari scene Fortune
ke Again
Setelah pengguna menerima ramalannya, percakapan perlu bertransisi ke scene Again
yang baru.
Untuk menambahkan transisi dari scene Fortune
ke scene Again
, ikuti langkah-langkah berikut:
- Klik scene Fortune.
- Klik kondisi pertama (
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
) untuk membuka jendela opsi. - Scroll dan pilih
Again
pada bagian Transition. - Klik Save.
- Klik kondisi kedua untuk membuka jendela opsi.
- Scroll dan pilih
Again
pada bagian Transition. - Klik Save.
- Klik kondisi ketiga untuk membuka jendela opsi.
- Scroll dan pilih
Again
pada bagian Transition. - Klik Save.
Menguji Action Anda di simulator
Sampai di sini, Action Anda harus seharusnya akan memberikan pesan berikut kepada pengguna setelah mereka menerima ramalannya: "That is what I see for you. Would you like to choose a different option and explore another future?"("Itu yang saya lihat untuk Anda. Apa Anda ingin memilih opsi lain dan menjelajahi masa depan yang berbeda?")
Untuk menguji Action Anda, ikuti langkah-langkah berikut:
- Di menu navigasi, klik Test.
- Ketik
Talk to my test app
di kolom Input, lalu tekanEnter
. - Ketik
Yes
di kolom Input, lalu tekanEnter
. Atau, klik chip saran Yes. - Klik, ketik, atau ucapkan
dragon
.
Anda akan menerima ramalan untuk opsi naga dan pesan Again
.
Menambahkan intent dan transisi ke scene Again
Di bagian ini, Anda akan menambahkan intent yes
dan no
ke scene Again
sehingga Action Anda memahami apakah pengguna ingin memilih opsi baru atau tidak. Anda juga akan menambahkan transisi yang sesuai untuk intent yes
dan no
. Intent yes
bertransisi ke scene Fortune
, sementara intent no
bertransisi ke scene sistem End conversation
.
Untuk menambahkan intent dan transisi ke scene Again
, ikuti langkah-langkah berikut:
- Klik Develop di navigasi.
- Klik scene
Again
. - Klik + (tanda plus) di samping User intent handling.
- Pilih yes dari menu drop-down intent.
- Pilih
Fortune
dari menu drop-down Transition. - Klik Save.
- Klik + (tanda plus) di samping User intent handling.
- Pilih no dari menu drop-down intent.
- Pilih End conversation dari menu drop-down Transition.
- Pilih Send prompts dan tambahkan pesan berikut di editor kode:
candidates: - first_simple: variants: - speech: >- It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell.
- Klik Save.
Menguji Action Anda di simulator
Action Anda sekarang akan memahami apakah pengguna ingin memilih opsi baru atau mengakhiri percakapan.
Untuk menguji intent yes
, ikuti langkah-langkah berikut:
- Di menu navigasi, klik Test.
- Ketik
Talk to my test app
di kolom Input, lalu tekanEnter
. - Ketik
Yes
di kolom Input, lalu tekanEnter
. Atau, klik chip saran Yes. - Klik, ketik, atau ucapkan salah satu opsi.
- Ketik
Yes
di kolom Input lalu tekanEnter
.
Anda akan menerima pesan, "What do you choose to help you on your quest, a dragon, a translator, or a compass?"("Apa yang akan Anda pilih untuk membantu misi Anda, naga, penerjemah, atau kompas?")
Untuk menguji intent no
, ikuti langkah-langkah berikut:
- Klik, ketik, atau ucapkan salah satu opsi.
- Ketik
No
di kolom input dan tekanEnter
.
Anda akan menerima pesan End conversation
: "It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell. ("Saya senang mengetahui Anda puas dengan pilihan Anda. Semoga sukses dalam misi Anda. Selamat tinggal")
Anda kini telah membuat jalur utama yang sebagian besar pengguna akan lakukan dalam Action Anda. Akan tetapi, pengguna bisa saja merespons pesan dari scene Fortune
, "Apa yang akan Anda pilih untuk membantu misi Anda, naga, penerjemah, atau kompas?", dengan pilihan yang bukan salah satu dari opsi yang disediakan.
Di bagian ini, Anda akan mengonfigurasi Action untuk memahami saat pengguna memilih "sihir", "uang", "kuda", atau "ponsel", dan meminta ulang pengguna untuk memilih salah satu dari tiga pilihan asli saat mereka memilih salah satu opsi di atas. Untuk mengonfigurasi logika ini, Anda perlu membuat type
baru yang berisi pilihan lain ini dan intent baru, other_option
, yang cocok saat pengguna mengucapkan salah satu opsi ini. Anda juga perlu menganotasi frasa pelatihan di dalam intent other_option
untuk mengidentifikasi dan mengekstrak parameter intent.
Saat mesin Natural Language Processing Asisten mendeteksi kecocokan parameter dalam input pengguna, mesin ini mengekstrak nilai sebagai parameter yang diketik sehingga Anda dapat menjalankan logika dengan parameter tersebut dalam sebuah scene. Dalam codelab ini, Anda akan mengonfigurasi Action untuk mengekstrak bantuan yang dipilih pengguna dan merujuk ke pilihan tersebut dalam sebuah pesan.
Membuat tipe unavailable_options
Anda sekarang dapat membuat tipe unavailable_options
yang berisi berbagai opsi, sehingga Action Anda dapat mengidentifikasi data tersebut dalam input pengguna.
Untuk membuat tipe unavailable_options
, ikuti langkah-langkah berikut:
- Klik Develop di navigasi.
- Klik + (tanda plus) di bagian Types.
- Ketik
unavailable_options
dan tekanEnter
. - Klik
unavailable_options
untuk membuka opsi. - Masukkan entri berikut dan nilai yang sesuai di bagian Add entries:
|
|
|
|
|
|
|
|
Tabel key-value Anda akan terlihat seperti berikut:
- Klik Save.
Membuat intent other_option
Selanjutnya, Anda akan membuat intent yang disebut other_option
dan menambahkan frasa pelatihan yang menyertakan opsi tersebut dalam tipe unavailable_options
. Intent ini akan dicocokkan saat pengguna memilih pilihan yang ada dalam tipe unavailable_options
.
Untuk membuat dan mengonfigurasi intent other_option
, ikuti langkah-langkah berikut:
- Klik + (tanda plus) di bawah Intent.
- Ketik
other_option
, lalu tekanEnter
. - Klik
other_option
untuk membuka jendelanya. - Tambahkan frasa pelatihan berikut dan tekan
Enter
setelahnya:
I want to use spells
I really really want to use a phone
magic!
cash
I want to ride a horse
- Di bagian Add intent parameters, perbarui nama parameter menjadi
chosenUnavailableOption
. - Klik Save.
Saat Anda memasukkan frasa pelatihan, Action Builder akan mengenali spells
, phone
, magic
, cash
, dan horse
dari tipe unavailable_options
, lalu secara otomatis menandai (menganotasi) kata tersebut. Action Builder secara otomatis menambahkan parameter intent di bagian Add intent parameters, seperti yang ditunjukkan pada gambar berikut.
Parameter intent memungkinkan Anda untuk mengekstrak nama opsi dan menggunakan opsi tersebut dalam sebuah pesan.
Menambahkan intent other_option
ke scene Fortune
Anda sekarang memiliki intent, other_option
, yang dapat menangani pengguna yang menentukan opsi yang bukan salah satu opsi asli. Di bagian ini, Anda akan menambahkan intent other_option
ke scene Fortune
. Anda menggunakan parameter intent untuk menyesuaikan pesan berdasarkan input pengguna.
Untuk menambahkan intent other_option
ke scene Fortune
, ikuti langkah-langkah berikut:
- Klik scene Fortune.
- Klik + (tanda plus) di samping User intent handling.
- Pilih
other_option
dari menu drop-down intent. - Pilih Send prompts dan tambahkan pesan berikut:
candidates: - first_simple: variants: - speech: >- I have seen the future and a $intent.params.chosenUnavailableOption.original will not aid you on your journey.
Ekspresi $intent.params.chosenUnavailableOption
mengacu pada objek parameter intent dan $intent.params.chosenUnavailableOption.original
mengacu pada nilai objek tersebut. Properti original
merujuk pada input mentah yang ditentukan pengguna.
- Klik Save.
Saat pengguna mengatakan opsi yang tercantum dalam jenis unavailable_options
selama scene Fortune
, intent other_option
akan dicocokkan dan menambahkan pesan ke antrean pesan. Karena tidak ada transisi yang ditetapkan, loop eksekusi scene terus berjalan dengan mengevaluasi ulang tahapan kondisi. Slot chosenOptions
kemudian menambahkan pesannya ke antrean pesan, dan antrean pesan dikirimkan ke pengguna.
Menguji Action Anda di simulator
Action Anda sekarang seharusnya merespons secara tepat ketika pengguna memilih salah satu opsi yang tercantum dalam tipe unavailable_options
dan menentukan bantuan yang dipilih pengguna. Kemudian, Action Anda akan meminta ulang pengguna untuk memilih salah satu pilihan asli (naga, penerjemah, atau kompas).
Untuk menguji Action Anda di simulator, ikuti langkah-langkah berikut:
- Di menu navigasi, klik Test.
- Ketik
Talk to my test app
di kolom Input, lalu tekanEnter
. - Ketik
Yes
di kolom Input, lalu tekanEnter
. Atau, klik chip saran Yes. - Ketik
magic
di kolom Input, lalu tekanEnter
.
Anda mungkin melihat bahwa pesan tidak terdengar benar ketika pengguna memilih "magic" karena artikel "a" yang ditempatkan sebelumnya. Anda mengatasi masalah ini di bagian berikutnya.
Menambahkan pengendali unavailable_options
Untuk menempatkan artikel "a" sebelum pilihan yang sesuai dari tipe unavailable_options
, Anda dapat mengonfigurasi pengendali aktivitas dalam logika fulfillment Anda untuk memeriksa apakah opsi yang dipilih pengguna memerlukan "a" sebelumnya. Pertama, Anda perlu mengonfigurasi Action untuk memanggil pengendali di konsol.
Untuk menambahkan pengendali unavailable_options
, ikuti langkah-langkah berikut:
- Klik Develop di navigasi.
- Klik scene
Fortune
. - Di bagian User intent handling, klik When other_option is matched untuk membuka jendelanya.
- Hapus Send prompts.
- Pilih Call your webhook.
- Masukkan
unavailable_options
di kotak teks untuk pengendali aktivitas.
- Klik Save.
Memperbarui dan men-deploy fulfillment
Setelah mengonfigurasi Action untuk memanggil pengendali aktivitas unavailable_options
, Anda dapat memperbarui pengendali di fulfillment Anda dan melakukan deployment.
Untuk memperbarui fulfillment Anda, ikuti langkah-langkah berikut:
- Klik Webhook di navigasi.
- Tambahkan kode berikut di bagian pengendali
greeting
:
app.handle('unavailable_options', conv => {
const option = conv.intent.params.chosenUnavailableOption.original;
const optionKey = conv.intent.params.chosenUnavailableOption.resolved;
let message = 'I have seen the future and ';
if(optionsNeedA.has(optionKey)){
message = message + 'a ';
}
message = message + `${option} will not aid you on your journey. `;
conv.add(message);
});
- Tambahkan kode berikut di bagian
const app = conversation();
:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
- Klik Save Fulfillment.
- Klik Deploy Fulfillment. Saat deployment selesai, pesan berikut akan muncul di atas editor Anda Your Cloud Function deployment is up to date.
Memahami kode
Pengendali unavailable_options
melakukan hal berikut:
- Mengambil data
option
dari objekconv
dan menetapkanoption
ke propertioriginal
, yang merupakan input mentah dari pengguna - Menetapkan
optionKey
ke propertiresolved
, yang merupakan kunci untuk tipeunavailable_options
- Memeriksa apakah
optionKey
merupakan salah satu opsi yang memerlukan "a"; Jika ya, maka akan membuat pesan dengan tambahan "a" - Menambahkan pesan melalui
conv.add(message)
Menguji Action Anda di simulator
Action Anda sekarang harus menyesuaikan pesan berdasarkan apakah pilihan pengguna dari jenis unavailable_options
memerlukan artikel "a" sebelumnya.
Untuk menguji Action Anda, ikuti langkah-langkah berikut:
- Di menu navigasi, klik Test.
- Klik atau ketik
Talk to my test app
di kolom Input, lalu tekanEnter
. - Ketik
Yes
di kolom Input, lalu tekanEnter
. Atau, klik chip saran Yes. - Ketik
magic
di kolom Input, lalu tekanEnter
. - Ketik
horse
di kolom Input, lalu tekanEnter
.
Action Anda seharusnya akan menambahkan artikel "a" sebelum pilihan "horse", selagi juga menyusun pesan tanpa artikel "a" untuk pilihan "magic".
Selamat!
Sekarang Anda telah mempelajari keterampilan menengah yang diperlukan untuk membuat Action untuk Asisten Google.
Yang telah Anda pelajari
- Cara mengembangkan Action Percakapan menggunakan library fulfillment Node.js
- Cara menggunakan slot untuk mengumpulkan data dari pengguna
- Cara menggunakan kondisi untuk menambahkan logika ke scene
- Cara menambahkan game loop
- Cara menambahkan jalur pendukung
Referensi pembelajaran tambahan
Anda dapat menjelajahi referensi berikut untuk mempelajari pembuatan Action untuk Asisten Google:
- Dokumentasi untuk membuat Action untuk Asisten Google
- Halaman GitHub Actions on Google untuk kode contoh dan library
- Komunitas Reddit resmi untuk developer yang menangani Asisten Google
- Pedoman desain Percakapan untuk praktik terbaik dan panduan terkait Action Percakapan
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.
Ikuti @ActionsOnGoogle di Twitter untuk mengikuti terus pengumuman terbaru kami dan kirim tweet dengan tagar #AoGDevs untuk membagikan yang telah Anda buat!
Survei masukan
Sebelum pergi, isi survei singkat tentang pengalaman Anda.