Dasar-dasar Dialogflow ES

Halaman ini menjelaskan dasar-dasar penggunaan Dialogflow ES. Anda harus membaca halaman ini sebelum melanjutkan ke dokumen atau panduan memulai lainnya.

Membantu pengguna berinteraksi dengan teknologi

Antarmuka komputer tradisional memerlukan input yang terstruktur dan dapat diprediksi agar dapat berfungsi dengan baik, sehingga membuat penggunaan antarmuka ini menjadi tidak wajar dan terkadang sulit. Jika pengguna akhir sulit memahami input terstruktur ini, mereka mengalami kesulitan mencari tahu apa yang harus dilakukan. Idealnya, antarmuka Anda dapat menyimpulkan apa yang diinginkan pengguna akhir, berdasarkan bahasa alami yang mereka gunakan.

Misalnya, pertimbangkan permintaan pengguna sederhana seperti "Bagaimana ramalan cuaca hari ini?". Pengguna akhir lainnya juga mungkin bertanya:

  • "Bagaimana cuaca sekarang?"
  • "Berapa suhu di San Francisco besok?"
  • "Bagaimana cuacanya pada tanggal 21?"

Bahkan dengan pertanyaan sederhana ini, Anda dapat melihat bahwa pengalaman percakapan sulit diterapkan. Menafsirkan dan memproses natural language memerlukan parser bahasa yang sangat canggih. Dialogflow akan menanganinya untuk Anda, sehingga Anda dapat memberikan pengalaman percakapan berkualitas tinggi bagi pengguna akhir.

Agen

Agen Dialogflow adalah agen virtual yang menangani percakapan serentak dengan pengguna akhir Anda. Ini adalah modul natural language understanding yang memahami seluk-beluk bahasa manusia. Dialogflow menerjemahkan teks atau audio pengguna akhir selama percakapan menjadi data terstruktur yang dapat dipahami oleh aplikasi dan layanan Anda. Anda mendesain dan membangun agen Dialogflow untuk menangani jenis percakapan yang diperlukan oleh sistem Anda.

Agen Dialogflow mirip dengan agen pusat panggilan manusia. Anda melatih keduanya untuk menangani skenario percakapan yang diharapkan, dan pelatihan Anda tidak perlu terlalu eksplisit.

Intent

Intent mengategorikan niat pengguna akhir untuk satu giliran percakapan. Untuk setiap agen, Anda menentukan banyak intent, dengan intent gabungan Anda dapat menangani percakapan lengkap. Saat pengguna akhir menulis atau mengatakan sesuatu, disebut sebagai ekspresi pengguna akhir, Dialogflow akan mencocokkan ekspresi pengguna akhir tersebut dengan intent terbaik pada agen Anda. Mencocokkan intent juga dikenal sebagai klasifikasi intent.

Misalnya, Anda dapat membuat agen cuaca yang mengenali dan merespons pertanyaan pengguna akhir tentang cuaca. Anda mungkin akan menentukan intent untuk pertanyaan tentang prakiraan cuaca. Jika pengguna akhir bertanya "Bagaimana ramalan cuacanya?", Dialogflow akan mencocokkan ekspresi pengguna akhir tersebut dengan intent perkiraan. Anda juga dapat menentukan intent untuk mengekstrak informasi yang berguna dari ekspresi pengguna akhir, seperti waktu atau lokasi untuk perkiraan cuaca yang diinginkan. Data yang diekstrak ini penting bagi sistem Anda untuk melakukan kueri cuaca bagi pengguna akhir.

Agen yang mengekstrak data dari ekspresi pengguna akhir yang meminta cuaca

Intent dasar berisi hal berikut:

  • Frasa pelatihan: Ini adalah contoh frasa untuk apa yang mungkin dikatakan pengguna akhir. Jika ekspresi pengguna akhir menyerupai salah satu frasa ini, Dialogflow akan cocok dengan intent. Anda tidak perlu menentukan setiap contoh yang mungkin, karena machine learning bawaan Dialogflow akan memperluas daftar Anda dengan frasa lain yang serupa.
  • Tindakan: Anda dapat menentukan tindakan untuk setiap intent. Saat intent dicocokkan, Dialogflow akan memberikan tindakan ke sistem Anda, dan Anda dapat menggunakan tindakan tersebut untuk memicu tindakan tertentu yang ditetapkan dalam sistem Anda.
  • Parameter: Saat intent dicocokkan saat runtime, Dialogflow akan memberikan nilai yang diekstrak dari ekspresi pengguna akhir sebagai parameter. Setiap parameter memiliki jenis, yang disebut jenis entity, yang menentukan cara data diekstrak secara tepat. Tidak seperti input mentah pengguna akhir, parameter adalah data terstruktur yang dapat dengan mudah digunakan untuk menjalankan beberapa logika atau menghasilkan respons.
  • Respons: Anda menentukan respons teks, ucapan, atau visual untuk ditampilkan kembali kepada pengguna akhir. Respons ini dapat memberikan jawaban kepada pengguna akhir, meminta informasi lebih lanjut kepada pengguna akhir, atau menghentikan percakapan.

