Membuat Action untuk Asisten Google menggunakan Action Builder (Level 2)

1. Ringkasan

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 build

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:

dd6f5c61296b8b50.png

eba043f546aa8c51.png

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:

Untuk memahami kode fulfillment codelab ini, pemahaman tentang JavaScript (ES6) sangat direkomendasikan, meskipun tidak diwajibkan.

2. Lanjutkan membuat antarmuka percakapan

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:

  1. Buka project Action codelab level 1 Anda.
  2. Klik Develop di menu navigasi.
  3. Di bagian Scenes, klik scene Start.
  4. Klik intent yes (kotak When yes is matched) untuk membuka opsinya.
  5. Hapus Send prompts untuk menghapus pesan.
  6. Di bagian Transition, klik menu drop-down, klik kotak teks, dan ketik Fortune.
  7. Klik Add. Proses ini akan membuat scene baru bernama Fortune. Proses ini juga menambahkan transisi dari scene Start ke scene Fortune saat pengguna ingin mendengar ramalan mereka.

56682a0c7459b98c.png

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-langkah berikut:

  1. Di menu navigasi, klik Types.
  2. Klik + (tanda plus), ketik available_options, lalu tekan Enter.
  3. Klik available_options untuk membuka opsi.

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:

  1. Scroll ke bagian Add entries.
  2. Di kolom New entry, ketik dragon, lalu tekan Enter. Tindakan ini untuk membuat kunci dragon.
  3. Ketik hydra di kolom Add values lalu tekan Enter untuk menambahkannya sebagai nilai (sinonim). Kemudian ulangi langkah ini untuk nilai lizard.
  4. Tambahkan kunci lainnya dan nilai yang sesuai:
  • translator | translator, communicator, machine, decoder, translate
  • compass | compass, direction, guide

8333b1b67445f21.png

  1. Klik Simpan.

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:

  1. Di menu navigasi, di bagian Scenes, klik Fortune.
  2. Di scene Fortune, klik + (tanda plus) untuk Slot filling.
  3. Di kolom Enter slot name, tambahkan chosenOptions sebagai nama slot.
  4. Di menu drop-down Select type, pilih available_options sebagai jenis slot.
  5. Pilih kotak centang This slot is required.

a461b906476e244.png

  1. 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'
  1. Klik Simpan.

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 memberi nama 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:

  1. Klik scene.slots.status == "FINAL" untuk membuka jendela opsi.
  2. Pilih Send prompts dan tambahkan pesan berikut:
candidates:
  - first_simple:
      variants:
        - speech: You picked $session.params.chosenOptions.
  1. Klik Simpan.

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:

  1. Di menu navigasi, klik Test.
  2. Klik atau ketik Talk to my test app di kolom Input, lalu tekan Enter.
  3. Ketik Yes di kolom Input, lalu tekan Enter. (Atau, Anda dapat mengklik chip saran Yes.)

a899d45c542668f6.png

  1. 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:

  1. Klik Develop di menu navigasi.
  2. Di menu navigasi, klik scene Fortune.
  3. Klik scene.slots.status == "FINAL" untuk membuka jendela opsi.
  4. Perbarui pernyataan kondisi ke: scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
  5. Pilih Send prompts.
  6. 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.
  1. Klik Simpan.

d31767232ad908bd.png

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:

  1. Klik + (tanda plus) di samping Condition.
  2. Tambahkan scene.slots.status == "FINAL" && session.params.chosenOptions == "translator" ke kolom else if.
  3. Pilih Send prompts.
  4. 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.
  1. Klik Simpan.

c1af65e70dbf3dfe.png

Menyesuaikan fortune compass

Untuk menambahkan kondisi dan menyesuaikan pesan saat pengguna memilih "kompas", ikuti langkah berikut:

  1. Klik + (tanda plus) di samping Condition.
  2. Tambahkan scene.slots.status == "FINAL" && session.params.chosenOptions == "compass" ke kotak teks else if.
  3. Pilih Send prompts.
  4. 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.
  1. Klik Simpan.

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:

  1. Di menu navigasi, klik Test.
  2. Ketik Talk to my test app di kolom Input, lalu tekan Enter.
  3. Ketik Yes di kolom Input, lalu tekan Enter. Atau, klik chip saran Yes.
  4. Klik, ketik, atau ucapkan Translator.

29e17f950bd0dd71.png

Anda akan menerima ramalan yang sesuai untuk opsi "penerjemah".

