Membangun aplikasi Google Chat Dialogflow CX yang memahami dan merespons dengan bahasa alami

Halaman ini menjelaskan cara membangun aplikasi Google Chat yang dapat memahami dan merespons dengan bahasa alami menggunakan Dialogflow. Panduan ini menggunakan Dialogflow CX, yang memiliki integrasi langsung dengan Google Chat. Anda juga dapat menggunakan Dialogflow ES untuk membangun Aplikasi Google Chat Dialogflow ES dengan mengikuti tindakan Google Chat Dialogflow ES kami.

Misalnya, pertimbangkan aplikasi Chat yang membantu orang menyewa mobil. Pengguna dapat menulis, "Saya ingin menyewa mobil". Tujuan Aplikasi Chat mungkin merespons dengan pertanyaan seperti "Di mana Anda ingin mengambil kendaraannya?" yang dimulai dengan percakapan dengan pengguna di mana aplikasi Chat memahami dan merespons dengan ucapan manusia saat memesan rental mobil.

Ini hanyalah satu contoh. Aplikasi Chat Dialogflow berguna bagi semua pengguna jenis-jenis interaksi. Jika ia membutuhkan ucapan manusia alami, ia akan memanggil Aplikasi Chat Dialogflow. Tujuan agen siap pakai membantu Anda memulai dengan cepat, dan menunjukkan apa yang dapat dilakukan Dialogflow, seperti:

  • Pesan penerbangan
  • Jadwalkan janji temu dengan dokter
  • Pesan pengiriman makanan
  • Jawab pertanyaan tentang katalog produk retail, seperti apakah item tersedia dalam warna lain
  • Halaman pemilihan agen Dialogflow bawaan.
    Gambar 1. Memilih agen bawaan untuk aplikasi Chat Dialogflow.
  • Menguji agen di Dialogflow CX.
    Gambar 2. Menguji agen di Dialogflow CX untuk memastikan logika dan konfigurasi agen berfungsi sebagaimana mestinya. Diagram menunjukkan serangkaian halaman berdasarkan topik yang berurutan yang terkait dengan langkah-langkah tertentu dalam percakapan, seperti menetapkan lokasi penjemputan dan pengembalian untuk mobil rental, serta mengonfigurasi logika yang menghubungkannya. Percakapan diuji di simulator.
  • Mengonfigurasi aplikasi Chat Dialogflow.
    Gambar 3. Mengonfigurasi aplikasi Chat untuk memproses respons menggunakan agen Dialogflow CX di halaman konfigurasi Chat API di konsol Google Cloud.
  • Menguji aplikasi Chat Dialogflow CX
    Gambar 4. Melakukan percakapan tentang pemesanan mobil rental dengan aplikasi Chat Dialogflow Chat di Google Chat.

Tujuan

  • Menyiapkan lingkungan Anda.
  • Membuat dan men-deploy agen Dialogflow CX.
  • Membuat dan men-deploy aplikasi Chat yang didukung oleh Agen Dialogflow CX.
  • Uji aplikasi Chat.

Prasyarat

Arsitektur

Diagram berikut menunjukkan arsitektur Aplikasi Chat yang dibuat dengan Dialogflow:

Arsitektur aplikasi Chat yang diimplementasikan dengan Dialogflow.

Pada diagram sebelumnya, pengguna berinteraksi dengan Dialogflow Aplikasi Chat memiliki alur informasi berikut:

  1. Pengguna mengirim pesan di Chat kepada aplikasi Chat, baik di pesan langsung maupun dalam Ruang Chat.
  2. Agen virtual Dialogflow, yang berada di Google Cloud, menerima dan memproses pesan untuk menghasilkan respons.
  3. Secara opsional, menggunakan Webhook Dialogflow, agen Dialogflow dapat berinteraksi dengan layanan pihak ketiga eksternal, seperti sebagai sistem manajemen proyek atau alat tiket.
  4. Agen Dialogflow mengirimkan respons kembali ke Layanan aplikasi Chat di Chat.
  5. Respons akan dikirim ke ruang Chat.

Menyiapkan lingkungan

