Game Latihan Ejaan menggunakan Asisten Google dan Cloud Firestore

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 untuk pengembangan dengan Asisten Google, Cloud Functions, dan Cloud Firestore. Dalam codelab ini, Anda akan membuat game bernama "Latihan Mengeja" yang menggunakan Google Assistant untuk meminta pengguna mengeja kata.

Hal yang akan Anda build

Dalam codelab ini, Anda akan membuat game canggih dengan fungsi berikut:

  • Menerima respons ejaan dari pengguna dan, bergantung pada nilainya, mengubah pesan percakapan
  • Menanggapi dengan petunjuk terkait ejaan kata, seperti definisinya atau mengulangi kata tersebut
  • Membuat game loop sehingga pengguna dapat kembali berinteraksi dengan Asisten setelah mengeja kata

Sebelum mulai membuat, Anda dapat berinteraksi dengan Action versi live di perangkat Anda yang dilengkapi Asisten Google dengan mengucapkan "Hey Google, talk to Spelling Practice". Untuk pengguna yang kembali, jalur default melalui Action ini terlihat seperti interaksi berikut:

Setelah menyelesaikan codelab ini, Action lengkap Anda akan memiliki alur percakapan berikut:

2e9f94dc0ceafc96.png

Hal yang akan Anda pelajari

  • Cara berinteraksi dengan Cloud Firestore
  • Cara menggunakan slot untuk mengumpulkan data dari pengguna
  • Cara memproses input pengguna dan memberikan respons
  • Cara menggunakan kondisi untuk menambahkan logika ke sebuah scene
  • Cara menambahkan game loop

Hal yang akan Anda perlukan

Prasyarat untuk codelab ini meliputi yang berikut:

  • Browser web, seperti Google Chrome
  • IDE untuk menulis Cloud Functions.
  • Metode pembayaran. Codelab ini menggunakan Cloud Functions for Firebase yang mengharuskan project Anda menggunakan paket harga Blaze Firebase ( Pelajari lebih lanjut).
  • Terminal untuk menjalankan perintah shell
  • Node.js 10 atau yang lebih baru

2. Mendapatkan kode fungsi

Clone repositori GitHub dari command line:

$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore

3. Buat project Firebase dan Siapkan aplikasi Anda

Membuat project Firebase

  1. Login ke Firebase.
  2. Di Firebase console, klik Tambahkan Project (atau Buat project), lalu beri nama project Firebase Anda Spelling-Practice.

66ae8d1894f4477.png

  1. Klik opsi pembuatan project. Setujui persyaratan Firebase jika diminta. Lewati penyiapan Google Analytics, karena Anda tidak akan menggunakan Analytics untuk aplikasi ini.

Untuk mempelajari lebih lanjut project Firebase, lihat Memahami project Firebase.

Mengupgrade ke paket harga Blaze

Untuk menggunakan Cloud Functions for Firebase, Anda harus mengupgrade project Firebase ke paket harga Blaze, yang berarti Anda akan melampirkan akun Penagihan Google Cloud ke project Anda. Anda harus memberikan informasi kartu kredit atau metode pembayaran lainnya.

Semua project Firebase, termasuk yang menggunakan paket Blaze, tetap memiliki akses ke kuota penggunaan tanpa biaya untuk Cloud Functions. Langkah-langkah yang diuraikan dalam codelab ini akan berada dalam batas penggunaan tanpa biaya. Namun, Anda akan melihat biaya kecil ( sekitar $0,03) dari Cloud Storage, yang digunakan untuk menghosting image build Cloud Functions Anda.

4. Menginstal Firebase CLI

Firebase CLI (antarmuka command line) memungkinkan Anda men-deploy Cloud Functions.

Ada beberapa opsi untuk menginstal Firebase CLI, bergantung pada sistem operasi dan kasus penggunaan Anda. Langkah-langkah berikut menjelaskan opsi yang paling umum jika Anda juga menggunakan Cloud Functions.

  1. Pastikan Anda telah menginstal npm yang biasanya disertai dengan Node.js.
  2. Instal atau upgrade CLI dengan menjalankan perintah npm berikut:
$ npm -g install firebase-tools
  1. Pastikan bahwa CLI telah diinstal dengan benar dengan menjalankan:
$ firebase --version

Pastikan versi Firebase CLI adalah 9.0.0 atau yang lebih baru sehingga memiliki semua fitur terbaru yang diperlukan untuk Cloud Functions. Jika tidak, jalankan npm install -g firebase-tools untuk melakukan upgrade seperti yang ditunjukkan di atas.

  1. Beri otorisasi Firebase CLI dengan menjalankan:
$ firebase login
  1. Dari direktori spelling-functions-start, siapkan Firebase CLI untuk menggunakan project Firebase Anda. Jalankan perintah berikut, pilih Project ID Anda, lalu ikuti petunjuknya. Saat diminta, Anda dapat memilih Alias apa pun, misalnya codelab.
$ firebase use --add

5. Direktori fungsi

Sekarang Anda akan menambahkan fungsi menggunakan Firebase SDK for Cloud Functions untuk membangun backend game, Spelling Practice.

Cloud Functions memungkinkan Anda memiliki kode yang berjalan di cloud tanpa harus menyiapkan server. Codelab ini akan menunjukkan cara membuat fungsi yang bereaksi terhadap peristiwa Firebase Authentication, Cloud Storage, dan Firebase Realtime Database. Mari kita mulai dengan Autentikasi.

Saat menggunakan Firebase SDK for Cloud Functions, kode fungsi Anda akan berada di direktori functions (secara default). Untuk mempermudah Anda, kami telah membuat file functions/index.js tempat kode Anda akan ditempatkan. Jangan ragu untuk memeriksa direktori functions sebelum melanjutkan.

$ cd functions
$ ls

Kode fungsi Anda juga merupakan aplikasi Node.js, dan oleh karena itu memerlukan package.json yang memberikan beberapa informasi tentang aplikasi Anda dan mencantumkan dependensi.

Jika Anda belum terbiasa dengan Node.js, sebaiknya pelajari lebih lanjut sebelum melanjutkan codelab.

File package.json sudah mencantumkan dua dependensi yang diperlukan: Firebase SDK for Cloud Functions dan Firebase Admin SDK. Untuk menginstalnya secara lokal, jalankan npm install dari direktori functions:

$ npm install

Sekarang mari kita lihat file index.js:

index.js

/**
 * Copyright 2021 Google Inc. All Rights Reserved.
 * ...
 */
// TODO(DEVELOPER): Import the Cloud Functions for Firebase and Firebase Admin modules here. Also import the Actions SDK here.
// TODO(DEVELOPER): Write the getWordDetailsFromDictionaryAPI function here.
// TODO(DEVELOPER): Write the createSpellingPracticeWord function here.
// TODO(DEVELOPER): Write the app Handle getSpellingWordList function here.
// TODO(DEVELOPER): Write the app Handle getSpellingWord function here.
// TODO(DEVELOPER): Write the app Handle repeatSpellingWord function here.
// TODO(DEVELOPER): Write the app Handle definitionOfSpellingWord function here.
// TODO(DEVELOPER): Write the app Handle verifySpellingWord function here.

Anda akan mengimpor modul yang diperlukan terlebih dahulu, lalu menulis empat fungsi sebagai pengganti TODO. Lanjutkan ke langkah berikutnya dalam codelab untuk mengimpor modul.

6. Mengimpor modul yang diperlukan

Codelab ini memerlukan tiga modul.

  • Modul firebase-functions memungkinkan kita menulis pemicu untuk Cloud Functions
  • Modul firebase-admin memungkinkan kita menggunakan platform Firebase di server dengan akses admin, misalnya untuk menulis ke Cloud Firestore.
  • Library Fulfillment Node.js Actions SDK memenuhi handler Actions SDK untuk Asisten Google.
  1. Instal Actions SDK dengan menjalankan perintah npm berikut:
$ npm install @assistant/conversation
  1. Di file index.js, ganti TODO pertama dengan kode berikut.

Perubahan ini mengimpor setiap modul yang diperlukan.

Selain itu, Firebase Admin SDK dapat dikonfigurasi secara otomatis saat di-deploy di lingkungan Cloud Functions atau penampung Google Cloud lainnya. Inilah yang terjadi saat kita memanggil admin.initializeApp(); dalam perubahan di bawah.

index.js

/**
 * Copyright 2021 Google Inc. All Rights Reserved.
 * ...
 */

// Import the Actions SDK
const {conversation} = require('@assistant/conversation');
const https = require('https');
const app = conversation();
const cors = require('cors')({origin: true});

// Import the Firebase SDK for Cloud Functions.
const functions = require('firebase-functions');
// Import and initialize the Firebase Admin SDK.
const admin = require('firebase-admin');
admin.initializeApp();
// To access Cloud Firestore
const db = admin.firestore();
// TODO(DEVELOPER): Write the getWordDetailsFromDictionaryAPI function here.
// TODO(DEVELOPER): Write the createSpellingPracticeWord function here.
// TODO(DEVELOPER): Write the shuffleWordList function here.
// TODO(DEVELOPER): Write the app Handle getSpellingWordList function here.
// TODO(DEVELOPER): Write the app Handle getSpellingWord function here.
// TODO(DEVELOPER): Write the app Handle repeatSpellingWord function here.
// TODO(DEVELOPER): Write the app Handle definitionOfSpellingWord function here.
// TODO(DEVELOPER): Write the app Handle verifySpellingWord function here.

Sekarang, mari kita tambahkan logika bisnis menggunakan fungsi untuk mendukung Tindakan Asisten.

7. Membuat fungsi

Mendapatkan definisi kata dan menuliskannya ke Cloud Firestore

Anda akan menggunakan dictionaryapi.dev public API untuk mendapatkan definisi kata.

Di file index.js, ganti TODO untuk getWordDetailsFromDictionaryAPI dengan kode berikut:

index.js

// Retrieves word definition and audio pronunciation from api.dictionaryapi.dev service
// Function uses service provided by https://dictionaryapi.dev/
async function getWordDetailsFromDictionaryAPI(word) {
  let responseData="";
  let req = https.request({
    host: 'api.dictionaryapi.dev',
    port: 443,
    path:'/api/v2/entries/en/' + word,
    method:'GET'
  }, (res) => {
    res.setEncoding('utf8');
    res.on('data', d => {
        responseData+=d;
    })
    res.on('end',function(){
        let object = JSON.parse(responseData)
        const wordListRef = db.collection('wordlist');
        wordListRef.doc(object[0].word).set(
          object[0]
        );
       return responseData;
     });
  });
  req.end();
}

Menambahkan pemicu Cloud Firestore

Selanjutnya, Anda akan membuat Cloud Function yang dipicu setiap kali dokumen baru dibuat di Cloud Firestore. Fungsi ini akan memanggil dictionaryapi.dev API untuk mendapatkan definisi kata melalui fungsi getWordDetailsFromDictionaryAPI yang baru saja kita tulis di atas.

Di file index.js, ganti TODO untuk createSpellingPracticeWord dengan kode berikut:

index.js

// Pemicu Firestore yang mengambil definisi kata melalui getWordDetailsFromDictionaryAPI untuk setiap dokumen Firestore baru

exports.createSpellingPracticeWord = functions.firestore
  .document('wordlist/{word}')
  .onCreate((snap, context) => {
    const newValue = snap.data();
    const word = newValue.word;
    getWordDetailsFromDictionaryAPI(word);
});

Mendapatkan daftar kata untuk game

Anda dapat menulis Cloud Function yang mengambil daftar kata latihan ejaan dari Cloud Firestore untuk Asisten. Untuk itu, kita menggunakan handler aplikasi.

Di file index.js, ganti TODO untuk getSpellingWordList dengan kode berikut.

Menambahkan fungsi ini ke app.handle khusus adalah cara membuat fungsi dapat diakses dari Asisten.

index.js

