Baru-baru ini kami meluncurkan beberapa Actions contoh baru yang merupakan cara tercepat dan termudah bagi Anda untuk membuat Action untuk Asisten Google, dan untuk mempelajari lebih lanjut tentang beragam fitur canggih dari platform Actions on Google. Untuk masing-masing contoh ini, Anda mendapatkan agent yang berfungsi di Dialogflow dengan kode sumber lengkap untuk penyelesaian yang kemudian bisa Anda edit untuk Action Anda sendiri di Asisten.
Kode penyelesaian mengimplementasikan praktik terbaik untuk Actions. Namun, developer sebaiknya mempertimbangkan hal ini hanya sebagai titik awal yang baik untuk mengimplementasikan Action yang dirancang dengan baik.
Mari kita lihat beberapa opsi untuk memperluas contoh ini dengan fitur Google Cloud dan Actions on Google, sehingga mereka bisa digunakan sebagai Actions nyata.

Penyelesaian

Setelah Anda membuat agent Dialogflow untuk contoh Action, kode penyelesaian dihosting dalam Cloud Function for Firebase.


Untuk setiap Actions contoh, kode penyelesaian terdiri dari hal-hal berikut:
  • Petunjuk langkah demi langkah untuk menyesuaikan logika penyelesaian.
  • Struktur data hardcode dasar.
  • Link ide untuk memperluas dan menyesuaikan Action ini, dan dokumentasi developer lainnya.
  • Inisialisasi library klien Node.js Actions on Google.
  • Prompt hardcode untuk respons percakapan.
  • Utilitas untuk memilih prompt secara acak dan membuat SSML.
  • Penangan intent bagi masing-masing intent dikonfigurasi dalam agent Dialogflow.
  • Penangan intent khusus, disebut ‘OneShot’ yang menangani update rutin atau harian.
Untuk memulai, ikuti petunjuk langkah demi langkah dalam kode penyelesaian untuk membuat Action Anda sendiri dengan mengubah nama dan data. Setelah perubahan diterapkan, gunakan simulator Action untuk menguji Action Anda. Ini akan memberi Anda gambaran singkat tentang apa itu Action, bagaimana cara menggunakan simulator dan bagaimana Anda bisa dengan mudah membuat perubahan dalam penyelesaian.
Sekarang, mari kita gali Actions ini ke level berikutnya.

Data

Melakukan hardcoding data dalam penyelesaian memiliki berbagai keterbatasan seperti harus mengupdate kode setiap kali data diupdate. Opsi yang lebih skalabel dan lebih baik adalah mempertahankan data dalam database.
Salah satu database paling sederhana yang kami sarankan adalah Cloud Firestore. Rekan tim saya, Mandy Chan, baru-baru ini menulis sebuah artikel tentang cara menggunakan Firebase dengan sebuah Action. Setiap Action contoh memiliki Cloud Project-nya sendiri yang bisa Anda temukan di setelan agent Dialogflow (klik ikon roda gigi, di sebelah nama agent). Kemudian, buka Firebase Console and lakukan inisialiasi konfigurasi Firestore.
Setelah Anda menambahkan kode yang diperlukan ke penyelesaian untuk melakukan inisialiasi akses database Firestore, update fungsi ‘getData’ yang memilih nilai dari data hardcode dan ganti dengan kueri database. Kemudian hapus data hardcode yang datang bersama dengan penyelesaian Action contoh.
Atau, Anda juga bisa memanggil API eksternal untuk mendapatkan data bagi Action Anda. Kami memiliki contoh Github yang menunjukkan betapa mudahnya melakukan hal tersebut.

Intent

Masing-masing Actions contoh dilengkapi dengan intent Dialogflow yang diperlukan untuk mendukung Action yang berfungsi penuh yang mendukung praktik terbaik kami. Untuk mendukung fitur baru, kemungkinan Anda perlu menambahkan lebih banyak intent ke agent.
Jika Action contoh tertentu yang mula-mula dipilih tidak memiliki intent yang dibutuhkan, kami sarankan Anda melihat agent dari beberapa Actions contoh lainnya bila salah satu dari mereka ternyata memiliki intent yang dibutuhkan. Intent untuk Actions contoh memiliki bagian pelatihan yang sangat baik yang kami gunakan dalam Actions produksi kami.
Sangatlah mudah untuk mengekspor definisi intent tertentu dan kemudian mengimpornya ke agent lain. Cari intent yang Anda butuhkan kemudian arahkan kursor mouse ke atasnya dalam daftar utama semua intent. Klik ikon download cloud untuk mengekspor file intent. Kemudian dalam agent Anda, klik 3 titik di sebelah tombol ‘Create Intent’ untuk mengupload file intent yang diekspor:


Ketika pengguna mulai berinteraksi dengan Action Anda, kami sangat menyarankan agar Anda secara teratur melihat fitur histori di Dialogflow.


Khususnya, lihat semua kasus di mana permintaan pengguna tidak dicocokkan dengan intent. Ini akan memberikan Anda data yang sangat bagus tentang bagian pelatihan yang perlu ditambahkan ke intent yang ada, atau bahkan ide bagi fitur dan intent baru yang diinginkan pengguna dari Action Anda.

Suara dan Sound