Sebelum menggunakan Google API, Anda harus mengaktifkannya di project Google Cloud. Anda dapat mengaktifkan satu atau beberapa API dalam satu project Google Cloud.
  1. Di konsol Google Cloud, aktifkan Google Chat API dan Dialogflow API.

    Aktifkan API

  2. Pastikan Anda mengaktifkan API dengan lalu klik Berikutnya.

  3. Pastikan Anda mengaktifkan API yang benar, lalu klik Enable.

Membuat agen Dialogflow CX

J Agen Dialogflow CX adalah agen virtual yang menangani percakapan serentak dengan pengguna akhir Anda. Ini adalah modul pemahaman bahasa alami yang memahami nuansa bahasa manusia. Dialogflow menerjemahkan teks pengguna akhir selama percakapan terhadap data terstruktur yang diterima oleh aplikasi dan layanan Anda mereka mengerti. Anda mendesain dan membangun agen Dialogflow untuk menangani berbagai percakapan yang diperlukan untuk sistem Anda.

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

Berikut cara membuat agen Dialogflow CX:

  1. Di konsol Dialogflow CX, buka Konsol Dialogflow CX. Klik Menu > Dialogflow CX.

    Buka konsol Dialogflow CX

  2. Pilih project Google Cloud. Untuk menemukan proyek, Anda mungkin perlu klik All, lalu telusuri file.

  3. Sekarang Anda memiliki opsi untuk memilih agen siap pakai atau buat sendiri. Jika Anda lebih suka menjelajahi agen penyesuaian secara detail nanti, pilih salah satu agen siap pakai, yang juga membantu untuk mempelajari apa yang dapat dilakukan agen.

    Untuk memilih agen siap pakai, ikuti langkah-langkah berikut:

    1. Klik Use prebuilt agent.
    2. Pilih agen siap pakai. Untuk panduan ini, pilih Perjalanan: rental mobil.

      Agen dinilai sebagai pemula, menengah, atau lanjutan berdasarkan jumlah fitur yang digunakan agen dan pada kecanggihan logika percakapannya. Memilih agen perantara atau lanjutan mungkin memerlukan penyesuaian dan setelan, termasuk mengaktifkan fitur dan API di Konsol Google Cloud Anda.

    3. Klik Impor sebagai agen.

    Untuk membuat agen sendiri, ikuti langkah-langkah berikut:

    1. Klik Buat agen.
    2. Pilih Buat otomatis untuk membuat agen penyimpanan data atau pilih Build your own untuk membuat jenis agen lain.

    Untuk panduan mendetail tentang proses pembuatan agen, lihat Buat agen Dialogflow CX.

  4. Konfigurasi setelan agen dasar:

    1. Di Nama tampilan, masukkan nama tampilan.
    2. Pilih yang Anda inginkan lokasi. Jika ingin mengubah setelan lanjutan setelan lokasi, klik Edit.
    3. Pilih zona waktu yang Anda inginkan.
    4. Pilih bahasa default untuk agen Anda. Anda tidak dapat mengubah bahasa default agen setelah dibuat.
  5. Klik Buat. Dialogflow CX mulai membuat agen, lalu menampilkan alur awal default agen.

  6. Sesuaikan agen secara opsional. Untuk panduan mendetail, agen proses penyesuaian, lihat Buat agen Dialogflow CX.

  7. Sebagai praktik terbaik, uji agen:

    1. Klik Test agent.
    2. Pilih Test agent in environment.
    3. Di Lingkungan, pilih Draf.
    4. Pada Flow, pilih Default Start Flow.
    5. Di Halaman, pilih Halaman Awal.
    6. Di kolom tulis Bicara dengan agen, ketik Hello, lalu tekan Enter. Agen merespons dengan memperkenalkan diri.
    7. Selesaikan pengujian dengan meminta contoh percakapan uji coba.
  8. Agen Dialogflow CX telah dibuat. Kembali ke konsol Dialogflow CX. Klik Menu > Dialogflow CX.

    Buka konsol Dialogflow CX

  9. Di bagian Agen, klik > Salin nama. Simpan nama ini, sebagai Anda gunakan saat mengonfigurasi aplikasi Chat.

Membuat aplikasi Chat dan menghubungkannya dengan agen Dialogflow