// Store the list of spelling words in Assistant session
app.handle('getSpellingWordList', conv => {
  const wordListRef = db.collection('wordlist').limit(50);
  const snapshot = wordListRef;

  if (snapshot.empty) {
    console.log('No matching documents.');
    return;
  }
  VocabularyList = []

  return snapshot.get().then(snapshot => {
    snapshot.forEach(doc => {
      if (doc.data().word) {
          let definition = 'unknown';
          let audio = 'unknown';
          try {
            if(doc.data().hasOwnProperty('meanings')) {
              if(doc.data().meanings[0].hasOwnProperty('definitions')) {
                  definition = doc.data().meanings[0].definitions[0].definition;
              }
            }
            if(doc.data().hasOwnProperty('phonetics')) {
              if(doc.data().phonetics.length > 0)
                audio = doc.data().phonetics[0].audio;
            }
          } catch (error) {
            console.log(error);
          }

          let obj = {
            word: doc.data().word,
            answer: doc.data().word.split("").join(" "),
            definition: definition,
            audio: audio
          }
          VocabularyList.push(obj);
      }
      // Shuffle the array
      let currentIndex = VocabularyList.length, temporaryValue, randomIndex;
      while (0 !== currentIndex) {
        randomIndex = Math.floor(Math.random() * currentIndex);
        currentIndex -= 1;
        temporaryValue = VocabularyList[currentIndex];
        VocabularyList[currentIndex] = VocabularyList[randomIndex];
        VocabularyList[randomIndex] = temporaryValue;
      }
      conv.session.params.vocabWord = VocabularyList;
      conv.session.params.vocabWordIndex = 0;
    });
  });
})

Mendapatkan kata dari sesi Asisten

Anda dapat menulis Cloud Function yang menampilkan kata ejaan berikutnya dari daftar kata.

Di file index.js, ganti TODO untuk getSpellingWord dengan kode berikut:

index.js

// Returns a spelling practice word to Google Assistant and uses Speech Synthesis Markup Language (SSML) to format the response
app.handle('getSpellingWord',  conv => {
  if (!conv.session.params.vocabWord.empty) {
    conv.session.params.vocabWordIndex+=1;
    const ssml = '<speak>' +
    '<audio src="'+ conv.session.params.vocabWord[conv.session.params.vocabWordIndex].audio +'">Use phonetics to spell the word.</audio> ' +
    '</speak>';
    conv.add(ssml);
  }
  else
    conv.add('Great job! You completed the Spelling practice');
});

Mengaktifkan game untuk mengulangi kata

Anda dapat menulis Cloud Function yang mengulangi kata saat ini untuk game.

Di file index.js, ganti TODO untuk repeatSpellingWord dengan kode berikut:

index.js

// Returns current spelling word
app.handle('repeatSpellingWord',  conv => {
  if (!conv.session.params.vocabWord.empty) {
    const ssml = '<speak>' +
    '<audio src="'+ conv.session.params.vocabWord[conv.session.params.vocabWordIndex].audio +'">Use phonetics to spell the word. </audio> ' +
    '</speak>';
    conv.add(ssml);
  }
  else
    conv.add('Great job! You completed the Spelling practice');
});

Mendapatkan definisi kata

Anda dapat menulis Cloud Function yang memberikan definisi kata saat ini untuk game.

Di file index.js, ganti TODO untuk definitionOfSpellingWord dengan kode berikut:

index.js

// Returns spelling word definition from Assistant session parameter
app.handle('definitionOfSpellingWord',  conv => {
  conv.add( 'It means ' + conv.session.params.vocabWord[conv.session.params.vocabWordIndex].definition);
});

Periksa respons ejaan pengguna

Anda dapat menulis Cloud Function yang memverifikasi respons pengguna tentang cara mengeja kata saat ini untuk game.

Di file index.js, ganti TODO untuk verifySpellingWord dengan kode berikut:

index.js

// Verifies user spelling response
app.handle('verifySpellingWord', conv => {
  try {
    userResponse = conv.intent.params.userresponse.resolved.join("");
    if (userResponse.toLowerCase() === conv.session.params.vocabWord[conv.session.params.vocabWordIndex].word.toLowerCase()) {
      conv.add('You are correct. Say next to continue.');
    }
    else {
      conv.add('Sorry, wrong answer. The correct answer is ' + conv.session.params.vocabWord[conv.session.params.vocabWordIndex].answer + ' . Say next to continue.');
    }
  } catch (error) {
    conv.add('Sorry. I did not understand your response' );
  }
});
exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);

Men-deploy semua fungsi Anda

Cloud Functions Anda hanya akan aktif setelah Anda men-deploy-nya ke Firebase.

Dari root direktori spelling-functions-start, jalankan perintah berikut:

$ firebase deploy --only functions

Ini adalah output konsol yang akan Anda lihat:

i  deploying functions
i  functions: ensuring necessary APIs are enabled...
⚠  functions: missing necessary APIs. Enabling now...
i  env: ensuring necessary APIs are enabled...
⚠  env: missing necessary APIs. Enabling now...
i  functions: waiting for APIs to activate...
i  env: waiting for APIs to activate...
✔  env: all necessary APIs are enabled
✔  functions: all necessary APIs are enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (X.XX KB) for uploading
✔  functions: functions folder uploaded successfully
i  starting release process (may take several minutes)...
i  functions: creating function createSpellingPracticeWord(us-central1)...
✔  functions[createSpellingPracticeWord(us-central1)]: Successful create operation.
i  functions: creating function ActionsOnGoogleFulfillment(us-central1)...
✔  functions[ActionsOnGoogleFulfillment(us-central1)]: Successful create operation.

✔  Deploy complete!
Project Console: https://console.firebase.google.com/project/spelling-practice-1234/overview

Catat URL endpoint Http fungsi ActionsOnGoogleFulfillment untuk digunakan nanti. Untuk mendapatkan endpoint, buka Firebase Console, lalu klik project spelling-practice. Buka dasbor Functions untuk melihat endpoint fungsi.

332cb0437411a242.png

Anda telah selesai menambahkan semua fungsi yang diperlukan. Sekarang, mari kita lanjutkan ke penyiapan Cloud Firestore.

8. Aktifkan Cloud Firestore

Anda harus mengaktifkan Cloud Firestore.

Di bagian Build Firebase console, klik Firestore. Lalu klik Buat database.

5c0b4abf4410ffcf.png

Akses ke data di Cloud Firestore dikontrol oleh Aturan Keamanan. Pertama, Anda perlu menetapkan beberapa aturan dasar pada data untuk memulai. Klik Firestore, lalu di tab Rules di Firebase console, tambahkan aturan berikut, lalu klik Publish.

Aturan berikut membatasi akses data hanya untuk pengguna yang login, sehingga mencegah pengguna yang tidak diautentikasi membaca atau menulis.

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      //
      // WARNING: These rules are insecure! We will replace them with
      // more secure rules later in the codelab
      //
      allow read, write: if request.auth != null;
    }
  }
}

