Untuk setiap giliran percakapan, interaksi terjadi. Selama interaksi, pengguna akhir mengirimkan input ke Dialogflow, dan Dialogflow mengirimkan respons. Anda memiliki dua opsi saat mengimplementasikan sistem untuk menangani interaksi: menggunakan API atau menggunakan integrasi.
Saat menggunakan API, sistem Anda perlu menangani hal berikut:
- Bangun 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 sepenuhnya statis (tidak umum), Anda harus menghosting layanan webhook untuk menangani fulfillment yang mendukung webhook.
Saat menggunakan integrasi, sistem Anda hanya perlu menangani hal berikut:
- Bangun agen.
- Jika ingin, implementasikan layanan webhook.
Diagram berikut menunjukkan langkah-langkah yang terjadi untuk satu pergantian sesi percakapan.
- Pengguna akhir mengetik atau mengatakan sesuatu, yang dikenal sebagai input pengguna akhir.
- Antarmuka pengguna atau sistem integrasi Anda menerima input dan meneruskannya ke Dialogflow API dalam permintaan intent deteksi.
- Dialogflow API menerima permintaan intent deteksi. Fungsi ini mencocokkan input dengan parameter formulir atau intent, menetapkan parameter sesuai kebutuhan, dan memperbarui status sesi. Jika perlu memanggil fulfillment yang mendukung webhook, Anda akan mengirimkan permintaan webhook ke layanan webhook. Jika tidak, lanjutkan ke langkah 6.
- Layanan webhook Anda akan menerima permintaan webhook. Layanan Anda akan melakukan tindakan apa pun yang diperlukan, seperti memanggil API eksternal, membuat kueri atau mengupdate database, dll.
- Layanan webhook Anda membuat respons dan mengirimkan respons webhook kembali ke Dialogflow.
- Dialogflow membuat respons intent deteksi. Jika webhook dipanggil, webhook akan menggunakan respons yang diberikan dalam respons webhook. Jika tidak ada webhook yang dipanggil, respons statis yang ditentukan dalam agen akan digunakan. Dialogflow mengirimkan respons intent deteksi ke antarmuka pengguna atau sistem integrasi Anda.
- Antarmuka pengguna atau sistem integrasi Anda akan menerima respons intent deteksi dan meneruskan respons teks atau audio kepada pengguna akhir.
- Pengguna akhir melihat atau mendengar responsnya.
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 Anda.
Sebelum memulai
Anda harus melakukan hal berikut sebelum membaca panduan ini:
- Baca Dasar-dasar Dialogflow CX.
- Lakukan langkah-langkah penyiapan.
- Buat agen baru atau lanjutkan menggunakan agen yang Anda buat di Mem-build agen.
Kumpulkan ID
Contoh di bawah ini memerlukan beberapa ID sebagai input. Untuk menemukan project ID, ID wilayah, dan ID agen Anda:
- Buka Konsol Dialogflow CX.
- Pilih project Google Cloud Anda untuk membuka pemilih agen.
- Klik menu opsi more_vert untuk agen dalam daftar.
- Klik tombol salin nama filter_none.
- Tindakan ini akan menyalin nama identitas lengkap agen Anda,
yang mencakup project ID, ID wilayah, dan ID agen Anda
dalam bentuk:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
Anda juga memerlukan ID sesi.
Sesi
mewakili percakapan antara agen Dialogflow dan pengguna akhir.
Anda membuat ID sesi unik di awal percakapan
dan menggunakannya untuk setiap pergantian percakapan.
Untuk tujuan mencoba API, Anda dapat menggunakan ID string apa pun yang berukuran maksimal 36 byte, seperti test-session-123
.
Intent deteksi panggilan
Contoh berikut memanggil metode Sessions.detectIntent
.
Pilih protokol dan versi untuk Referensi sesi:
Protokol | V3 | V3beta1 |
---|---|---|
REST | Referensi sesi | Referensi 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 wilayah 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 mengautentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengautentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Produksi
Sebelum menjalankan agen dalam produksi, pastikan untuk menerapkan praktik terbaik produksi.