Setelah membuat agen Dialogflow CX, ikuti langkah-langkah berikut untuk mengubahnya menjadi Aplikasi Chat:

  1. Di konsol Google Cloud, buka Google Chat API. Telusuri "Google Chat API" dan klik Google Chat API, lalu klik Kelola.

    Buka Chat API

  2. Klik Configuration dan siapkan aplikasi Chat:

    1. Di App name, masukkan Dialogflow App.
    2. Di Avatar URL, masukkan https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png.
    3. Pada Description, masukkan Responds to real human conversation.
    4. Di bawah Functionality, pilih Receive 1:1 messages dan Bergabung ke ruang dan percakapan grup.
    5. Di bagian Connection settings, pilih Dialogflow.
    6. Di bagian Dialogflow settings, pilih Dialogflow CX.
    7. Di Agent or Environment resource name, tempel agen Dialogflow CX nama yang Anda salin di akhir Buat agen Dialogflow CX.
    8. Menyediakan aplikasi Chat ini untuk orang dan grup tertentu di domain Anda dan masukkan alamat email Anda.
    9. Di bagian Logs, pilih Log errors to Logging.
  3. Klik Simpan.

Aplikasi Chat siap menerima dan merespons pesan di Chat.

Menguji aplikasi Chat

Menguji aplikasi Chat Dialogflow CX dengan mengirim pesan Google Chat.

  1. Buka Google Chat menggunakan akun Google Workspace yang telah Anda yang diberikan ketika Anda menambahkan diri Anda sebagai penguji tepercaya.

    Buka Google Chat

  2. Klik Chat baru.
  3. Di kolom Tambahkan 1 orang atau lebih, ketik nama Aplikasi Chat.
  4. Pilih aplikasi Chat Anda dari hasil yang ditampilkan. Iklan langsung pesan terbuka.

  5. Di pesan langsung baru dengan aplikasi, ketik Hello dan tekan enter.

    Aplikasi Dialogflow Chat merespons dengan memperkenalkan itu sendiri.

  6. Selesaikan pengujian dengan meminta contoh percakapan uji coba.

Contoh percakapan percobaan

Untuk menguji aplikasi Chat Dialogflow CX baik di Konsol Dialogflow CX atau di Google Chat, memiliki percakapan berikut. Penjelasan ini membantu Anda memahami bagaimana agen Dialogflow CX menafsirkan bahasa alami pengguna dan menghasilkan respons setiap langkah dalam percakapan. Contoh percakapan ini didasarkan pada agen siap pakai yang disebut Perjalanan: rental mobil.

Dialog Penjelasan
Pengguna akhir: Halo
Agen: Halo! Saya adalah agen rental mobil virtual. saya bisa membantu Anda memulai reservasi persewaan mobil baru. Apa yang bisa saya bantu Anda hari ini?
  1. Rute Intent Selamat Datang Default di Default Start Flow dipanggil.
  2. fulfillment untuk pengendali status ini ("Halo! Saya...") ditambahkan ke antrean respons.
  3. Agen mengirimkan antrean respons ke pengguna akhir.
Pengguna akhir: Saya ingin menyewa mobil.
Agen: Di mana Anda ingin mengambil kendaraan tersebut?
  1. Rute intent car_rental.reservation_create di Halaman Awal cocok.
  2. Sesi ini bertransisi ke halaman Lokasi Pengambilan.
  3. Formulir halaman Lokasi Pengambilan tidak lengkap, sehingga formulir agen menggunakan parameter pickup_location untuk meminta pengguna ("Di mana Anda ingin mengambil..."), yang ditambahkan ke antrean respons.
  4. Agen mengirimkan antrean respons ke pengguna akhir.
Pengguna akhir: Las Vegas
Agen: Oke, pengambilan Anda akan dilakukan di Las Vegas.
Agen: Apakah lokasi pengantaran Anda berbeda dengan lokasi lokasi penjemputan?
  1. Input pengguna akhir mengisi pickup_location parameter yang diminta oleh agen dalam giliran percakapan.
  2. Intent car_rental.return_different_location rute di Alur Mulai Default cocok.
  3. Rute penyelesaian formulir di halaman Lokasi Pengambilan dievaluasi dan dipanggil. Terdapat fulfillment ("Ok, your pickup..."), yang ditambahkan ke antrean respons dengan referensi parameternya diselesaikan menjadi nilai aktual yang disediakan oleh pengguna akhir.
  4. Sesi ini bertransisi ke halaman Konfirmasi Lokasi.
  5. Halaman Konfirmasi Lokasi memiliki fulfillment entri ("Apakah lokasi pengantaran Anda berbeda..."), yang ditambahkan ke antrean respons.
  6. Agen mengirimkan antrean respons ke pengguna akhir.
