Slot filling adalah proses mengumpulkan data yang dibutuhkan oleh intent dalam Dialogflow. Proses ini dilakukan dengan mengajukan pertanyaan kepada pengguna dan menerima jawaban dari mereka. Dialogflow tidak akan mengirim permintaan webhook ke server hingga semua data yang dibutuhkan oleh intent telah terkumpul, kecuali jika webhook untuk slot filling telah diaktifkan.
Dialogflow mengirim respons API untuk setiap langkah slot filling. Untuk masing-masing respons ini, intent dan aksi akan sama, dan parameter yang dikumpulkan akan disediakan.
Mengatur Agent
Ketika Anda membuat agent, Anda dapat memberikan pertanyaan yang akan digunakan oleh agent untuk mengumpulkan data dari pengguna. Anda juga dapat memberikan variasi pertanyaan, sehingga agent tidak selalu menanyai pertanyaan yang sama.
Contohnya, jika Anda memiliki agent toko pakaian dengan intent yang memerlukan parameter berikut:
- Jenis baju
- Kuantitas
- Ukuran
- Warna
Mengumpulkan data untuk intent dapat terlihat seperti berikut:
User: Saya ingin beli kaos.
Agent: Berapa banyak Anda ingin?
User: 3
Agent: Apa warnanya yang Anda inginkan?
User: Hitam
Agent: Apa ukurannya yang Anda inginkan?
User: Medium
Agent: Okay, saya telah memahami, Anda ingin tiga kaos hitam dengan ukuran medium.
Mengumpulkan Parameter
Jika pengguna menyediakan data untuk lebih dari satu parameter dalam ekspresi tunggal, Dialogflow akan mengumpulkan data tersebut dan terus menanyai pengguna untuk data yang masih kurang. Contohnya, jika pengguna mengatakan "Saya ingin beli tiga kaos hitam", Dialogflow akan menanyai pengguna untuk ukuran.
Mengatur Urutan Parameter
Ketika Anda membuat agent, Anda dapat mengatur urutan parameter, yang menentukan urutan di mana agent akan menanyai pengguna untuk data yang masih kurang. Dalam konsole Dialogflow, Anda dapat mendapatkan ikon reordering dengan melebarkan cursor ke atas parameter dan menariknya ke posisi baru.
Referensi Parameter dalam Pertanyaan
Ketika Anda membuat agent, Anda dapat menggunakan referensi parameter dalam pertanyaan, tetapi hanya untuk parameter yang dibutuhkan sebelum pertanyaan. Contohnya, jika parameter warna berada sebelum parameter kuantitas, Anda dapat menggunakan prompt sebagai berikut: "Berapa banyak $warna kaos yang Anda inginkan?"
Batal Slot Filling
Jika pengguna mengatakan kalimat batal seperti "Batal", "Stop it", "That's enough" dan sebagainya, agent akan menjawab "Okay, dibatalkan" dan membersihkan konteks slot filling. Jika Anda menggunakan API, field DetectIntentResponse.queryResult.cancelsSlotFilling akan diatur menjadi true ketika slot filling dibatal.
Contoh Sampel
Berikut adalah contoh sampel untuk Dialogflow Fulfillment Basic Slot Filling:
dialogflow/fulfillment-slot-filling-nodejs
Dialogflow Fulfillment Basic Slot Filling Sample
Untuk membuat agent dari template ini, Anda dapat memilih salah satu opsi berikut:
- Option 1: Tambahkan ke Dialogflow (Dianjurkan)
- Option 2: Firebase CLI
Setup
Jika Anda ingin menggunakan sampel ini, Anda harus melakukan setup sebagai berikut:
- Git clone https://github.com/dialogflow/fulfillment-slot-filling-nodejs.git
- Pergi ke Settings ⚙ > Export and Import > Restore from zip menggunakan file dialogflow-agent.zip di direktori ini.
- Beralih ke direktori functions
- Jalankan npm install.
- Pasang Firebase CLI dengan menjalankan npm install -g firebase-tools
- Masuk dengan akun Google Anda, firebase login
- Tambahkan proyek Anda ke sampel dengan firebase use
Sampel Lainnya
Berikut adalah beberapa sampel lainnya yang dapat membantu Anda dalam membuat agent Dialogflow:
- Fulfillment & Regex Validation
- Weather: Fulfillment & WWO API
- Bike Shop: Fulfillment & Google Calendar API
- Temperature Trivia: Fulfillment & Actions on Google
- Fulfillment & Actions on Google
- Fulfillment & Firestore Database
- Multi-language/locale
- Alexa Importer
Kontak
Jika Anda memiliki pertanyaan atau ingin berkontribusi pada artikel ini, silakan hubungi saya melalui alamat email saya.