Saat Anda memutuskan merek dan nama Actions, penting untuk mencocokkannya dengan suara yang tepat. Untuk setiap bahasa yang didukung Actions, ada suara TTS yang bisa Anda pilih. Persona dan suara yang Anda pilih bagi Action Anda akan mendorong desain prompt VUI. Anda mengonfigurasi suara Action di Actions Console.
Setiap Actions contoh menggunakan efek sound dan musik untuk meningkatkan nilai produksi pengalaman pengguna dan untuk memberikan masukan yang tepat. Musik dan sound default mungkin tidak cocok dengan persona Anda, jadi Anda sebaiknya mengubahnya dengan menyediakan URL HTTPS ke file media. File media bisa dihosting di server web apa pun, tetapi kami sarankan menggunakan Google Cloud Storage yang dapat dikonfigurasikan untuk menyediakan URL publik bagi file media Anda. Anda juga bisa memilih efek sound dari bermacam koleksi efek sound kami di library sound tempat kami menghosting file audio untuk Anda secara gratis.


Kode penyelesaian Actions contoh memiliki fungsi utilitas yang disebut ‘makeSsml’ untuk menghasilkan respons percakapan menggunakan SSML.
const makeSsml = (conv, options) => {
  if (options.intro) {
    conv.close(`<speak>
      <par>
        <media xml:id="introSound" begin="0.0s" soundLevel="5dB"    
            fadeOutDur="1.0s">
          <audio
            src="${introSound}"/>
        </media>
        <media xml:id="intro" begin="${introBegin}">
          <speak>${options.prompt1}
            <break time="500ms"/>${options.prompt2}
            <break time="1000ms"/></speak>
        </media>
      </par>
    </speak>`);
    ...
    conv.ask(`<speak>
      <par>
        <media xml:id="data">
          <speak>${options.prompt2}</speak>
        </media>
        <media xml:id="more" begin="data.end+1.0s">
          <speak>${options.prompt3}</speak>
        </media>
        <media xml:id="backgroundSound" begin="intro.begin-0.0s" 
            end="more.end-0.0s" fadeOutDur="1.0s" soundLevel="-5dB">
          <audio
            src="${backgroundSound}"/>
        </media>
      </par>
    </speak>`);
  }
};
Anda bisa menyesuaikan berbagai pengaturan waktu dengan mengubah nilai atribut tag SSML. Anda mungkin harus menyesuaikan kenyaringan (‘soundLevel’) berdasarkan sound yang Anda pilih bagi Action. Anda juga bisa membuat respons ini lebih dramatis dengan menggunakan beberapa praktik terbaik kami untuk SSML lanjutan.

Prompt

Prompt untuk respons kepada pengguna di-hardcode dalam kode penyelesaian sebagai struktur data JSON:
const prompts = {
  'welcome': [
    `Welcome to ${name}.`,
    `Hi! It's time for ${name}.`
  ],
  'welcome_back': [
    `Welcome back to ${name}.`,
    `Hi again. Welcome back to ${name}.`
  ],
  ...
};
Jika Anda hanya perlu mendukung Bahasa Inggris, maka menyisipkan prompt dalam kode akan berfungsi dengan baik, terutama karena kecilnya kemungkinan Anda harus sering mengupdatenya. Namun, Actions on Google saat ini tersedia dalam 16 bahasa, dan Asisten akan mendukung lebih dari 30 bahasa pada akhir tahun ini. Program Komunitas Developer kami juga memberikan insentif bila Anda meluncurkan aplikasi berskala global. Jadi kami sangat menyarankan agar Anda menambahkan dukungan untuk beberapa bahasa.
Daripada melakukan hardcoding prompt, Anda bisa menggunakan library seperti i18next untuk memberikan respons dalam berbagai bahasa.
Perhatikan, karena editor inline penyelesaian Dialogflow hanya mendukung file Javascript tunggal, dan library seperti i18next perlu memiliki banyak file dan folder, Anda harus memindahkan penyelesaian ke instance Cloud Function lain dan mengubah penyelesaian Dialogflow untuk menunjuk ke URL-nya. Anda harus menggunakan Firebase CLI untuk mengonfigurasi Cloud Function yang baru. Kode penyelesaian bisa digunakan kembali, kecuali untuk baris terakhir yang perlu sedikit dimodifikasi. Daripada:
exports.dialogflowFirebaseFulfillment = 
    functions.https.onRequest(app);
Anda harus mengubahnya menjadi seperti:
exports.myActionName = functions.https.onRequest(app);
Atau, Anda juga bisa menjadi host penyelesaian Action di App Engine, yang baru saja mengumumkan dukungan untuk Node.js dalam lingkungan standar. App Engine memberi Anda lebih banyak kontrol atas sumber daya masing-masing instance, dan memiliki fitur pemantauan dan penerapan yang lebih canggih.

Lakukan Coding

Jadi, cobalah petunjuk ini untuk menyesuaikan Actions contoh agar memenuhi kebutuhan Anda. Kami hanya menyentuh sebagian dari banyak fitur Actions on Google yang mungkin ingin Anda pertimbangkan untuk Action Anda agar siap untuk penerapan.
Juga, bergabunglah dengan komunitas developer kami dan bagikan pengalaman Anda: https://g.co/actionsdev
Kami berharap bisa segera mencoba Actions Anda.
Ingin lebih? Bergabunglah dengan program komunitas developer Actions on Google dan Anda bisa memperoleh $200 kredit Google Cloud bulanan dan kaus Asisten saat Anda memublikasikan aplikasi untuk pertama kalinya.