Pengguna akhir: Ya. Saya akan mengantarkan mobilnya di Los Angeles.
Agen: Oke, pengantaran Anda akan dilakukan di Los Angeles.
Agen: Kapan tanggal dan waktu pengambilan kendaraan tersebut?
  1. Intent car_rental.return_different_location rute di Alur Mulai Default cocok.
  2. Sesi ini bertransisi ke halaman Lokasi pengantaran.
  3. Input pengguna akhir mengisi drop_off_location parameter yang diminta oleh agen dalam giliran percakapan.
  4. Rute penyelesaian formulir di halaman Lokasi pengantaran dievaluasi dan dipanggil. Terdapat fulfillment ("Ok, your drop off..."), yang ditambahkan ke antrean respons.
  5. Sesi dialihkan ke halaman Durasi Sewa.
  6. Halaman Durasi Sewa memiliki nilai formulir yang tidak lengkap, sehingga meminta parameter pickup_date_time kepada pengguna ("Tanggal dan waktu penjemputan yang Anda inginkan..."), yang ditambahkan ke antrean respons.
  7. Agen mengirimkan antrean respons ke pengguna akhir.
Pengguna akhir: Saya ingin mengambil mobilnya pada 5 Maret pukul 12.00.
Agen: Tanggal dan waktu kapan Anda ingin mengantar kendaraan tersebut?
  1. Input pengguna akhir mengisi kolom pickup_date_time parameter yang diminta oleh agen dalam giliran percakapan.
  2. Halaman Rental Duration memiliki nilai formulir lain yang tidak ada, sehingga pengguna akan diminta untuk memasukkan parameter drop_off_date_time ("Tanggal dan waktu pengiriman yang Anda inginkan..."), yang ditambahkan ke antrean respons.
  3. Agen mengirimkan antrean respons ke pengguna akhir.
Pengguna akhir: 15 Maret pukul 12.00.
Agen: Jadi untuk mengonfirmasi:

Anda akan mengambil kendaraan dalam Las Vegas 05-03-2024 12:00:00 dan mengantarkannya di Los Angeles 15-03-2024 12:00:00

Apa Anda sudah benar?
  1. Input pengguna akhir mengisi kolom drop_off_date_time parameter yang diminta oleh agen dalam giliran percakapan.
  2. Sesi tersebut dialihkan ke halaman Konfirmasi Durasi Rental.
  3. Halaman Konfirmasi Durasi Sewa memiliki fulfillment entri ("Jadi untuk mengonfirmasi..."), yang ditambahkan ke antrean respons.
  4. Agen mengirimkan antrean respons ke pengguna akhir.
Pengguna akhir: Ya, terima kasih.
Agen: Bagus! Sekarang mari kita pilih kendaraan.
Agen: Apakah Anda menginginkan barang ekonomi atau mewah kendaraan?
  1. Intent small_talk.confirmation.yes rute di halaman Konfirmasi Durasi Sewa cocok.
  2. Agen mengonfirmasi pilihan pengguna dengan pesan ("Bagus! Sekarang mari kita pilih..."), yang ditambahkan ke antrean respons.
  3. Sesi ini beralih ke halaman Disambiguasi Kendaraan.
  4. Formulir halaman Disambiguasi Kendaraan belum lengkap, sehingga agen menggunakan parameter vehicle_type untuk meminta izin pengguna ("Apakah Anda ingin ekonomi atau kemewahan..."), yang ditambahkan ke antrean respons.
  5. Agen mengirimkan antrean respons ke pengguna akhir.
Pengguna akhir: Silakan ekonomi.
Agen: Apakah Anda lebih suka Mobil Cymbal atau Truk Cymbal?
  1. Intent $session.params.vehicle_type="economy_vehicle" rute akan dicocokkan.
  2. Sesi dialihkan ke halaman Opsi Ekonomi.
  3. Halaman Opsi Ekonomi memiliki fulfillment entri ("Apakah Anda ingin..."), yang ditambahkan ke antrean respons.
  4. Agen mengirimkan antrean respons ke pengguna akhir.