9. Menambahkan data kata ejaan ke Cloud Firestore

Pada langkah ini, Anda akan menulis data kata ejaan ke Cloud Firestore sehingga Anda dapat membuat daftar kata untuk Asisten (dan game).

Data Cloud Firestore disusun menjadi koleksi, dokumen, kolom, dan subkoleksi. Setiap kata untuk game akan disimpan sebagai dokumennya sendiri dalam koleksi tingkat teratas yang disebut wordlist. Untuk setiap dokumen baru dalam koleksi Firestore, fungsi createSpellingPracticeWord akan dipicu untuk mendapatkan detail kata dari layanan Dictionary API.

Membuat koleksi Cloud Firestore

  1. Di Firebase console, buka bagian Cloud Firestore.
  2. Klik + Mulai koleksi.
  3. Di kotak teks Collection ID, masukkan wordlist, lalu klik Next.

1b4ccadb90f52f02.png

Selanjutnya, kita akan membuat dokumen untuk kata: agreement

  1. Di kotak teks Document ID, masukkan agreement.
  2. Di kotak teks Field, masukkan word dan di kotak teks Value, masukkan agreement.
  3. Klik Save.

379037e011e8511e.png

Saat Anda menambahkan dokumen ini ke Cloud Firestore, fungsi createSpellingPracticeWord akan dipicu untuk mengambil detail definisi kata. Tambahkan lebih banyak kata (misalnya: kagum, mobil, benar, beri tahu, lebih baik, perjalanan, ...) dengan membuat dokumen baru untuk setiap kata.

10. Menyiapkan Asisten Google

Bagian berikut menjelaskan cara menyiapkan lingkungan pengembangan Asisten Google 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.

c988e1e639e6d6e1.png

Buat project Actions

Project Actions Anda adalah container untuk Action Anda. Untuk membuat project Actions di codelab ini, ikuti langkah-langkah berikut:

  1. Buka Konsol Actions.
  2. Klik Project baru.
  3. Setujui persyaratan layanan

b174d45710b8086b.png

  1. Ketik atau pilih spelling-practice-codelab yang Anda buat menggunakan Firebase Console. (Nama adalah untuk referensi internal Anda. Setelah ini, Anda dapat menetapkan nama eksternal untuk project Anda.)

a2951de5d2001fac.png

  1. Klik Impor project.
  2. Di layar What kind of Action do you want to build?, pilih kartu Custom.
  3. Klik Berikutnya.
  4. Pilih kartu Blank project.
  5. Klik Start building.
  6. Masukkan Latihan Ejaan untuk nama tampilan, lalu klik simpan.

Pengguna memulai percakapan dengan Action Anda melalui pemanggilan (invocation). Misalnya, pengguna dapat memanggil Action Anda dengan mengucapkan frasa seperti "Ok Google, bicara dengan Latihan Ejaan", yang mana Latihan Ejaan adalah nama 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 "Talk to my test app" ("Bicara dengan aplikasi pengujian saya") di simulator untuk mengaktifkan Action Anda.

Mengonfigurasi pemenuhan pesanan

Anda perlu menghubungkan pengendali peristiwa untuk Cloud Functions yang Anda tulis dan deploy sebelumnya dalam codelab ini ke Asisten.

Untuk mengonfigurasi fulfillment, ikuti langkah-langkah berikut:

  1. Klik Webhook di navigasi samping.
  2. Pilih Endpoint HTTPS sebagai opsi pemenuhan:

d523bf003e96e66f.png

  1. Masukkan URL endpoint fungsi Anda di kotak teks Endpoint HTTPs, lalu klik Simpan.

be53e2cd0d914d54.png

Di bagian berikutnya, Anda akan menyesuaikan perintah untuk pemanggilan utama di konsol Actions.

Menyiapkan pemanggilan utama

Anda harus mengedit pemanggilan utama untuk menentukan apa yang terjadi setelah pengguna memanggil Action Anda.

Secara default, Actions Builder menyediakan pesan generik saat pemanggilan dipicu ("Start building your Action by defining main invocation.").

Untuk mengubah pesan yang dikirimkan Action kepada pengguna saat pengguna memanggil Action, ikuti langkah-langkah berikut:

  1. Klik Main invocation di navigasi.

9ff088c04c995cde.png

  1. Periksa Call your webhook dan tambahkan nama pengendali peristiwa getSpellingWordList di kotak teks.
  2. Di editor kode, ganti teks di kolom speech dengan pesan selamat datang berikut: Welcome to Spelling Practice

Catatan: Anda dapat menggunakan format YAML ataupun JSON untuk mengedit perintah Anda.

  1. Klik Save.

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.

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

  1. Di menu navigasi atas, klik Test untuk membuka simulator.
  2. Untuk memanggil Action di simulator, ketik Talk to Spelling Practice di kolom input di kiri atas, lalu tekan Enter di keyboard Anda.

651fc8da1ac9aa0a.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.

Melihat log peristiwa

Saat Anda berada di tab Test, panel di sebelah kanan menampilkan log aktivitas, yang menampilkan histori percakapan sebagai log aktivitas. Setiap log peristiwa menampilkan peristiwa yang terjadi selama percakapan tersebut. Untuk melihat log acara, klik ikon abu-abu sebelum acara.

Action Anda saat ini memiliki satu log peristiwa, yang menampilkan input pengguna ("Talk to Spelling Practice") dan respons Action Anda. Screenshot berikut menunjukkan log peristiwa Action Anda:

a6fb192f94426824.png

11. Membangun percakapan untuk Latihan Mengeja

Kini, setelah Anda menentukan apa yang terjadi setelah pengguna memanggil Action, Anda dapat membuat bagian percakapan Action lainnya. Latihan Ejaan memiliki empat adegan, dan Anda harus mengaktifkan setiap adegan sebelum dapat dijalankan. Cara paling umum untuk mengaktifkan scene adalah dengan mengonfigurasi Action Anda sehingga, saat input pengguna cocok dengan intent pengguna dalam suatu scene, intent tersebut akan memicu transisi ke scene lain dan mengaktifkannya.

Melakukan transisi dari pemanggilan utama ke adegan awal

