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.
- Antarmuka pengguna atau sistem integrasi 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 antarmuka pengguna atau sistem integrasi Anda.
- Antarmuka pengguna atau sistem integrasi Anda menerima respons deteksi intent 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:
- Membaca dasar-dasar alur.
- Melakukan langkah-langkah penyiapan.
- Membuat agen baru atau terus menggunakan agen yang Anda buat di Membangun agen menggunakan alur atau Membangun agen menggunakan playbook
Mengumpulkan ID
Contoh di bawah memerlukan beberapa ID sebagai input. Untuk menemukan project ID, region ID, dan agent ID Anda:
Konsol Dialogflow CX
- Buka konsol Dialogflow CX.
- Pilih project Anda untuk membuka pemilih agen. Google Cloud
- 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, region ID, dan agent ID
dalam bentuk:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
Konsol Vertex AI Agent Builder
Buka konsol Vertex AI Agent Builder:
Project ID Anda ditampilkan di bagian atas konsol.
Kolom Location menampilkan region ID.
Pilih aplikasi.
Segmen jalur URL browser setelah
agents/berisi agent app ID.
Anda juga memerlukan session ID.
Sesi mewakili percakapan antara agen Dialogflow CX dan pengguna akhir.
Anda membuat session ID unik di awal percakapan dan menggunakannya untuk setiap giliran percakapan.
Untuk tujuan mencoba API, Anda dapat menggunakan ID string apa pun yang 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: region ID 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, pastikan untuk menerapkan praktik terbaik produksi.