Pengguna akhir: Truk Cymbal.
Agen: Harga Truk Cymbal adalah $50,33 per hari. Dapat menampung 4 orang dan dilengkapi dengan radio AM/FM. Ingin melanjutkan ke pembayaran?
Pengguna akhir: Ya, silakan.
  1. Intent $session.params.vehicle_type="Cymbal Train" rute dicocokkan dan parameter vehicle_model diisi.
  2. Sesi ini bertransisi ke halaman Confirm Cymbal Train.
  3. Halaman Confirm Cymbal Train memiliki fulfillment entri ("Harga Truk Cymbal adalah $50,33 per hari..."), yang ditambahkan ke antrean respons.
  4. Agen mengirimkan antrean respons ke pengguna akhir.
  5. Respons pengguna cocok dengan small_talk.confirmation.yes rute perjalanan.
Agen: Jenis kartu apa yang akan Anda gunakan?
Pengguna akhir: Altostrat
Agen: Masukkan nomor kartu.
Pengguna akhir: 1234 1234 1234 1234
Agen: Apa nama pada kartu?
Pengguna akhir: Candra
Agen: Apa alamat penagihan?
Pengguna akhir: 1800 Amphibious Blvd. Jakarta, Indonesia
Agen: Apa kode pos penagihan?
Pengguna akhir: 94045
Agen: Anda akan memilih Cymbal Car di Las Vegas, 2024-03-05 12:00:00 dan mengantarkannya, 15-03-2024 12:00:00. Total untuk perjalanan ini akan $175,38.
Agen: Terima kasih telah menyewa bersama kami dan semoga hari Anda menyenangkan.
  1. Sesi dialihkan ke halaman Pembayaran.
  2. Formulir Pembayaran belum lengkap sehingga agen meminta pengguna untuk card_type, card_number, billing_name, billing_street_address, dan parameter billing_zip_code ("Jenis kartu apa yang akan..."), yang secara berurutan ditambahkan ke antrean respons dan dikirim sebagai pengguna merespons. Respons pengguna menetapkan setiap nilai parameter.
  3. Sesi dialihkan ke halaman Konfirmasi Sewa.
  4. Halaman Konfirmasi Sewa memiliki pemenuhan entri ("Oke, pesanan Anda adalah..."), yang ditambahkan ke antrean respons.
  5. Agen mengirimkan antrean respons ke pengguna akhir.
  6. Sesi bertransisi ke halaman End Session.

Mengirim pesan kartu dari Dialogflow

Dialogflow dapat merespons dengan text atau pesan kartu. Untuk merespons dengan kartu pesan, tetapkan sebagai payload kustom inci pemenuhan pesanan.

JSON berikut menunjukkan cara mengirim pesan kartu sebagai payload kustom di pemenuhan pesanan:

json

{
  'cardsV2': [{
    'cardId': 'createCardMessage',
    'card': {
      'header': {
        'title': 'A card message!',
        'subtitle': 'Sent from Dialogflow',
        'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png',
        'imageType': 'CIRCLE'
      },
      'sections': [
        {
          'widgets': [
            {
              'buttonList': {
                'buttons': [
                  {
                    'text': 'Read the docs!',
                    'onClick': {
                      'openLink': {
                        'url': 'https://developers.google.com/workspace/chat'
                      }
                    }
                  }
                ]
              }
            }
          ]
        }
      ]
    }
  }]
}