Diagram berikut menunjukkan alur dasar untuk mencocokkan intent dan merespons pengguna akhir:

Agen dan intent yang menangani ekspresi pengguna akhir

Entity

Setiap parameter intent memiliki jenis, yang disebut jenis entitas, yang menentukan cara data dari ekspresi pengguna akhir diekstrak dengan tepat.

Dialogflow menyediakan entitas sistem yang telah ditentukan sebelumnya dan dapat cocok dengan banyak jenis data umum. Misalnya, ada entitas sistem untuk tanggal, waktu, warna, alamat email yang cocok, dan sebagainya. Anda juga dapat membuat entitas kustom Anda sendiri untuk mencocokkan data kustom. Misalnya, Anda dapat menentukan entitas sayuran yang dapat mencocokkan jenis sayuran yang dapat dibeli melalui agen toko bahan makanan.

Konteks

Konteks Dialogflow serupa dengan konteks natural language. Jika seseorang mengatakan "mereka berwarna oranye", Anda memerlukan konteks untuk memahami apa yang dimaksud dengan "mereka". Demikian pula, agar Dialogflow dapat menangani ekspresi pengguna akhir seperti itu, ekspresi harus diberikan konteks agar dapat mencocokkan intent dengan benar.

Dengan menggunakan konteks, Anda dapat mengontrol alur percakapan. Anda dapat mengonfigurasi konteks untuk intent dengan menetapkan konteks input dan output, yang diidentifikasi berdasarkan nama string. Saat intent dicocokkan, semua konteks output yang dikonfigurasi untuk intent tersebut akan aktif. Meskipun konteks aktif, Dialogflow lebih mungkin cocok dengan intent yang dikonfigurasi dengan konteks input yang sesuai dengan konteks yang aktif saat ini.

Diagram berikut menunjukkan contoh yang menggunakan konteks untuk agen perbankan.

Diagram pengguna yang berinteraksi dengan intent dan konteks.
  1. Pengguna akhir meminta informasi tentang rekening giro mereka.
  2. Dialogflow mencocokkan ekspresi pengguna akhir ini dengan intent CheckingInfo. Intent ini memiliki konteks output checking, sehingga konteks tersebut menjadi aktif.
  3. Agen akan meminta jenis informasi yang diinginkan tentang rekening giro mereka kepada pengguna akhir.
  4. Pengguna akhir menanggapi dengan "saldo saya".
  5. Dialogflow mencocokkan ekspresi pengguna akhir ini dengan intent CheckingBalance. Intent ini memiliki konteks input checking, yang harus aktif agar cocok dengan intent ini. Intent SavingsBalance yang serupa mungkin juga ada untuk mencocokkan ekspresi pengguna akhir yang sama ketika konteks savings aktif.
  6. Setelah sistem Anda melakukan kueri database yang diperlukan, agen akan merespons dengan menampilkan saldo rekening giro.

Tindak lanjut maksud

Anda dapat menggunakan intent tindak lanjut untuk otomatis menyetel konteks bagi pasangan intent. Intent tindak lanjut adalah turunan dari intent induk terkaitnya. Saat Anda membuat intent tindak lanjut, konteks output secara otomatis ditambahkan ke intent induk dan konteks input dengan nama yang sama akan ditambahkan ke intent tindak lanjut. Intent tindak lanjut hanya dicocokkan saat intent induk cocok pada giliran percakapan sebelumnya. Anda juga dapat membuat beberapa tingkat intent tindak lanjut bertingkat.

Dialogflow menyediakan banyak intent tindak lanjut yang telah ditetapkan untuk balasan pengguna akhir yang umum seperti "ya", "tidak", atau "batal". Anda juga dapat membuat intent tindak lanjut Anda sendiri untuk menangani balasan kustom.

Konsol Dialogflow

Dialogflow menyediakan antarmuka pengguna web yang disebut Konsol Dialogflow (buka dokumentasi, konsol terbuka). Anda menggunakan konsol ini untuk membuat, membangun, dan menguji agen.

