Untuk setiap giliran percakapan, interaksi akan terjadi. Selama interaksi, pengguna akhir mengirim input ke Agen Percakapan (Dialogflow CX), dan Agen Percakapan (Dialogflow CX) mengirim respons. Anda memiliki dua opsi saat menerapkan sistem untuk menangani interaksi: menggunakan API atau menggunakan integrasi.
Saat menggunakan API, sistem Anda perlu menangani hal berikut:
- Buat agen.
- Menyediakan antarmuka pengguna untuk pengguna akhir.
- Panggil Dialogflow API untuk setiap giliran percakapan untuk mengirim input pengguna akhir ke API.
- Kecuali jika respons agen Anda sepenuhnya statis (tidak umum), Anda harus menghosting layanan webhook untuk menangani fulfillment yang mengaktifkan webhook.
Saat menggunakan integrasi, sistem Anda hanya perlu menangani hal berikut:
- Buat agen.
- Secara opsional, terapkan layanan webhook.
Diagram berikut menunjukkan langkah-langkah yang dilakukan untuk satu giliran percakapan dalam sesi.
- Pengguna akhir mengetik atau mengucapkan sesuatu, yang dikenal sebagai input pengguna akhir.
- Antarmuka pengguna atau sistem integrasi Anda menerima input dan meneruskannya ke Dialogflow API dalam permintaan deteksi intent.
- Dialogflow API menerima permintaan intent deteksi. Fungsi ini mencocokkan input dengan parameter intent atau formulir, menetapkan parameter sesuai kebutuhan, dan memperbarui status sesi. Jika perlu memanggil fulfillment yang mengaktifkan webhook, webhook akan mengirim permintaan webhook ke layanan webhook Anda, jika tidak, lanjutkan ke langkah 6.
- Layanan webhook Anda menerima permintaan webhook. Layanan Anda akan melakukan tindakan yang diperlukan, seperti memanggil API eksternal, mengkueri atau memperbarui database, dll.
- Layanan webhook Anda membuat respons dan mengirimkan respons webhook kembali ke Agen Percakapan (Dialogflow CX).
- Agen Percakapan (Dialogflow CX) membuat respons intent deteksi. Jika dipanggil, webhook akan menggunakan respons yang diberikan dalam respons webhook. Jika tidak ada webhook yang dipanggil, webhook akan menggunakan respons statis yang ditentukan di agen. Agen Percakapan (Dialogflow CX) mengirimkan respons deteksi intent ke antarmuka pengguna atau sistem integrasi Anda.
- Antarmuka pengguna atau sistem integrasi Anda menerima respons intent deteksi dan meneruskan respons teks atau audio ke pengguna akhir.
- Pengguna akhir melihat atau mendengar respons.
Tujuan panduan
Panduan ini menunjukkan cara memanggil API untuk satu giliran percakapan untuk agen yang tidak menggunakan integrasi (langkah 2 dari diagram di atas). Panduan ini tidak menunjukkan cara menerapkan antarmuka pengguna untuk pengguna akhir.
Sebelum memulai
Anda harus melakukan hal berikut sebelum membaca panduan ini:
- Baca dasar-dasar alur.
- Lakukan langkah-langkah penyiapan.
- Buat agen baru atau lanjutkan menggunakan agen yang Anda buat di Mem-build agen menggunakan alur atau Mem-build agen menggunakan playbook
Mengumpulkan ID
Contoh di bawah memerlukan beberapa ID sebagai input. Untuk menemukan project ID, ID region, dan ID agen Anda:
Konsol Dialogflow CX
- Buka konsol Dialogflow CX.
- Pilih project Google Cloud Anda untuk membuka pemilih agen.
- Klik menu more_vert opsi untuk agen dalam daftar.
- Klik tombol salin nama filter_none.
- Tindakan ini akan menyalin nama pengidentifikasi lengkap agen Anda,
yang mencakup project ID, region ID, dan agent ID Anda
dalam bentuk:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
Konsol Agent Builder
Buka konsol Pembuat Agen:
Project ID Anda ditampilkan di bagian atas konsol.
Kolom Location menampilkan ID region.
Pilih aplikasi.
Segmen jalur URL browser setelah
agents/
berisi ID aplikasi agen.
Anda juga memerlukan ID sesi.
Sesi mewakili percakapan antara agen Agen Percakapan (Dialogflow CX) dan pengguna akhir.
Anda membuat ID sesi unik di awal percakapan
dan menggunakannya untuk setiap giliran percakapan.
Untuk mencoba API,
Anda dapat menggunakan ID string apa pun yang maksimal 36 byte,
seperti test-session-123
.
Mendeteksi intent panggilan
Contoh berikut memanggil metode Sessions.detectIntent
.
Pilih protokol dan versi untuk referensi Sesi:
Protokol | V3 | V3beta1 |
---|---|---|
REST | Resource sesi | Resource sesi |
RPC | Antarmuka sesi | Antarmuka sesi |
C++ | SessionsClient | Tidak tersedia |
C# | SessionsClient | Tidak tersedia |
Go | SessionsClient | Tidak tersedia |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | Tidak tersedia | Tidak tersedia |
Python | SessionsClient | SessionsClient |
Ruby | Tidak tersedia | Tidak tersedia |
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID Google Cloud Anda
- AGENT_ID: ID agen Anda
- REGION_ID: ID region Anda
- SESSION_ID: ID sesi Anda
- END_USER_INPUT: input pengguna akhir
Metode HTTP dan URL:
POST https://REGION_ID-dialogflow.googleapis.com/v3/projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID/sessions/SESSION_ID:detectIntent
Meminta isi JSON:
{ "queryInput": { "text": { "text": "END_USER_INPUT" }, "languageCode": "en" }, "queryParams": { "timeZone": "America/Los_Angeles" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "responseId": "38e8f23d-eed2-445e-a3e7-149b242dd669", "queryResult": { "text": "I want to buy a shirt", "languageCode": "en", "responseMessages": [ { "text": { "text": [ "Ok, let's start a new order." ] } }, { "text": { "text": [ "I'd like to collect a bit more information from you." ] } }, { "text": { "text": [ "What color would you like?" ] } }, {} ], "currentPage": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/flows/00000000-0000-0000-0000-000000000000/pages/ce0b88c4-9292-455c-9c59-ec153dad94cc", "displayName": "New Order" }, "intent": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665", "displayName": "order.new" }, "intentDetectionConfidence": 1, "diagnosticInfo": { ... }, "match": { "intent": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665", "displayName": "order.new" }, "resolvedInput": "I want to buy a shirt", "matchType": "INTENT", "confidence": 1 } } }
Java
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Productionization
Sebelum menjalankan agen dalam produksi, pastikan untuk menerapkan praktik terbaik produksi.