Di bagian ini, Anda akan membuat scene baru bernama Start, yang mengirimkan pesan kepada pengguna yang menanyakan apakah mereka ingin mulai bermain Latihan Mengeja. 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. Klik Develop di navigasi atas. Kemudian, klik Main invocation di navigasi sebelah kiri.
  2. Pada bagian Transition di sebelah kanan, klik menu drop-down, lalu ketik Start di kolom teks.

dd4f1807a57f794d.png

  1. Klik Tambahkan. Tindakan ini akan membuat scene yang disebut Start, dan memberi tahu Action untuk bertransisi ke scene Start setelah Action mengirimkan pesan sambutan kepada pengguna.
  2. Klik Scenes di navigasi kiri untuk menampilkan daftar scene.
  3. Di bagian Scenes, klik Start untuk melihat scene Start.
  4. Klik + di bagian On enter pada scene Start.
  5. Pilih Send prompts.
  6. Ganti kalimat di kolom speech (Enter the response that users will see or hear...) dengan pertanyaan untuk diajukan kepada pengguna: Use phonetic alphabet to spell the word. For example alpha for a, bravo for b, charlie for c etc. Do you want to continue?

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 yang muncul di bawah pesan yang baru saja Anda konfigurasikan (Do you want to play

Spelling Practice

?) untuk mendukung pengguna di perangkat dengan layar.

Untuk menambahkan chip saran ke perintah scene Start, ikuti langkah-langkah berikut:

  1. Di scene Start, klik saran di bawah editor kode. Tindakan ini menambahkan satu chip saran.
  2. Di kolom title, ganti Suggested Response dengan 'Yes'.
  3. Menggunakan format yang sama, tambahkan chip saran bernama 'No' dan 'Help with Phonetics' secara manual. Kode Anda akan terlihat seperti cuplikan berikut:
  4. Klik Save.

5ff2ecdc56801b91.png

Menguji Action Anda di simulator

Sampai di sini, Action Anda seharusnya bertransisi dari pemanggilan utama ke scene Start dan bertanya kepada pengguna apakah mereka ingin melanjutkan. Chip saran juga akan muncul di tampilan simulasi.

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

  1. Di menu navigasi, klik Test untuk membuka simulator.
  2. Untuk menguji Action Anda di simulator, ketik Talk to Spelling Practice di kolom Input.
  3. Tekan Enter. Action Anda akan merespons dengan pesan Main invocation dan pesan scene Start yang ditambahkan, "Welcome to Spelling Practice. Gunakan alfabet fonetik untuk mengeja kata. Misalnya, alfa untuk a, bravo untuk b, charlie untuk c, dll. Apakah Anda ingin melanjutkan?".

Screenshot berikut menunjukkan interaksi ini:

338c9570b02a618e.png

  1. Klik chip saran Yes atau No atau Help with Phonetics untuk merespons perintah. (Anda juga dapat mengucapkan "Ya" atau "Tidak" atau "Bantuan dengan Fonetik" atau masukkan Yes atau No atau Help with Phonetics di kolom Input.)

