Membuat Action untuk Asisten Google menggunakan Actions SDK (Level 1)

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

1c1e79902bed7230.png

18ef55647b4cb52c.png

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:

  1. Buka halaman Kontrol Aktivitas.
  2. Login dengan akun Google Anda, jika Anda belum melakukannya.
  3. 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:

  1. Buka Konsol Actions.
  2. Klik New project.
  3. Ketikkan Project name, misalnya actions-codelab. (Nama adalah untuk referensi internal Anda. Setelah ini, Anda dapat menetapkan nama eksternal untuk project Anda.)

8cd05a84c1c0a32f.png

  1. Klik Create project.
  2. Di layar What kind of Action do you want to build?, pilih kartu Custom. Klik Berikutnya.
  3. 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:

  1. Di konsol Actions, klik tiga titik vertikal (sisipkan ikon di sini) di kanan atas.
  2. Klik Setelan project.

6f59050b85943073.png

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

  1. Buka halaman penagihan Google Cloud Platform.
  2. Klik Tambahkan akun penagihan.
  3. Masukkan informasi pembayaran Anda dan klik Mulai uji coba gratis saya atau Kirim dan aktifkan penagihan.
  4. Klik tab Project Saya di bagian atas halaman.
  5. Klik tiga titik pada Action di samping project Action untuk codelab ini.
  6. Klik Ubah penagihan.
  7. 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:

  1. Untuk membuat direktori baru dan mengubahnya menjadi direktori tersebut, jalankan perintah berikut:
mkdir myproject
cd myproject
  1. 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:

2aefeeab7c8eb32f.png

Struktur file terdiri dari berikut ini:

  • actions/ - Mewakili project Action Anda. Sistem memanggil actions.yaml saat Action Anda diaktifkan, yang kemudian memanggil file custom/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:

  1. Buka custom/global/actions.intent.MAIN.yaml di editor teks Anda.
  2. 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
  1. 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:

  1. 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
  1. Salin URL yang diberikan dan tempelkan ke browser.
  2. Untuk memanggil Action di simulator, ketik Talk to my test app di kolom Input di kiri atas, lalu tekan Enter.

656f5736af6a5a07.png

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:

a1b748d1fcebca80.png

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 intent Main 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:

fcc389b59af5bef1.png

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.

a78f549c90c3bff6.png

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:

  1. Buka custom/global/actions.intent.MAIN.yaml di editor teks Anda.
  2. 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.

  1. Simpan file tersebut.
  2. Di terminal, buat direktori scenes baru di direktori custom:
mkdir custom/scenes
  1. Buat file baru bernama Start.yaml di direktori scenes, yang mewakili scene start di Action Anda:
touch custom/scenes/Start.yaml
  1. Buka Start.yaml di editor teks Anda.
  2. 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:

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

  1. 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
  1. Salin URL yang diberikan dan tempelkan ke browser.
  2. Klik Test untuk mengarahkan Anda ke simulator.
  3. Ketik Talk to my test app di kolom Input di kiri atas. Lalu, tekan Enter. Action Anda akan merespons dengan pesan Main invocation dan pesan scene Start yang ditambahkan, "Sebelum melanjutkan misi, apakah Anda ingin diramal?", dengan menampilkan chip saran.

Screenshot berikut menunjukkan interaksi ini:

3c2013ebb2da886a.png

  1. Klik chip saran Yes atau No untuk merespons perintah. (Anda juga dapat mengucapkan "Ya" atau "Tidak" atau masukkan Yes atau No 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:

  1. Di terminal, buat direktori baru bernama intents di direktori custom:
mkdir custom/intents
  1. Buat file baru bernama yes.yaml di direktori intents:
touch custom/intents/yes.yaml
  1. Buka yes.yaml di editor teks Anda.
  2. 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"
  1. 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:

  1. Buka custom/scenes/Start.yaml di editor teks Anda.
  2. Tambahkan pengendali intentEvents dan yes ke akhir file Start.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:

  1. 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
  1. Salin URL yang diberikan dan tempelkan ke browser.
  2. Klik Test untuk mengarahkan Anda ke simulator.
  3. Untuk menguji Action di simulator, ketik Talk to my test app di kolom Input di kiri atas, lalu tekan Enter.
  4. Ketik Yes di kolom Input, lalu tekan Enter. Atau, klik chip saran Yes.

f131998710d8ffd8.png

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:

  1. Di terminal, buat file baru bernama no.yaml di direktori intents:
touch custom/intents/no.yaml
  1. Buka no.yaml di editor teks Anda.
  2. Tempelkan frasa pelatihan berikut ke dalam file no.yaml:

no.yaml

trainingPhrases:
- nope
- I don't want
- "n"
- "no"
- nah
- no thanks
  1. 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:

  1. Buka custom/scenes/Start.yaml di editor teks Anda.
  2. Tambahkan pengendali no berikut di bawah pengendali yes di Start.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
  1. 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:

  1. 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
  1. Salin URL yang diberikan dan tempelkan ke browser.
  2. Klik Test untuk mengarahkan Anda ke simulator.
  3. Ketik Talk to my test app di kolom Input, lalu tekan Enter.
  4. Ketik No di kolom Input, lalu tekan Enter. Atau, klik chip saran No.

c0c8b04066577eb2.png

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:

  1. Di terminal, pastikan Anda berada di direktori utama project dan membuat direktori webhooks baru:
mkdir webhooks
  1. Buat file baru bernama ActionsOnGoogleFulfillment.yaml di direktori webhooks:
touch webhooks/ActionsOnGoogleFulfillment.yaml
  1. Buka ActionsOnGoogleFulfillment.yaml di editor teks Anda.
  2. Tambahkan pengendali greeting dan konten inlineCloudFunction ke file ActionsOnGoogleFulfillment.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.

  1. Buat direktori ActionsOnGoogleFulfillment baru di direktori webhooks:
mkdir webhooks/ActionsOnGoogleFulfillment
  1. Buat file baru bernama index.js di direktori ActionsOnGoogleFulfillment:
touch webhooks/ActionsOnGoogleFulfillment/index.js
  1. Buka index.js di editor teks Anda.
  2. 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.

  1. Simpan file tersebut.
  2. Buat file baru bernama package.json di direktori ActionsOnGoogleFulfillment:
touch webhooks/ActionsOnGoogleFulfillment/package.json

File package.json menentukan dependensi dan metadata lainnya untuk webhook Anda.

  1. Buka package.json di editor teks Anda.
  2. Salin kode dari repo GitHub ini dan tempelkan ke file package.json.
  3. 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:

  1. Buka custom/global/actions.intent.MAIN.yaml di editor teks Anda.
  2. Ganti kode di actions.intent.MAIN.yaml dengan kode berikut:

actions.intent.MAIN.yaml

handler:
  webhookHandler: greeting
transitionToScene: Start
  1. 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:

  1. 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
  1. Salin URL yang diberikan dan tempelkan ke browser.
  2. 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:

  1. 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.
  1. Salin URL yang diberikan dan tempelkan ke browser.
  2. Di Konsol Actions, klik Kembangkan di bagian atas menu navigasi.
  3. Klik panah drop-down di samping Scene, lalu klik Start. Anda akan melihat representasi visual scene Start Action, seperti yang ditunjukkan di screenshot berikut:

332404b148609e96.png

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:

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:

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