Repositori ini tidak akan diperbarui. Repositori akan tetap tersedia dalam mode read-only.
Dalam Pola Kode ini, kita akan menggunakan fitur Watson Assistant Slots untuk membuat chatbot yang menerima pesanan pizza. Informasi yang diperlukan seperti ukuran, jenis, dan pilihan bahan semuanya dapat dimasukkan dalam satu Node Asisten, tidak seperti Asisten versi sebelumnya.
Ketika pembaca telah menyelesaikan Pola Kode ini, mereka akan memahami cara:
CATATAN : Pola kode ini telah diperbarui untuk menyertakan instruksi untuk mengakses Watson Assistant yang berjalan pada IBM Cloud Pak for Data. Pembaruan ini dapat ditemukan dalam petunjuk spesifik untuk menyebarkan aplikasi Anda secara lokal, atau menyebarkan aplikasi Anda ke OpenShift di IBM Cloud. Perubahan utama yang diperlukan adalah aplikasi Anda memerlukan kredensial tambahan untuk mengakses klaster IBM Cloud Pak for Data yang menghosting layanan Watson Assistant.
Klik di sini untuk informasi lebih lanjut tentang IBM Cloud Pak for Data.
CATATAN : Pola Kode ini menggunakan pengalaman Watson Assistant. Setelah 8 Oktober 2021, semua instance (non-standar) dapat beralih antara pengalaman Watson Assistant klasik dan baru dengan membuka sudut kanan atas layar Watson Assistant dan mengklik ikon Kelola terletak di sudut kanan atas layar Asisten. Klik Beralih ke pengalaman klasik atau klik Beralih ke pengalaman baru untuk beralih di antara keduanya.
Menggunakan Cloud Foundry di IBM Cloud | Menggunakan layanan Kubernetes IBM Cloud |
---|---|
Klik salah satu opsi di bawah untuk petunjuk penerapan aplikasi.
Kekuatan Slots adalah mengurangi jumlah node yang diperlukan untuk mengimplementasikan logika dalam Dialog Asisten Watson Anda. Berikut sebagian Dialog percakapan menggunakan metode lama:
Dan berikut Dialog menggunakan slot yang lebih lengkap, yang menempatkan semua logika di Node Pizza ordering
.
Buka Dialog, dan kita akan melihat:
Setiap slot mewakili bidang yang akan diisi di chatbot: pizza_size
, pizza_type
, dan pizza_topings
. Jika tidak ada, pengguna akan diminta, mulai dari atas, hingga semuanya diisi melalui variabel terkait ( $pizza_size
, $pizza_type
, dll).
Klik pada Konfigurasi untuk menambahkan lebih banyak fungsi:
Di sini, kita dapat menambahkan respons ketika slot ini terisi (Ditemukan). Logika dapat digunakan untuk satu bahan:
atau jika ada lebih dari satu bahan yang ditambahkan:
1 topping"" style="max-width: 100%;">
Kami telah menambahkan logika untuk menjawab ya atau tidak pada pertanyaan "Ada topping tambahan?":
Klik pada 3 lingkaran dan pilih Open JSON editor
untuk mengedit json secara langsung:
Di sini, kita telah menetapkan nilai kosong untuk bidang konteks: {"pizza_topings"}, sehingga kita dapat keluar dari perulangan dengan mengisi slot ini.
Terakhir, kami menambahkan tanggapan setelah semua slot terisi:
Kita mulai dengan kasus di mana kita memiliki "pizza_toppings", dengan mendeteksi bahwa array memiliki ukuran>0. Di sini, pertama-tama kita menangani kasus di mana slot opsional "pizza_place" terisi, dan kemudian menangani kasus di mana slot tersebut tidak terisi.
Terakhir, kami menambahkan pengendali untuk kasus di mana jawaban pengguna terhadap sebuah prompt tidak ditemukan. Kami telah menambahkan penangan untuk maksud "membantu".
Kami memiliki simpul dialog untuk menangani maksud #reset
yang akan mengatur ulang semua bidang menjadi null
:
Mari kita lihat contoh percakapan dan json terkait. Saat Watson Pizzeria Anda berjalan, mulailah dialog dan mulailah dengan memberi tahu Bot Pizza bahwa Anda menginginkan pizza besar:
'Input Pengguna' menampilkan kolom "input"{"text"}, serta "konteks" yang sebagian besar digunakan Asisten untuk melacak status internal. Gulir ke Bawah ke Watson Understands
dan lihat intents
:
Perhatikan bahwa maksud untuk "pesanan" terdeteksi. Entitas "pizza_size" sekarang menjadi slot yang terisi. Kami masih memiliki 2 slot yang diperlukan, "pizza_type" dan "pizza_toppings". Pengguna akan diminta sampai ini diisi:
Sekarang kita dapat melihat bahwa semua slot yang diperlukan telah terisi:
Bagaimana jika kita ingin memberi tahu Watson Pizzeria bahwa kita ingin makan pizza di sana, di restoran tersebut? Terlambat! slot untuk "pizza_place" bersifat opsional, sehingga pengguna tidak akan diminta untuk melakukannya, dan setelah slot yang diperlukan terisi, kita keluar dari simpul dialog "Pemesanan Pizza". Pengguna perlu mengisi slot opsional terlebih dahulu. Ketik reset untuk memulai lagi dan uji ini dengan menambahkan frasa "makan di sana...":
cf push
memberikan: FAILED Could not find service
Jika Anda memberi nama layanan Anda wcsi-conversation-service
, ini akan berhasil. Saat Anda menggunakan cf push
, ia mencoba mengikat ke layanan yang tercantum di manifest.yml
.
Jadi, ada 2 cara agar ini berfungsi:
CATATAN: Tombol
Deploy to IBM Cloud
menyelesaikan masalah ini dengan membuat layanan dengan cepat (dengan nama yang benar).
Pola kode ini dilisensikan berdasarkan Lisensi Perangkat Lunak Apache, Versi 2. Objek kode pihak ketiga terpisah yang digunakan dalam pola kode ini dilisensikan oleh penyedianya masing-masing sesuai dengan lisensi terpisahnya. Kontribusi tunduk pada Sertifikat Asal Pengembang, Versi 1.1 (DCO) dan Lisensi Perangkat Lunak Apache, Versi 2.
FAQ Lisensi Perangkat Lunak Apache (ASL).