Batas dan pertimbangan

  • Peristiwa interaksi Chat memiliki dukungan terbatas dan beberapa pertimbangan:
    • Hal berikut jenis peristiwa interaksi didukung:
      • MESSAGE
      • ADDED_TO_SPACE
      • CARD_CLICKED
    • Untuk peristiwa MESSAGE atau ADDED_TO_SPACE, input kueri yang dikirim ke Agen Dialogflow sesuai dengan nilai kolom argumentText pada pesan Chat. Jika pesan menyertakan perintah garis miring, nilai kolom text digunakan sebagai gantinya.
    • Untuk peristiwa CARD_CLICKED, input kueri yang dikirim ke agen Dialogflow diformat sebagai CARD_CLICKED.functionName, dengan functionName sesuai dengan nilai kolom function Objek Action yang dilampirkan ke elemen kartu interaktif (seperti tombol).
    • Payload JSON lengkap untuk setiap peristiwa interaksi Chat dikirim ke Dialogflow sebagai payload kustom dalam parameter kueri, dan dapat diakses dengan Webhook Dialogflow dengan membuat kueri nilai di kolom WebhookRequest.payload.
  • Pertimbangan untuk merespons perintah garis miring dan menerima data dari kartu atau dialog:
    • Saat aplikasi Chat Dialogflow menerima pesan yang berisi garis miring perintah, input kueri hanya berisi nilai kolom text. Kolom text dimulai dengan nama perintah garis miring (misalnya, /command), yang dapat Anda gunakan untuk mengonfigurasi intent agen Dialogflow untuk mendeteksi perintah garis miring.
    • Jika agen Dialogflow perlu memproses Payload JSON peristiwa interaksi Chat, aplikasi dapat melakukannya dengan menggunakan Webhook Dialogflow untuk memeriksa payload kustom di parameter kueri.
    • Untuk menampilkan dialog dari Agen Dialogflow, merespons dengan satu payload JSON kustom yang menyertakan pesan yang berisi DIALOG respons tindakan.
    • Untuk memproses data yang dimasukkan dari kartu, agen Dialogflow dapat mendeteksi intent yang dimulai dengan teks CARD_CLICKED dan merespons dengan satu payload JSON kustom yang berisi tindakan.
  • Pratinjau link tidak didukung.
  • Jika agen Dialogflow merespons hanya dengan satu pesan, maka pesan tersebut dikirim ke Google Chat secara sinkron. Jika agen Dialogflow merespons dengan beberapa pesan, maka semua pesan akan dikirim ke Chat secara asinkron dengan memanggil create di resource spaces.messages di Chat API satu kali untuk masing-masing untuk membuat pesan email baru.
  • Saat menggunakan integrasi Dialogflow CX dengan Chat, agen Dialogflow dan aplikasi Chat harus ditetapkan di project Google Cloud yang sama. Jika Anda perlu menyiapkan Dialogflow dan Chat di project Cloud yang berbeda, Anda dapat mengatur server perantara untuk memfasilitasi koneksi. Untuk mempelajari caranya, lihat ini Integrasi Chat untuk contoh Dialogflow CX di GitHub.

Memecahkan masalah

Saat aplikasi Google Chat atau kartu menampilkan error, Antarmuka Chat menampilkan pesan yang bertuliskan "Terjadi masalah". atau "Tidak dapat memproses permintaan Anda". Terkadang UI Chat tidak menampilkan pesan error apa pun, tetapi aplikasi Chat atau memberikan hasil yang tidak diharapkan; misalnya, pesan kartu mungkin tidak akan muncul.

Meskipun pesan error mungkin tidak ditampilkan di UI Chat, pesan error deskriptif dan data log tersedia untuk membantu Anda memperbaiki error saat logging error untuk aplikasi Chat diaktifkan. Untuk bantuan melihat, men-debug, dan memperbaiki error, melihat Memecahkan masalah dan memperbaiki error Google Chat.

Pembersihan

Agar tidak menimbulkan biaya ke akun Google Cloud Anda untuk sumber daya yang digunakan dalam tutorial ini, sebaiknya Anda menghapus project Google Cloud.

  1. Di Konsol Google Cloud, buka halaman Manage resources. Klik Menu > IAM & Admin > Kelola Resource.

    Buka Resource Manager

  2. Dalam daftar project, pilih project yang ingin Anda hapus, lalu klik Hapus .
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus menyelesaikan proyek tersebut.
  • Dialogflow CX melakukan mesin status pendekatan terhadap desain agen Dialogflow, yang memberi Anda gambaran jelas dan eksplisit kendali atas percakapan, pengalaman pengguna akhir yang lebih baik, dan pengembangan aplikasi. Saat membangun Dialogflow Google Chat, sebaiknya gunakan Dialogflow CX.
  • Dialogflow ES adalah cara lain untuk menggunakan Dialogflow dengan aplikasi Chat.