3. Menambahkan game loop

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:

  1. Klik Develop di menu navigasi.
  2. Klik + (tanda plus) di bagian Scene.
  3. Ketik Again, lalu tekan Enter.
  4. Klik scene Again di menu navigasi.
  5. Klik + (tanda plus) di samping On enter.
  6. 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'
  1. Klik Simpan.

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:

  1. Klik scene Fortune.
  2. Klik kondisi pertama (scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon") untuk membuka jendela opsi.
  3. Scroll dan pilih Again di bagian Transisi.
  4. Klik Simpan.
  5. Klik kondisi kedua untuk membuka jendela opsi.
  6. Scroll dan pilih Again di bagian Transisi.
  7. Klik Simpan.
  8. Klik kondisi ketiga untuk membuka jendela opsi.
  9. Scroll dan pilih Again di bagian Transisi.
  10. Klik Simpan.

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:

  1. Di menu navigasi, klik Test.
  2. Ketik Talk to my test app di kolom Input, lalu tekan Enter.
  3. Ketik Yes di kolom Input, lalu tekan Enter. Atau, klik chip saran Yes.
  4. Klik, ketik, atau ucapkan dragon.

b299e9fed9aedb69.png

Anda akan menerima ramalan untuk opsi naga dan perintah Again.

Tambahkan 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:

  1. Klik Develop di menu navigasi.
  2. Klik scene Again.
  3. Klik + (tanda plus) di samping User intent handling.
  4. Pilih yes dari menu drop-down intent.
  5. Pilih Fortune dari menu drop-down Transition.
  6. Klik Simpan.

c2efba35ea881b0d.png

  1. Klik + (tanda plus) di samping User intent handling.
  2. Pilih no dari menu drop-down intent.
  3. Pilih End conversation dari menu drop-down Transition.
  4. 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.
  1. Klik Simpan.

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:

  1. Di menu navigasi, klik Test.
  2. Ketik Talk to my test app di kolom Input, lalu tekan Enter.
  3. Ketik Yes di kolom Input, lalu tekan Enter. Atau, klik chip saran Yes.
  4. Klik, ketik, atau ucapkan salah satu opsi.
  5. Ketik Yes di kolom Input, lalu tekan Enter.

5d0690332efe2e29.png

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:

  1. Klik, ketik, atau ucapkan salah satu opsi.
  2. Ketik No di kolom input dan tekan Enter.

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")

4. Menambahkan jalur pendukung

Anda kini telah membuat jalur utama yang sebagian besar pengguna akan lakukan dalam Action Anda. Akan tetapi, pengguna bisa saja merespons perintah 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 "magic", "money", "kuda", atau "ponsel" dan meminta pengguna untuk memilih salah satu dari tiga pilihan asli saat mereka memilih salah satu opsi ini. 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 pemroses bahasa (NLU) 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:

  1. Klik Develop di menu navigasi.
  2. Klik + (tanda plus) di bagian Types.
  3. Ketik unavailable_options dan tekan Enter.
  4. Klik unavailable_options untuk membuka opsi.
  5. Masukkan entri berikut dan nilai yang sesuai di bagian Add entries:

horse

horse, stallion, steed

magic

magic, enchanted, spells

money

money, cash, gold

phone

phone, cell, apps

Tabel key-value Anda akan terlihat seperti berikut:

c9e119e0f5fb2a47.png

  1. 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:

  1. Klik + (tanda plus) di bagian Custom Intent.
  2. Ketik other_option, lalu tekan Enter.
  3. Klik other_option untuk membuka jendelanya.
  4. 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
  1. Di bagian Add intent parameters, perbarui nama parameter menjadi chosenUnavailableOption.
  2. Klik Simpan.

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.

df61d4489f0910.png

Menambahkan intent other_option ke scene Fortune

Anda sekarang memiliki intent, other_option, yang dapat menangani pengguna yang menentukan opsi yang bukan salah satu dari 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:

  1. Klik scene Fortune.
  2. Klik + (tanda plus) di samping User intent handling.
  3. Pilih other_option dari menu drop-down intent.
  4. 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. original property merujuk pada input mentah yang ditentukan pengguna.

  1. Klik Simpan.

4bab1efbe21056aa.png

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 pengguna untuk memilih salah satu pilihan asli (naga, penerjemah, atau kompas).

Untuk menguji Action Anda di simulator, ikuti langkah-langkah berikut:

  1. Di menu navigasi, klik Test.
  2. Ketik Talk to my test app di kolom Input, lalu tekan Enter.
  3. Ketik Yes di kolom Input, lalu tekan Enter. Atau, klik chip saran Yes.
  4. Ketik magic di kolom Input, lalu tekan Enter.

3a42c33eca435f32.png

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:

  1. Klik Develop di menu navigasi.
  2. Klik scene Fortune.
  3. Di bagian User intent handling, klik When other_option is matched untuk membuka jendelanya.
  4. Hapus centang pada kotak Send prompts.
  5. Pilih kotak centang Telepon webhook Anda.
  6. Masukkan unavailable_options di kotak teks untuk pengendali aktivitas.

52a0fba115f1b377.png

  1. 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:

  1. Klik Webhook di menu navigasi.
  2. 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);
});
  1. Tambahkan kode berikut di bagian const app = conversation();:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
  1. Klik Save Fulfillment.
  2. 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 objek conv dan menetapkan option ke properti original, yang merupakan input mentah dari pengguna
  • Menetapkan optionKey ke properti resolved, yang merupakan kunci untuk tipe unavailable_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 perintah berdasarkan apakah pilihan pengguna dari tipe unavailable_options memerlukan artikel "a" sebelumnya.

Untuk menguji Action Anda, ikuti langkah-langkah berikut:

  1. Di menu navigasi, klik Test.
  2. Klik atau ketik Talk to my test app di kolom Input, lalu tekan Enter.
  3. Ketik Yes di kolom Input, lalu tekan Enter. Atau, klik chip saran Yes.
  4. Ketik magic di kolom Input, lalu tekan Enter.
  5. Ketik horse di kolom Input, lalu tekan Enter.

54ee24c5c3c56e.png

Action Anda seharusnya akan menambahkan artikel "a" sebelum pilihan "horse", selagi juga menyusun pesan tanpa artikel "a" untuk pilihan "magic".

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:

  1. Untuk menghapus Project Cloud dan resource, selesaikan langkah-langkah yang tercantum di bagian Shutting down (deleting) projects.
  1. Opsional: Untuk segera menghapus project Anda dari Konsol Actions, lihat Menghapus project. Jika Anda tidak menyelesaikan langkah ini, project Anda akan dihapus secara otomatis setelah sekitar 30 hari.

5. 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

Pelajari lebih lanjut

Jelajahi referensi berikut untuk mempelajari lebih lanjut cara membuat Action untuk Asisten Google:

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.