Untuk setiap giliran percakapan, terjadi interaksi. Selama interaksi, pengguna akhir mengirimkan input ke Dialogflow CX, dan Dialogflow CX mengirimkan respons. Anda memiliki dua opsi saat menerapkan sistem untuk menangani interaksi: menggunakan API atau menggunakan integrasi.
Saat menggunakan API, sistem Anda harus menangani hal berikut:
- Membangun agen.
- Menyediakan antarmuka pengguna untuk pengguna akhir.
- Memanggil Dialogflow API untuk setiap giliran percakapan guna mengirimkan input pengguna akhir ke API.
- Kecuali jika respons agen Anda murni statis (tidak umum), Anda harus menghosting layanan webhook untuk menangani fulfillment yang diaktifkan webhook.
Saat menggunakan integrasi, sistem Anda hanya perlu menangani hal berikut:
- Membangun agen.
- Secara opsional, menerapkan layanan webhook.
Diagram berikut menunjukkan langkah-langkah yang terjadi untuk satu giliran percakapan sesi.
- Pengguna akhir mengetik atau mengatakan sesuatu, yang dikenal sebagai input pengguna akhir.
- Sistem integrasi atau antarmuka pengguna Anda menerima input dan meneruskannya ke Dialogflow API dalam permintaan deteksi intent.
- Dialogflow API menerima permintaan deteksi intent. API ini mencocokkan input dengan parameter intent atau formulir, menetapkan parameter sesuai kebutuhan, dan memperbarui status sesi. Jika perlu memanggil fulfillment yang diaktifkan webhook, API akan mengirimkan permintaan webhook ke layanan webhook Anda. Jika tidak, lanjutkan ke langkah 6.
- Layanan webhook Anda menerima permintaan webhook. Layanan Anda melakukan tindakan yang diperlukan, seperti memanggil API eksternal, membuat kueri atau memperbarui database, dll.
- Layanan webhook Anda membuat respons dan mengirimkan respons webhook kembali ke Dialogflow CX.
- Dialogflow CX membuat respons deteksi intent. Jika webhook dipanggil, Dialogflow CX akan menggunakan respons yang diberikan dalam respons webhook. Jika tidak ada webhook yang dipanggil, Dialogflow CX akan menggunakan respons statis yang ditentukan di agen. Dialogflow CX mengirimkan respons deteksi intent ke sistem integrasi atau antarmuka pengguna Anda.
- Sistem integrasi atau antarmuka pengguna Anda menerima respons deteksi intent dan meneruskan respons teks atau audio ke pengguna akhir.
- Pengguna akhir melihat atau mendengar respons.
Tujuan
Pelajari cara memanggil API untuk satu giliran percakapan untuk agen tanpa menggunakan integrasi. Panduan ini tidak menunjukkan cara menerapkan antarmuka pengguna untuk pengguna akhir.
Sebelum memulai
Sebelum membaca panduan ini, lakukan hal berikut:
- Baca dasar-dasar alur.
- Lakukan langkah-langkah penyiapan.
- Buat agen atau terus gunakan agen yang Anda buat di Membangun agen menggunakan alur atau Membangun agen menggunakan playbook.
Mengumpulkan ID
Contoh berikut memerlukan beberapa ID sebagai input. Temukan project ID, ID wilayah, dan agent ID Anda menggunakan salah satu metode berikut:
Konsol Dialogflow CX
- Buka konsol Dialogflow CX.
- Pilih project Anda.
- Klik menu opsi more_vert untuk agen dalam daftar.
- Klik tombol salin nama filter_none.
- Tindakan ini akan menyalin nama identifikasi lengkap agen Anda,
yang mencakup project ID, ID wilayah, dan agent ID
dalam bentuk:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
Builder Aplikasi AI Generatif
Buka Builder Aplikasi AI Generatif:
Project ID Anda ditampilkan di bagian atas konsol.
Kolom Location menampilkan region ID.
Pilih aplikasi.
Segmen jalur URL browser setelah
agents/berisi ID aplikasi agen.
Anda juga memerlukan ID sesi. Sesi
mewakili percakapan antara agen Dialogflow CX dan pengguna akhir. Buat ID sesi unik di awal percakapan dan gunakan untuk setiap giliran percakapan. Untuk menguji API, Anda dapat menggunakan ID string apa pun yang berukuran maksimal 36 byte, seperti test-session-123.
Memanggil deteksi intent
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: agent ID Anda
- REGION_ID: ID wilayah Anda
- SESSION_ID: session ID 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 CX, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Dialogflow CX, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Dialogflow CX, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Produksi
Sebelum menjalankan agen dalam produksi, ikuti Praktik terbaik produksi.