Saat Anda merespons pesan, Action merespons dengan pesan yang menunjukkan bahwa ia tidak dapat memahami input Anda: "Maaf, saya tidak mengerti. Can you try again?" ("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 no dan fonetik

Kini pengguna dapat merespons pertanyaan yang ada di Action, maka selanjutnya Anda dapat mengonfigurasi Action untuk memahami respons pengguna ("Yes" atau "No" atau "Help with Phonetics"). Di bagian berikut, Anda akan membuat intent pengguna yang dicocokkan saat pengguna mengatakan "Yes" atau "No" atau "Help with Phonetics" dan menambahkan intent ini ke scene Start. Kita akan menggunakan intent sistem yes dan akan membuat intent lainnya.

Membuat intent no

Sekarang, Anda perlu membuat intent no untuk memahami dan merespons pengguna saat mereka tidak ingin bermain game. Untuk membuat intent ini, ikuti langkah-langkah berikut:

  1. Klik Develop di navigasi.
  2. Klik Intent Kustom di navigasi untuk membuka daftar intent.
  3. Klik + (tanda plus) di akhir daftar intent. Beri nama untuk intent baru no, lalu tekan Enter.
  4. Klik no untuk membuka halaman intent no.
  5. Di bagian Add training phrases, klik kotak teks Enter Phrase dan masukkan frasa berikut:
  • No
  • N
  • I don't want
  • nope

98b0c9a7b67ea9b9.png

  1. Klik Save.

Menambahkan intent no ke scene Start

Sekarang, Action dapat memahami saat pengguna menyatakan "tidak" atau sesuatu yang mirip dengan "tidak", seperti "tidak mau". Anda perlu menambahkan intent pengguna no ke scene Start karena pengguna merespons perintah Start ("Selamat datang di Latihan Mengeja. Gunakan alfabet fonetik untuk mengeja kata. Misalnya, alfa untuk a, bravo untuk b, charlie untuk c, dll. Apakah Anda ingin melanjutkan?").

Untuk menambahkan intent ini ke scene Start, ikuti langkah-langkah berikut:

  1. Klik scene Start di navigasi.
  2. Klik + (tanda plus) di scene Start di samping User intent handling.
  3. Di bagian Intent, pilih no di drop-down.

51f752e78c8b4942.png

  1. Klik Send prompts dan perbarui kolom speech dengan teks berikut: Good Bye.

Kode di editor Anda akan terlihat seperti cuplikan berikut:

candidates:
  - first_simple:
      variants:
        - speech: >-
             Goodbye.
  1. Di bagian Transition, pilih End conversation dari dropdown.
  2. Klik Save.

Menguji intent no di simulator

Pada tahap ini, Action Anda seharusnya paham ketika pengguna tidak ingin bermain game dan memberikan respons yang sesuai.

Untuk menguji intent ini di simulator, ikuti langkah-langkah berikut:

  1. Di menu navigasi, klik Test.
  2. Ketik Talk to Spelling Practice di kolom Input, lalu tekan Enter.
  3. Ketik No di kolom Input, lalu tekan Enter. Atau, klik chip saran Tidak.

7727a456b522f31b.png

Menambahkan intent YES sistem ke scene Start

Sekarang, kita akan menambahkan intent SYSTEM "YES" ke scene Start, karena pengguna merespons "YA" terhadap perintah Start ("Selamat datang di Latihan Mengeja. Gunakan alfabet fonetik untuk mengeja kata. Misalnya, alfa untuk a, bravo untuk b, charlie untuk c, dll. Apakah Anda ingin melanjutkan?").

Untuk menambahkan intent pengguna ini ke scene Start, ikuti langkah-langkah berikut:

  1. Klik scene Start di navigasi.
  2. Klik + (tanda plus) di scene Start di samping User intent handling.
  3. Di bagian Semua Intent Sistem, pilih YA di drop-down intent.

f6cbe789cde49e8f.png

  1. Klik Call your webhook dan perbarui kotak teks event handler dengan fungsi yang Anda buat sebelumnya: getSpellingWordList
  2. Di bagian Transition, klik drop-down dan pilih End conversation.
  3. Klik Save.

Menguji intent YES di simulator

Pada tahap ini, Action Anda seharusnya paham saat pengguna ingin bermain game dan memberikan respons yang sesuai.

Untuk menguji intent ini di simulator, ikuti langkah-langkah berikut:

  1. Di menu navigasi, klik Test.
  2. Untuk menguji Action di simulator, ketik Talk to Spelling Practice di kolom Input, lalu tekan Enter.
  3. Ketik Yes di kolom Input, lalu tekan Enter. Atau, klik chip saran Yes.

Tindakan Anda mengambil daftar semua kata latihan ejaan dan menyimpannya dalam sesi. Action Anda lalu mengakhiri sesi karena Anda telah memilih transisi End conversation untuk intent YES.

Membuat intent Phonetics

Untuk membuat intent Phonetics, ikuti langkah-langkah berikut:

  1. Klik Develop di navigasi.
  2. Klik Intent Kustom di navigasi untuk membuka daftar intent.
  3. Klik + (tanda plus) di akhir daftar intent. Beri nama intent baru phonetics, lalu tekan Enter.
  4. Klik intent phonetics untuk membuka halaman intent phonetics.
  5. Di bagian Tambahkan frasa pelatihan, klik kotak teks Enter Phrase dan masukkan frasa berikut:
  • how do I spell words
  • phonetics
  • help me with phonetics
  • phonetic alphabet

1455bdfca8dae46.png

  1. Klik Save.

Menambahkan intent phonetics ke scene Start

Sekarang, Action dapat memahami saat pengguna menyatakan intent "fonetik". Anda dapat menambahkan intent pengguna phonetics ke scene Start, karena pengguna merespons perintah Start ("Selamat datang di Latihan Ejaan. Gunakan alfabet fonetik untuk mengeja kata. Misalnya, alfa untuk a, bravo untuk b, charlie untuk c, dll. Apakah Anda ingin melanjutkan?").

Untuk menambahkan intent pengguna ini ke scene Start, ikuti langkah-langkah berikut:

  1. Klik scene Start di navigasi.
  2. Klik + (tanda plus) di scene Start di samping User intent handling.
  3. Pilih fonetik di drop-down intent.

67ee2e08000b2aee.png

  1. Di bagian Transition, klik drop-down dan pilih End conversation.
  2. Klik Save.

Transisi dari adegan Mulai ke adegan Ejaan

Di bagian ini, Anda akan membuat scene baru bernama Spelling, yang mengirimkan pesan kepada pengguna untuk mengeja kata menggunakan alfabet fonetik.

Untuk membuat scene ini dan menambahkan transisi ke scene tersebut, ikuti langkah-langkah berikut:

  1. Klik Develop di navigasi atas. Kemudian, klik scene Start di navigasi kiri.
  2. Di bagian Penanganan niat pengguna, klik when actions.intent.YES is matched dan di sebelah kanan pada bagian transisi, klik menu drop-down dan ketik Spelling di kolom teks.
  3. Klik Tambahkan. Tindakan ini akan membuat scene bernama Spelling, dan memberi tahu Action untuk bertransisi ke scene Spelling setelah pencocokan dengan maksud YA.
  4. Perluas Scenes di navigasi kiri untuk menampilkan daftar adegan.
  5. Di bagian Scenes, klik Spelling untuk melihat scene Spelling.
  6. Klik + di bagian On enter pada scene Spelling.
  7. Klik Panggil webhook Anda dan masukkan getSpellingWord di kotak teks pengendali peristiwa.
  8. Pilih Send prompts.
  9. Ganti kalimat di kolom speech (Enter the response that users will see or hear...) dengan {}. Perintah sebenarnya akan diisi oleh webhook.

Chip saran menawarkan saran yang dapat diklik untuk pengguna. Chip ini kemudian akan diproses Action sebagai input pengguna.

Untuk menambahkan chip saran ke perintah scene Spelling, ikuti langkah-langkah berikut:

  1. Di scene Spelling, klik saran di bawah editor kode. Tindakan ini menambahkan tiga chip saran.
  2. Di kolom title, ganti Suggested Response dengan 'Repeat'.
  3. Menggunakan format yang sama, tambahkan chip saran bernama 'Skip' secara manual.
  4. Menggunakan format yang sama, tambahkan chip saran bernama 'Quit' secara manual. Kode Anda akan terlihat seperti cuplikan berikut:
  5. Klik Save.
suggestions:
      - title: 'Repeat'
      - title: 'Skip'
      - title: 'Quit'

e1d437f714ea1539.png

Membuat intent Repeat

Untuk membuat intent repeat, ikuti langkah-langkah berikut:

  1. Klik Develop di navigasi.
  2. Klik Intent Kustom di navigasi untuk membuka daftar intent.
  3. Klik + (tanda plus) di akhir daftar intent. Beri nama intent baru repeat, lalu tekan Enter.
  4. Klik intent repeat untuk membuka halaman intent definition.
  5. Di bagian Add training phrases, klik kotak teks Enter Phrase dan masukkan frasa berikut:
  • one more time please
  • say the word again
  • repeat the word
  • tell me again
  • repeat

e61f0b9f80510bc9.png

  1. Klik Save.

Menambahkan intent repeat ke scene Spelling

Sekarang, Action dapat memahami saat pengguna menyatakan intent "ulangi". Anda dapat menambahkan intent pengguna repeat ke scene Spelling, karena pengguna merespons perintah Spelling ("Spell the word using phonetic alphabet").

Untuk menambahkan intent pengguna ini ke scene Spelling, ikuti langkah-langkah berikut:

  1. Klik scene Spelling di navigasi.
  2. Klik + (tanda plus) di scene Spelling di samping User intent handling.
  3. Pilih repeat di drop-down intent.

5cfd623b25bedbed.png

  1. Centang Call your webhook dan masukkan repeatSpellingWord di kotak teks pengendali peristiwa untuk mendapatkan definisi kata.
  2. Centang Send prompts.
  3. Ganti kalimat di kolom speech (Enter the response that users will see or hear...) dengan '. Perintah sebenarnya akan diisi oleh webhook.

Menambahkan chip saran ke "Jika Pengulangan cocok"

  1. Di "When Repeat is matched" di bagian Penanganan niat pengguna, klik suggestions di bawah editor kode. Tindakan ini menambahkan tiga chip saran.
  2. Di kolom title, ganti Suggested Response dengan 'Skip'.
  3. Menggunakan format yang sama, tambahkan chip saran berjudul 'Quit' secara manual.Kode Anda akan terlihat seperti cuplikan berikut:
suggestions:
      - title: 'Skip'
      - title: 'Quit'

ab40e4b0c432b97c.png

  1. Klik Simpan.

Membuat intent definition

Untuk membuat intent definition, ikuti langkah-langkah berikut:

  1. Klik Develop di navigasi.
  2. Klik Intent Kustom di navigasi untuk membuka daftar intent.
  3. Klik + (tanda plus) di akhir daftar intent. Beri nama intent baru definition, lalu tekan Enter.
  4. Klik intent definition untuk membuka halaman intent definition.
  5. Di bagian Add training phrases, klik kotak teks Enter Phrase dan masukkan frasa berikut:
  • I would like to know the definition
  • tell me the definition
  • what does it mean
  • meaning
  • definition
  • what is the definition?

c1b88a9c0b1ac082.png

  1. Klik Save.

Menambahkan intent definition ke scene Spelling

Sekarang, Action dapat memahami saat pengguna menyatakan intent "definisi". Anda dapat menambahkan intent pengguna definition ke scene Spelling, karena pengguna merespons perintah Spelling ("Spell the word using phonetic alphabet").

Untuk menambahkan intent pengguna ini ke scene Spelling, ikuti langkah-langkah berikut:

  1. Klik scene Spelling di navigasi.
  2. Klik + (tanda plus) di scene Spelling di samping User intent handling.
  3. Pilih definition di drop-down intent.

646bdcac3ad3eb0c.png

  1. Periksa Call your webhook dan masukkan definitionOfSpellingWord di kotak teks pengendali peristiwa untuk mendapatkan definisi kata.
  2. Centang Send prompts.
  3. Ganti kalimat di kolom speech (Enter the response that users will see or hear...) dengan ‘‘`. Perintah sebenarnya akan diisi oleh webhook.

Menambahkan chip saran ke respons webhook

  1. Di scene Start, klik suggestions di bawah editor kode. Tindakan ini menambahkan tiga chip saran.
  2. Di kolom title, ganti Suggested Response dengan 'Skip'.
  3. Menggunakan format yang sama, tambahkan chip saran berjudul 'Quit' secara manual.Kode Anda akan terlihat seperti cuplikan berikut:
suggestions:
      - title: 'Skip'
      - title: 'Quit'

25227545839d933f.png

  1. Klik Save.

Membuat intent skip

Untuk membuat intent skip, ikuti langkah-langkah berikut:

  1. Klik Develop di navigasi.
  2. Klik Intent di navigasi untuk membuka daftar intent.
  3. Klik + (tanda plus) di akhir daftar intent. Beri nama intent baru skip, lalu tekan Enter.
  4. Klik intent skip untuk membuka halaman intent skip.
  5. Di bagian Add training phrases, klik kotak teks Enter Phrase dan masukkan frasa berikut:
  • next word
  • go next
  • next
  • skip
  • skip word

d1c4908a3d7882f8.png

  1. Klik Save.

Menambahkan intent Skip ke scene Spelling

Sekarang, Action dapat memahami saat pengguna menyatakan intent "lewati". Anda dapat menambahkan intent pengguna skip ke scene Spelling, karena pengguna merespons perintah Spelling ("Spell the word using phonetic alphabet").

Untuk menambahkan intent pengguna ini ke scene Spelling, ikuti langkah-langkah berikut:

  1. Klik scene Spelling di navigasi.
  2. Klik + (tanda plus) di scene Spelling di samping User intent handling.
  3. Pilih skip di drop-down intent.

5465f97542217964.png

  1. Di bagian Transition di sebelah kanan, klik menu drop-down, lalu pilih Spelling .

c8072485ca82bd3f.png

  1. Klik Save.

Membuat intent quit

Untuk membuat intent Quit, ikuti langkah-langkah berikut:

  1. Klik Develop di navigasi.
  2. Klik Intent di navigasi untuk membuka daftar intent.
  3. Klik + (tanda plus) di akhir daftar intent. Beri nama intent baru Quit, lalu tekan Enter.
  4. Klik intent Quit untuk membuka halaman intent definition.
  5. Di bagian Add training phrases, klik kotak teks Enter Phrase dan masukkan frasa berikut:
  • I quit
  • Goodbye
  • Cancel
  • Exit
  • Quit

9916f77b8766541e.png

  1. Klik Simpan.

Menambahkan intent Quit ke scene Spelling

Sekarang, Action dapat memahami saat pengguna menyatakan intent "keluar". Anda dapat menambahkan intent pengguna quit ke scene Spelling, karena pengguna merespons perintah Spelling ("Spell the word using phonetic alphabet").

Untuk menambahkan intent pengguna ini ke scene Spelling, ikuti langkah-langkah berikut:

  1. Klik scene Spelling di navigasi.
  2. Klik + (tanda plus) di scene Spelling di samping User intent handling.
  3. Pilih quit di drop-down intent.

5f62fb18a3653d66.png

  1. Di bagian Transition di sebelah kanan, klik menu drop-down, lalu pilih End conversation . 1ffbe35a7bbbb4b0.png
  2. Klik Save.

Membuat tipe phonetic_alphabet

Di bagian ini, Anda akan membuat tipe baru yang disebut phonetic_alphabet, yang menentukan opsi alfabet fonetik yang dapat dipilih pengguna untuk mengeja kata. Anda juga dapat menentukan beberapa sinonim untuk opsi-opsi ini jika pengguna mengatakan sesuatu yang serupa. Di bagian selanjutnya, Anda akan menambahkan tipe phonetic_alphabet ke slot untuk menentukan bahwa Anda ingin memperoleh respons pengguna.

Untuk membuat tipe phonetic_alphabet, ikuti langkah-langkah berikut:

  1. Klik Develop di navigasi.
  2. Klik + (tanda plus) di bagian Types.
  3. Ketik phonetic_alphabet, lalu tekan Enter.
  4. Klik phonetic_alphabet untuk membuka opsi.
  5. Di bagian Jenis nilai apa yang akan didukung Jenis ini?, pilih opsi Kata dan sinonim
  6. Masukkan entri berikut dan nilai yang sesuai di bagian Add entries:

a

alpha, apple, amsterdam

b

bravo, butter, baltimore

c

charlie, cat, casablanca

d

delta, anjing, denmark

e

echo, edward, edison

f

foxtrot, fox, florida

g

golf, george, gallipoli

j

hotel, harry, havana

i

india, ink, italia

j

juliette, johnny, jerusalem

k

kilo, raja, kilogram

l

lima, cinta, london

mnt

mike, money, madagascar

n

november, new york, nancy

o

oscar, orange, oslo

p

papa, paris, peter

q

quebec, queen

r

romeo, roma, robert

dtk

sierra, sugar, santiago

t

tango, tommy, tripoli

u

seragam, payung, paman

v

victor, vinegar, Valencia

w

whiskey, william, washington

x

sinar-X

y

yankee, yellow, yorker

z

zulu, zebra, zurich

Tabel key-value Anda akan terlihat seperti berikut:

5b5a5cd9fa557e1b.png

  1. Klik Save.

Mengonfigurasi pengisian slot

Selanjutnya, Anda perlu mengonfigurasi pengisian slot di scene Spelling. Untuk mengonfigurasi logika pengisian slot, ikuti langkah-langkah berikut:

  1. Klik scene Spelling di navigasi.
  2. Klik + (tanda plus) di scene Spelling untuk Slot filling.
  3. Di kolom Enter slot name, tambahkan userresponse sebagai nama slot.
  4. Di drop-down Select type, pilih phonetic_alphabet sebagai jenis slot.
  5. Periksa Slot ini menerima daftar nilai
  6. Centang This slot is required.
  7. Pilih opsi Penulisan balik nilai slot kustom dan masukkan userresponse di kotak teks parameter sesi.

ba57a419877a07f3.png

  1. Klik Save.

Menambahkan Kondisi ke layar Spelling

Untuk menambahkan Kondisi ke scene Spelling, ikuti langkah-langkah berikut:

  1. Klik scene Spelling di navigasi.
  2. Klik + (tanda plus) di scene Spelling di samping Condition.
  3. Masukkan scene.slots.status == "FINAL" sebagai ketentuan
  4. Centang Panggil webhook Anda dan masukkan verifySpellingWord di kotak teks pengendali peristiwa untuk memverifikasi respons pengguna.
  5. Centang Send prompts.
  6. Ganti kalimat di kolom speech (Enter the response that users will see or hear...) dengan {}. Perintah sebenarnya akan diisi oleh webhook.

Menambahkan chip saran ke respons webhook

  1. Di scene Start, klik suggestions di bawah editor kode. Tindakan ini menambahkan tiga chip saran.
  2. Di kolom title, ganti Suggested Response dengan 'Next'.
  3. Menggunakan format yang sama, tambahkan chip saran berjudul 'Quit' secara manual.Kode Anda akan terlihat seperti cuplikan berikut:
suggestions:
      - title: 'Next'
      - title: 'Quit'

ac3d7a9366ebc1b1.png

  1. Klik Save.

12. Menguji Latihan Ejaan di simulator

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

  1. Di menu navigasi, klik Test untuk membuka simulator.
  2. Untuk menguji Action Anda di simulator, ketik Talk to Spelling Practice di kolom Input.
  3. Tekan Enter. Action Anda akan merespons dengan pesan Main invocation dan pesan scene Start yang ditambahkan, "Welcome to Spelling Practice. Gunakan alfabet fonetik untuk mengeja kata. Misalnya, alfa untuk a, bravo untuk b, charlie untuk c, dll. Apakah Anda ingin melanjutkan?".
  4. Ucapkan Ya untuk melanjutkan
  5. Simulator akan memutar suara kata untuk mengeja
  6. Anda dapat mengeja kata menggunakan alfabet fonetik. Misalnya, untuk lebih baik, ucapkan atau ketik "bravo echo tango tango echo romeo"
  7. Simulator akan merespons dengan respons yang benar atau salah.
  8. Ucapkan berikutnya untuk melanjutkan ke kata berikutnya atau ucapkan keluar untuk keluar dari loop game.

13. Selamat

Selamat, Anda telah berhasil membuat game Anda, Spelling Practice.

Sekarang Anda telah mengetahui langkah-langkah penting yang diperlukan untuk membuat game menggunakan Cloud Firestore, Cloud Functions, dan Action Builder Asisten Google.

Yang telah Anda pelajari

  • Cara berinteraksi dengan Cloud Firestore
  • Cara menggunakan slot untuk mengumpulkan data dari pengguna
  • Cara memproses input pengguna dan memberikan respons
  • Cara menggunakan kondisi untuk menambahkan logika ke sebuah scene
  • Cara menambahkan game loop

Referensi pembelajaran tambahan

Anda dapat menjelajahi referensi berikut untuk mempelajari pembuatan Action untuk Asisten Google:

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 dan resource Firebase Anda, selesaikan langkah-langkah yang tercantum di bagian Shutting down (deleting) projects.

Perhatian: Pastikan Anda memilih project yang benar untuk dihapus di halaman Setelan Konsol Google Cloud.

  1. Opsional: Untuk segera menghapus project Anda dari Konsol Actions, selesaikan langkah-langkah yang tercantum di bagian Menghapus project. Jika Anda tidak menyelesaikan langkah ini, project Anda akan dihapus secara otomatis setelah sekitar 30 hari.

Ikuti @ActionsOnGoogle & @Firebase di Twitter untuk terus memantau pengumuman terbaru kami dan kirim tweet dengan tagar #GoogleIO untuk membagikan karya yang telah Anda buat.