Untuk setiap giliran percakapan, interaksi akan terjadi. 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.
- Panggil Dialogflow API untuk setiap giliran percakapan guna mengirim input pengguna akhir ke API.
- Kecuali jika respons agen Anda murni statis (tidak umum), Anda perlu menghosting layanan webhook untuk menangani fulfillment yang mendukung webhook.
Saat menggunakan integrasi, sistem Anda hanya perlu menangani hal berikut:
- Membangun agen.
- Jika perlu, terapkan layanan webhook.
Diagram berikut menunjukkan langkah-langkah yang terjadi untuk satu giliran percakapan dalam sebuah 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 deteksi intent. Fungsi ini mencocokkan input dengan intent atau parameter formulir, menetapkan parameter sesuai kebutuhan, dan memperbarui status sesi. Jika perlu memanggil fulfillment yang mendukung webhook, agen akan mengirimkan 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, 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, webhook akan menggunakan respons yang diberikan dalam respons webhook. Jika tidak ada webhook yang dipanggil, webhook 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
Pelajari cara memanggil API untuk satu giliran percakapan bagi agen tanpa menggunakan integrasi. Panduan ini tidak menunjukkan cara mengimplementasikan antarmuka pengguna untuk pengguna akhir Anda.
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 ID agen 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 ID agen Anda
dalam bentuk:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
Builder Aplikasi AI Generatif
Buka Generative AI App Builder:
Project ID Anda ditampilkan di bagian atas konsol.
Kolom Location menampilkan ID wilayah.
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 intent deteksi
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 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 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.