Dialogflow Console berbeda dengan Google Cloud Platform (GCP) Console (buka dokumentasi, open console). Dialogflow Console digunakan untuk mengelola agen Dialogflow, sedangkan GCP Console digunakan untuk mengelola setelan Dialogflow khusus GCP (misalnya penagihan) dan resource GCP lainnya.

Pada umumnya, Anda sebaiknya menggunakan Konsol Dialogflow untuk membangun agen, tetapi Anda juga dapat menggunakan Dialogflow API guna membangun agen untuk skenario lanjutan.

Interaksi pengguna dengan integrasi

Dialogflow terintegrasi dengan banyak platform percakapan populer, seperti Google Assistant, Slack, dan Facebook Messenger. Jika Anda ingin membangun agen untuk salah satu platform ini, Anda harus menggunakan salah satu dari berbagai opsi integrasi Interaksi pengguna akhir langsung ditangani untuk Anda, sehingga Anda dapat fokus membangun agen. Setiap integrasi menangani interaksi pengguna akhir dengan cara khusus platform, jadi baca dokumentasi untuk platform integrasi Anda untuk mengetahui detailnya.

Pemenuhan pesanan untuk integrasi

Secara default, agen Anda merespons intent yang cocok dengan respons statis. Jika menggunakan salah satu opsi integrasi, Anda dapat memberikan respons yang lebih dinamis menggunakan fulfillment. Saat Anda mengaktifkan fulfillment untuk suatu intent, Dialogflow akan merespons intent tersebut dengan memanggil layanan yang Anda tentukan. Misalnya, jika pengguna akhir ingin menjadwalkan potong rambut pada hari Jumat, layanan Anda dapat memeriksa database Anda dan merespons pengguna akhir dengan informasi ketersediaan pada hari Jumat.

Setiap intent memiliki setelan untuk mengaktifkan fulfillment. Jika intent memerlukan beberapa tindakan oleh sistem atau respons dinamis, Anda harus mengaktifkan fulfillment untuk intent tersebut. Jika intent tanpa fulfillment yang diaktifkan cocok, Dialogflow akan menggunakan respons statis yang Anda tentukan untuk intent tersebut.

Saat intent yang mengaktifkan fulfillment cocok, Dialogflow akan mengirimkan permintaan ke layanan webhook Anda dengan informasi tentang intent yang cocok. Sistem Anda dapat melakukan tindakan yang diperlukan dan merespons Dialogflow dengan informasi tentang cara melanjutkan. Saat fulfillment diaktifkan, respons statis yang Anda tentukan untuk intent hanya digunakan jika layanan webhook gagal. Diagram berikut menunjukkan alur pemrosesan untuk fulfillment.

Diagram yang menunjukkan alur untuk fulfillment
  1. Pengguna akhir mengetik atau mengucapkan ekspresi.
  2. Dialogflow mencocokkan ekspresi pengguna akhir dengan intent dan mengekstrak parameter.
  3. Dialogflow mengirimkan pesan permintaan webhook ke layanan webhook Anda. Pesan ini berisi informasi tentang intent yang cocok, tindakan, parameter, dan respons yang ditentukan untuk intent tersebut.
  4. Layanan Anda melakukan tindakan sesuai kebutuhan, seperti kueri database atau panggilan API eksternal.
  5. Layanan Anda mengirimkan pesan respons webhook ke Dialogflow. Pesan ini berisi respons yang harus dikirimkan ke pengguna akhir.
  6. Dialogflow akan mengirimkan respons ke pengguna akhir.
  7. Pengguna akhir melihat atau mendengar responsnya.

Interaksi pengguna dengan API

Jika tidak menggunakan salah satu opsi integrasi, Anda harus menulis kode yang berinteraksi langsung dengan pengguna akhir. Anda juga harus langsung berinteraksi dengan API Dialogflow untuk setiap giliran percakapan guna mengirim ekspresi pengguna akhir dan menerima kecocokan intent. Diagram berikut menunjukkan alur pemrosesan saat berinteraksi dengan API.

Diagram yang menunjukkan alur untuk API
  1. Pengguna akhir mengetik atau mengucapkan ekspresi.
  2. Layanan Anda mengirimkan ekspresi pengguna akhir ini ke Dialogflow dalam pesan deteksi permintaan intent.
  3. Dialogflow akan mengirimkan pesan respons intent deteksi ke layanan Anda. Pesan ini berisi informasi tentang intent yang cocok, tindakan, parameter, dan respons yang ditentukan untuk intent tersebut.
  4. Layanan Anda melakukan tindakan sesuai kebutuhan, seperti kueri database atau panggilan API eksternal.
  5. Layanan Anda mengirimkan respons kepada pengguna akhir.
  6. Pengguna akhir melihat atau mendengar responsnya.