Anda di halaman 1dari 139

1.

Home
Selamat datang di pusat pendidikan Rasa, tempat terbaik untuk mempelajari semua
tentang percakapan AI. Kamu dapat mempelajari tentang semua :
1.1 Program Rasa

Percakapan AI dengan Rasa

Bentuk Rasa

Memahami Penyebaran Rasa

1.2 Sertifikasi Pengembang Rasa

Ujian Sertifikasi Pengembang Rasa

Panduan Studi Sertifikasi


1.3 Program Machine Learning

Transformers

Penyematan Bias

2. Conversational AI with Rasa


2.1 Pengantar
a. Apa yang akan Anda pelajari.
Kursus ini akan mengajarkan Anda cara menggunakan Rasa dari awal. Anda akan
mempelajari semua tentang Rasa sambil juga belajar tentang AI Percakapan secara
umum.
b. Prasyarat

Sebelum Anda memulai kursus ini, Anda harus memastikan bahwa Rasa sudah
terinstal terlebih dahulu.

• Instalasi Windows
• Instalasi MacOS
• Instalasi Ubuntu

2.2 Pengantar Rasa


a. Lampiran
Rasa adalah alat untuk membantu Anda membangun sistem dialog berorientasi
tugas. Ketika kami mengatakan "berorientasi tugas" yang kami maksud adalah
pengguna ingin mencapai sesuatu. Ketika kita mengatakan "sistem dialog", kita
berbicara tentang sistem otomatis dalam percakapan dua arah. Itu berarti bahwa
kita berbicara tentang asisten yang dapat berbicara kembali kepada pengguna,
untuk membantu mereka mencapai tugas yang mereka minati.

Inti dari membangun asisten Rasa adalah memberikan contoh yang dipelajari oleh
sistem Anda. Dengan begitu, Rasa dapat mencoba menggeneralisasi pola dalam
data Anda. Kami membangun Rasa agar sangat dapat disesuaikan dan mendukung
semuanya, mulai dari proyek hobi hingga sistem perusahaan yang kompleks.

b. Dua Sistem
Secara umum ada dua mekanisme di dalam Rasa yang menggerakkan Percakapan
AI.

c. NLU
NLU adalah singkatan dari pemahaman bahasa alami. Dalam konteks Rasa kita
biasanya berbicara tentang bagian dari sistem yang menerima teks mentah yang
masuk dan informasi yang dapat dibaca mesin yang keluar. Itu biasanya berarti
bahwa itu adalah bagian yang menerima teks dan dapat mengubahnya menjadi
maksud dan entitas.

Ini dapat berbasis aturan , dalam hal ini kita mungkin menggunakan Regex atau
dapat didasarkan pada jaringan saraf . Rasa hadir dengan arsitektur jaringan saraf,
yang disebut DIET, yang mengurutkan teks menjadi maksud dan entitas
berdasarkan contoh yang diberikan.

Pendekatan berbasis aturan cenderung lebih ringan dan membutuhkan lebih


banyak pengetahuan domain untuk mendapatkan yang benar. Pendekatan saraf
cenderung membutuhkan lebih banyak data pelatihan dan daya komputasi, tetapi
mereka sangat baik dalam menangani hal-hal yang belum pernah mereka lihat
sebelumnya.
d. Kebijakan Dialog
Ketika kita berbicara tentang Kebijakan Dialog, kita mengacu pada bagian dari
sistem yang memprediksi tindakan selanjutnya yang akan diambil. Tindakan
selanjutnya tidak hanya ditentukan berdasarkan maksud saat ini, biasanya kita
perlu tahu tentang seluruh percakapan sejauh ini.

Kebijakan dapat lagi didasarkan pada aturan atau metode saraf. Rasa
memungkinkan Anda untuk menentukan aturan ringan Anda sendiri untuk
menentukan apa yang perlu terjadi. Tetapi untuk memungkinkan generalisasi,
Rasa juga menyediakan jaringan saraf yang disebut TED yang memilih giliran
terbaik berikutnya berdasarkan percakapan sejauh ini dan semua percakapan yang
dilatihnya.

Di Rasa kami merekomendasikan untuk menggunakan pendekatan berbasis aturan


dan metode neural secara bersamaan.

e. Cara Membuat Percakapan Berhasil


Pendekatan Rasa fleksibel, tetapi bekerja lebih baik dengan semakin banyak data
berkualitas tinggi yang Anda miliki. Itu berarti Anda ingin meninjau dan
membuat anotasi percakapan secara manual saat Anda membuat asisten. Anda
harus meluangkan cukup waktu untuk memperbaiki kesalahan apa pun yang
dilakukan asisten Anda dalam percakapan sehingga asisten Anda dapat
mempelajari kesalahannya.

Kami menyebut proses kerja ini "Pengembangan Berbasis Percakapan".

Seorang asisten Rasa dapat menggunakan kedua pendekatan tersebut, tetapi


metode saraf adalah inti dari kerangka kerja.
f. Tautan
• Rasa Developer Portal
• Dokumentasi Rasa

g. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Apa perbedaan antara sistem NLU di Rasa dan sistem Kebijakan di Rasa?
• Apa perbedaan praktis antara metode berbasis aturan dan metode saraf?

2.3 Membuat Asisten Baru


a. Video
Berkut video cara membuat asisten baru klik disini

b. Instalalsi
Secara umum, yang Anda perlukan untuk menginstal Rasa adalah perintah ini:

Anda harus menginstal python terlebih dahulu. Jadi jangan ragu untuk memeriksa
panduan instalasi berikut untuk bantuan tambahan.

• Instalasi Windows
• Instalasi MacOS
• Instalasi Ubuntu

Jika Rasa telah terinstal, sekarang kita dapat mulai menjelajahi beberapa perintah
dasar.

c. Kode
Jika Rasa telah diinstal, Anda dapat memulai asisten baru dengan menjalankan:
Ini akan memulai prompt yang akan menghasilkan asisten baru. Anda dapat
menunjukkan di mana Anda ingin membuat proyek baru dan Anda juga dapat
melatih asisten baru setelah file dibuat.

Asisten yang akan Anda buat disebut "moodbot". Ini adalah asisten sederhana
yang mencoba menghibur Anda jika Anda sedih. Jika Anda senang bot hanya
akan mengatakan "selamat tinggal" dan jika Anda sedih bot akan mencoba
menunjukkan gambar harimau yang lucu.

d. File
Proyek Rasa yang baru saja Anda buat harus memiliki struktur file berikut.

Berikut Penjelasn untuk file-file gambar di atas :

• The domain.yml file file mana segala sesuatu datang bersama-sama.


• The config.yml file berisi konfigurasi untuk model pembelajaran mesin
Anda.
• The data folder berisi data yang asisten Anda akan belajar dari.
• The nlu.yml file berisi contoh untuk maksud dan entitas.
• The stories.yml file berisi contoh percakapan bergantian.
• The rules.yml file berisi aturan yang telah ditetapkan untuk kebijakan
dialog.
Semua file ini akan dijelaskan lebih rinci nanti, tetapi kelima file ini memainkan
peran yang sangat penting dalam mengembangkan asisten Rasa. Jadi ada baiknya
untuk segera menyadarinya.

e. Perintah
Ada beberapa perintah yang di gunakan di Rasa.
• rasa init memungkinkan Anda untuk memulai proyek Rasa baru.
• rasa train memungkinkan Anda melatih asisten baru berdasarkan data
pelatihan Anda saat ini.
• rasa shell memungkinkan Anda untuk mengobrol dengan asisten terlatih.
• rasa -h memungkinkan Anda menerima teks bantuan yang relevan untuk
sebuah perintah.
• rasa --debug memberi Anda output log tambahan saat menjalankan
perintah.

f. Tautan
• Panduan Instalasi Langkah demi langkah
• Dokumentasi Baris Perintah Rasa

g. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Apa perintah utama yang akan Anda gunakan untuk menginstal Rasa?
• Apa perbedaan antara file domain.yml dan config.yml file.
• Dua perintah apa yang paling sering Anda gunakan saat mengembangkan
asisten Anda sendiri dari terminal?

2.4 Berkas Domain


a. Video
Berkut video tentang cara membuat berkas domain klik disini

b. Apa yang ada di File Doamain


domain.yml adalah file konfigurasi dari semua yang "diketahui" oleh asisten
Anda. Itu mengandung:
• Response(Tanggapan) : Ini adalah hal-hal yang dapat dikatakan asisten
kepada pengguna.
• Intents(Maksud) : Ini adalah kategori hal-hal yang dikatakan pengguna.
• Slots(Slot) : Ini adalah variabel yang diingat selama percakapan.
• Entities(Entitas) : Ini adalah potongan informasi yang diambil dari teks
yang masuk.
• Form & Action(Bentuk dan Tindakan) : Ini menambahkan logika
aplikasi & memperluas apa yang dapat dilakukan asisten Anda.

Mari kita membahas “Respons” dan “Intents” untuk saat ini.

c. Responses(Tanggapan)
Berikut adalah contoh Snippet dari domain.yml file yang menunjukkan beberapa
contoh tanggapan.
Terdapat utter_<thing> konvensi penamaan sehingga setiap respons dimulai
dengan "utter". Perhatikan bahwa kami sangat menyarankan untuk memiliki
utter_iamabot file domain Anda karena asisten harus dapat menjelaskan bahwa
mereka bukan manusia.

Anda tidak terbatas pada respons statis. Anda juga dapat menentukan respons
yang dinamis seperti berikut :

Dalam hal ini, Rasa akan secara acak memilih salah satu dari dua respons kapan
pun ia perlu mengirim utter_greet respons. Itu juga akan mengisi {name}
variabel dengan nilai slot jika ada yang tersedia.

Anda juga dapat memiliki tanggapan yang berisi gambar atau tombol juga seperti
berikut :
Anda bahkan dapat menyesuaikan pesan berdasarkan saluran yang Anda gunakan.

Dengan cara ini, pengguna slack akan bisa mendapatkan pesan yang berbeda.
Anda bahkan dapat mengirim muatan khusus jika Anda telah membuat saluran
sendiri. Ini adalah kasus penggunaan tingkat lanjut, tetapi Rasa benar-benar
memungkinkan Anda untuk menyesuaikan apa yang Anda kirim ke front-end.
Sekali lagi, ini adalah kasus penggunaan tingkat lanjut untuk “Responses”. Tapi
ada baiknya untuk mengetahuinya.

d. Intents(Maksud)
Respons adalah hal-hal yang dapat Anda kirim ke pengguna, tetapi kita juga perlu
mendefinisikan maksud yang dapat dikirim pengguna ke asisten. Itu sebabnya file
domain juga membutuhkan daftar maksud yang digunakan.

Data pelatihan untuk maksud ini dapat ditemukan dalam nlu.yml file. Kami
merekomendasikan memulai hanya dengan beberapa maksud saat Anda memulai,
tetapi Anda perlu menentukan maksud yang ingin Anda gunakan dalam
domain.yml file.

e. Tautan
• Dokumentasi Domain Rasa

f. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Coba sebutkan semua cara Anda dapat menyesuaikan respons dalam


domain.yml file.
• Selain tanggapan dan maksud, apa lagi yang bisa kita temukan di
domain.yml file kita ?

2.5 Data dan Aturan


a. Video
Berkut video tentang data dan aturan klik disini

b. Lampiran
Saat Anda membuat asisten dengan Rasa, Anda harus memiliki data pelatihan. Ini
mengacu pada data teks yang digunakan untuk melatih model atau fitur apa pun
yang Anda gunakan. Ini termasuk teks yang dibuat pengguna serta pola
percakapan. Ini dapat mencakup log dukungan pelanggan, dengan asumsi
pengumpulan & penggunaan kembali data tercakup dalam kebijakan privasi
Anda, atau percakapan pengguna dengan asisten Anda.

Meskipun log yang sudah ada sebelumnya menawarkan tempat yang baik untuk
memulai, data dari pengguna aktual yang berinteraksi dengan asisten Anda selalu
merupakan data terbaik untuk digunakan.

Sekarang mari kita bahas bagian-bagian berbeda dari data yang akan Anda
berikan.

c. Stories(Cerita)
Cerita mewakili data pelatihan untuk mengajari asisten Anda apa yang harus
dilakukan selanjutnya. Jika Anda sudah memiliki data percakapan, ada baiknya
memulai dengan pola yang Anda temukan di sana. Anda juga dapat membuat pola
Anda sendiri, tetapi kami menyarankan Anda untuk menggunakan pembelajaran
interaktif (melalui rasa interactive perintah) untuk memulai. Anda dapat mulai
membuat alur umum dan "happy flows" dan kemudian mencoba menambahkan
beberapa cerita yang berisi penyimpangan umum.
d. Contoh
Berikut adalah contoh Stories(cerita) :

Anda dapat, misalnya, menggunakan orpernyataan. Kisah di bawah ini


menggunakan or pernyataan untuk menunjukkan bahwa pengguna dapat
menggunakan affirm atau thanks maksud untuk mengonfirmasi pendaftaran.
Contohnya seperti berikut :

Anda juga dapat menggunakan pos pemeriksaan dalam Stories(cerita) Anda.


Anda dapat menggunakan atau pernyataan dan pos pemeriksaan untuk
memodulasi dan menyederhanakan data pelatihan Anda. Mereka bisa berguna,
tetapi jangan terlalu sering menggunakannya . Menggunakan banyak pos
pemeriksaan dapat dengan cepat membuat contoh cerita Anda sulit dipahami, dan
akan memperlambat pelatihan.

e. Aturan
Aturan adalah jenis data pelatihan yang digunakan untuk melatih model
manajemen dialog asisten Anda. Aturan menyediakan cara untuk menggambarkan
potongan percakapan pendek yang harus selalu berjalan dengan cara yang sama.

Perbedaan utama antara aturan dan cerita adalah bahwa cerita dapat dilihat
sebagai contoh untuk dipelajari, sedangkan aturan adalah pola yang harus diikuti
oleh asisten .

Berikut adalah contoh aturan yang mungkin Anda miliki di rules.yml file Anda.
Aturan ini mengatakan "setiap kali saya melihat pengguna menggunakan maksud
salam, responsnya harus selalu menjadi utter_greet respons". Kami akan
berbicara lebih mendalam tentang aturan di video mendatang karena mereka juga
memainkan peran besar dalam menggunakan formulir, tetapi untuk saat ini kami
dapat melihatnya sebagai file lain yang berisi data untuk asisten kami.

f. Intents(Maksud)
Contoh maksud Anda disimpan dalam nlu.yml file Anda . Berikut ini contoh file
seperti itu:

Dalam contoh ini, kami memberikan


banyak contoh greet_smalltalk maksud. Ini adalah data pelatihan untuk Rasa
untuk dipelajari.

g. Beberapa Tips
Saat Anda menambahkan data pelatihan. Ini membantu untuk mengingat tema-
tema berikut.
Saat Anda memulai dengan log yang sudah ada sebelumnya, kami sarankan untuk
menelusuri log untuk melihat apakah Anda dapat menemukan contoh yang sesuai
dengan maksud secara manual. Anda mungkin dapat menggunakan teknik
pembelajaran mesin untuk membantu Anda menemukan maksud, tetapi kami
menyarankan untuk selalu menjaga manusia dalam lingkaran sehingga Anda
dapat menjamin kebenarannya.

Jika Anda tidak memiliki log untuk memulai, pertimbangkan untuk memulai
dengan maksud yang paling umum dan coba gunakan pengetahuan domain atau
pengalaman kolega Anda untuk memberikan contoh yang masuk akal. Anda
selalu dapat menambahkan maksud "di luar cakupan" untuk teks yang tidak
langsung tercakup oleh asisten Anda. Setelah Anda mendapatkan beberapa
maksud dasar, yang terbaik adalah mulai membagikan asisten Anda sehingga
Anda dapat belajar dari data pengguna.

Data yang dihasilkan pengguna lebih baik daripada data sintetis. Kami tertarik
untuk mempelajari bagaimana pengguna berinteraksi dengan asisten dan kami
tidak ingin mengambil risiko overfitting pada data sintetis.

Setiap ucapan harus cocok dengan tepat satu maksud dalam data pelatihan Anda.
Rasa menyediakan sistem pembelajaran ujung ke ujung yang tidak bergantung
pada maksud untuk situasi di mana ucapan mungkin ambigu. Jika Anda memiliki
beberapa ucapan ambigu, mereka dapat ditambahkan, lakukan cerita seperti ini:
Alasan kami menggunakan contoh "Ciao!" di sini adalah karena itu bisa berarti
"halo" atau "selamat tinggal". Dalam konteks cerita yang ditampilkan itu berarti
"halo", tetapi kita tidak boleh menambahkan "Ciao!" sebagai contoh untuk
maksud "halo" karena ambigu. Itu juga bisa berarti "selamat tinggal".

h. Tautan
• Dokumentasi Format Pelatihan Rasa
• Kehilangan Dokumentasi Data NLU
• Dokumentasi Cerita Rasa
• Dokumentasi Aturan Rasa

i. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Kapan masuk akal untuk menggunakan or pernyataan dalam stories.yml


file Anda ?
• Kapan masuk akal untuk digunakan checkpoint dalam stories.yml file
Anda ?
• Apakah ide yang baik untuk mulai membuat asisten dengan banyak
maksud? Mengapa tidak)?

2.6 Entitas
a. Video
Berkut video tentang entitas klik disini
b. Lampiran
Rasa dapat dilatih untuk mendeteksi maksud suatu ujaran, tetapi juga dapat
mendeteksi entitas dalam suatu ujaran. Entitas dapat berupa detail penting apa pun
yang dapat digunakan asisten Anda nanti dalam percakapan. Ini termasuk:

• Angka
• tanggal
• Nama negara
• Nama produk

Misalnya, ketika Anda memiliki ucapan seperti:

Kemudian ingin mendeteksi Sydney sebagai entitas jenis "tujuan" dengan nilai
"Sydney."

c. Data Pelatihan
Anda dapat memberikan contoh entitas dalam nlu.yml file and. Contohnya
sebagai berikut :

d. Mendeteksi Intents(Maksud) Model Pra-Dibangun


Rasa menyediakan beberapa metode bawaan untuk mengekstrak entitas dari pihak
ketiga. Anda dapat menggunakan model pra-bangun yang disediakan oleh
Duckling atau Spacy. Duckling umumnya cukup baik untuk mengekstrak nomor,
tanggal, url dan alamat email. SpaCy, di sisi lain, menyediakan model
pembelajaran mesin yang telah dilatih sebelumnya untuk mendeteksi nama,
lokasi, dan organisasi. Anda bebas untuk mencampur dan mencocokkan. Tidak
ada yang menghentikan Anda untuk menggunakan Duckling dan spaCy dalam
satu pipeline.

Artinya, ucapanya seperti berikut :

Dapat diuraikan oleh spaCy untuk mendeteksi bahwa "Kanada" adalah lokasi
sementara Duckling mendeteksi bahwa "500" adalah angka.

Untuk mendeteksi entitas dengan model yang disediakan, Anda harus memastikan
bahwa alur pembelajaran mesin Anda juga dikonfigurasi dengan benar. Tapi kita
akan membahasnya di segmen selanjutnya.

e. Regex
Anda juga dapat menggunakan regex untuk mendeteksi entitas. Ini adalah pilihan
yang bagus ketika Anda berurusan dengan nomor telepon, kode pos, atau nomor
rekening.

Berikut adalah contoh pola ekspresi reguler yang ditambahkan ke data pelatihan
sebagai berikut :

Dan juga dapat menggunakan tabel pencarian untuk menghasilkan pola ekspresi
reguler peka huruf besar/kecil dengan contoh sebagai berikut :
Untuk mendeteksi entitas dengan pola regex yang disediakan, Anda harus
memastikan bahwa pipeline machine learning Anda juga dikonfigurasi dengan
benar. Akan dibahas di segmen selanjutnya.

f. Pembelajaran Mesin
Opsi lainnya adalah melatih model pembelajaran mesin Anda sendiri untuk
mendeteksi entitas. Model Rasa dasar, yang disebut DIET, mampu menangani ini
untuk Anda. Kelemahan dari pendekatan ini adalah Anda perlu menambahkan
contoh pelatihan yang memadai tetapi keuntungannya adalah Anda tidak terbatas
pada apa yang dapat ditawarkan oleh perpustakaan premade kepada Anda.

Model DIET dapat melatih data ini, dan memberikan output dalam format
berikut:
g. Sinonim
Entitas biasanya tidak hanya terdeteksi, mereka juga digunakan oleh komponen
lain di Rasa. Dengan mengingat hal itu, masuk akal untuk membakukan entitas
Anda dengan menggunakan sinonim. Anda dapat menentukan daftar sinonim di
nlu.yml file Anda seperti berikut :

Jika DIET melihat ucapan ini :

Akan menampilkan sebagai berikut :


Dan juga dapat meneyediakan sinonim sebaris, melalui :

h. Peran dan Group


Perhatikan ucapan ini :

Kami tertarik untuk mendeteksi dua kota, "New York" dan "Boston", tetapi kami
juga ingin mendeteksi informasi tambahan. "New York" adalah asalnya dan
"Boston" adalah tujuannya. Ini juga sesuatu yang ingin kami deteksi.

Sintaks sebaris entitas juga dapat digunakan untuk mendefinisikan peran dan grup
entitas, yang kemudian dapat diprediksi oleh DIET. Inilah yang mungkin terlihat
seperti dalam nlu.yml file sebagai berikut:

Sambungan codingan di atas :


Dengan car aini, data yang terdeteksi mungkin akan terlihat seperti berikut :

Kesamaan, Anda juga dapat menambahkan informasi "grup" ke entitas. Pada


contoh di bawah, grup digunakan untuk menunjukkan bahwa kita sedang
membicarakan pizza #1.

Sambungan codingan di atas :


i. Mempengaruhi Cerita
Ada baiknya mengetahui bahwa entitas dapat memengaruhi percakapan. Sama
seperti maksud adalah elemen dari pola cerita, entitas mungkin juga dapat
mengarahkan percakapan. Pada contoh di bawah, kami menambahkan tindakan
tambahan jika kota tujuan adalah London.

j. Tautan
• Dokumentasi Format Pelatihan Rasa

k. Latihan
Cobalah untuk menjawab Pertanyaan-pertanyaan berikut untuk menguji
penegetahuan anda.
• Bisakah satu kata dalam kalimat menjadi bagian dari dua entitas?
• Apa tiga cara utama untuk mendeteksi entitas di Rasa?
n
2.7 Slot
a. Video
Berkut video tentang slot klik disini

b. Lampiran
Di Rasa, slot adalah memori jangka panjang Anda dalam sebuah percakapan. Jika
ada informasi yang ingin Anda simpan untuk digunakan nanti, Anda biasanya
ingin menyimpannya di slot. Penting untuk dipahami bahwa slot tidak sama
dengan entitas. Anda dapat menyimpan informasi apa pun dalam slot, meskipun
tidak ada entitas yang terdeteksi. Yang mengatakan, sangat umum untuk mengisi
nilai slot dengan nilai entitas.

Jika Anda ingin menentukan slot, Anda harus mendefinisikannya di domain.yml


file Anda .

Anda akan melihat bahwa dalam konfigurasi ini kami telah menambahkan
influence_conversation tag. Pasalnya, slot bisa mempengaruhi sebuah cerita.
Anda mungkin memiliki sesuatu seperti ini di stories.yml file Anda .

Jika slot Anda dikonfigurasi untuk memengaruhi alur percakapan, Anda harus
memasukkannya ke dalam cerita pelatihan Anda.

c. Pengaturan Slot
Biasanya, nilai slot akan disetel oleh entita yang terdeteksi. Dalam situasi ini,
domain.yml file akan menyertakan entitas.
Dengan cara ini, ketika suatu entitas terdeteksi, ia dapat mengisi nilai slot. Anda
juga dapat menyetel nilai slot dengan tindakan khusus, tetapi kami akan
membahas cara melakukannya di video selanjutnya.

d. Isi Otomatis

Secara default, slot yang memiliki nama entitas yang cocok akan secara otomatis
diisi dengan nilai entitas tersebut. Anda dapat menonaktifkan perilaku ini dengan
mengubah konfigurasi auto_fill parameter menjadi false.

e. Jenis
Di Rasa, slot memiliki jenis. Ini berguna, karena jenis informasi tertentu
merupakan server yang lebih baik sebagai angka daripada string teks.

f. Teks Slot
Teks jenis slot dapat digunakan untuk menyimpan informasi teks apa pun. Itu
dapat mempengaruhi percakapan berdasarkan apakah slot telah diatur atau tidak.
g. Boolean Slot
Jenis slot Boolean dapat digunakan untuk menyimpan informasi yang bisa
mendapatkan nilai True atau False

h. Catagorical Slot
Kategoris jenis slot dapat digunakan untuk menyimpan nilai yang bisa
mendapatkan salah satu dari kumpulan nilai yang mungkin telah ditentukan
sebelumnya.

i. Float Slot
Float tipe ini dapat digunakan untuk menyimpan nilai numerik.
j. List Slot
Slot ini dapat digunakan untuk menyimpan daftar nilai. Saat dikonfigurasi, hanya
keberadaan slot yang dapat memengaruhi alur percakapan. Nilai-nilai itu sendiri
tidak akan diperhitungkan.

k. ‘Any’ Slot
Jenis slot ini dapat digunakan untuk menyimpan nilai arbitrer apa pun. Slot jenis
ini tidak berpengaruh terhadap alur percakapan yang artinya nilai dan keberadaan
slot tidak berpengaruh terhadap jalannya percakapan.

l. Initial Values
Terakhir, ada baiknya mengetahui bahwa Anda juga dapat menetapkan nilai
default pada slot dengan mengonfigurasi initial_value parameter. Nilai akan
ditetapkan ke slot dari awal percakapan dan dapat disetel ulang nanti oleh NLU
atau tindakan khusus.

m. Tautan
• Dokumentasi Slot Rasa
n. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Kapan slot memengaruhi percakapan? Kapan tidak?


• Apa perbedaan antara slot dan entitas?

2.8 Tanggapan
a. Video
Berikut video tentang Tanggapan klik disini

b. Lampiran
Berikut adalah contoh cuplikan dari domain.yml file yang menunjukkan beberapa
contoh tanggapan.

Terdapat utter_<thing> konvensi penamaan sehingga setiap respons dimulai


dengan "ucapkan". Perhatikan bahwa kami sangat menyarankan untuk memiliki
utter_iamabot file domain Anda karena asisten harus dapat menjelaskan bahwa
mereka bukan manusia.
Anda tidak terbatas pada respons statis. Anda juga dapat menentukan respons
yang dinamis. Misalnya, Anda dapat menyertakan lebih dari satu kemungkinan
respons untuk template tertentu. Rasa kemudian akan secara acak memilih
respons mana yang akan dipilih.

Dalam hal ini, Rasa akan secara acak memilih salah satu dari tiga respons kapan
pun ia perlu mengirim utter_greet respons. Anda dapat membuatnya lebih
dinamis dengan memasukkan slot dalam tanggapan.

Itu juga akan mengisi {name}variabel dengan nilai slot jika ada yang tersedia.

c. Respon Konten
Anda juga dapat memiliki tanggapan yang berisi gambar atau tombol juga seperti
contoh sebagai berikut :
Anda bahkan dapat menyesuaikan pesan berdasarkan saluran yang digunakan.

Dengan cara ini, pengguna slack akan bisa mendapatkan pesan yang berbeda.
Anda bahkan dapat mengirim muatan khusus jika Anda telah membuat saluran
sendiri. Ini adalah kasus penggunaan tingkat lanjut, tetapi Rasa benar-benar
memungkinkan Anda untuk menyesuaikan apa yang Anda kirim ke front-end.
d. Pelatihan
ika Anda ingin asisten Anda benar-benar menggunakan respons yang ditentukan,
Anda juga harus memasukkannya ke dalam cerita pelatihan Anda. Sebagai
contoh:

e. Tautan
• Dokumentasi Tanggapan Rasa

f. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Kapan slot memengaruhi percakapan? Kapan tidak?


• Apa perbedaan antara slot dan entitas?
2.9 Pipeline dan kebijakan
a. Video
Berikut video tentang pipeline dan kebijakan klik disini

b. Lampiran
Rasa menggunakan pembelajaran mesin untuk membuat prediksi tentang niat
pengguna serta tindakan terbaik berikutnya yang harus diambil. Pipeline
pembelajaran mesin ini perlu dikonfigurasi di config.yml file Anda. Berikut
adalah contoh dasar tentang tampilan config.yml file.

config.yml file terdiri dari dua bagian. Bagian tersebut pipeline menangani
prediksi maksud dan ekstraksi entitas. Policies bagian tersebut menangani
pemilihan tindakan berikutnya.
c. Pipeline
Ada berbagai jenis komponen yang dapat Anda temukan di jalur Rasa Pipeline.
Antara lain sebagai berikut :

• Tokenizer
• Fitur
• Pengklasifikasi Intent
• Ekstraktor Entitas

Mari kita bahas apa yang dilakukan masing-masing jenis komponen di atas.

d. Tokeniser
Langkah pertama dalam pipeline Rasa adalah membagi ucapan menjadi potongan
teks yang lebih kecil, yang dikenal sebagai token. Ini harus terjadi sebelum teks
ditampilkan untuk pembelajaran mesin, itulah sebabnya Anda biasanya
mencantumkan tokenizer terlebih dahulu di awal pipeline.

e. Fitur
Setelah kami memiliki token, kami dapat mulai menambahkan fitur pembelajaran
mesin numerik. Itulah yang dilakukan fitur. Diagram di bawah ini menunjukkan
bagaimana kata "Hai" dapat dikodekan.
Ada dua jenis fitur di Rasa :

• Spase Features : biasanya dihasilkan oleh CountVectorizer . Kami juga


memiliki LexicalSyntacticFeaturizer yang menghasilkan fitur berbasis
jendela yang berguna untuk pengenalan entitas.
• Dense Features : ini terdiri dari banyak embeddings pra-terlatih dari
model bahasa. Biasanya dari spacy melalui SpaCyFeaturizers atau dari
huggingface melalui LanguageModelFeaturizers. Jika Anda ingin ini
berfungsi, Anda juga harus menyertakan tokenizer yang sesuai di saluran
Anda.

Rasa menerapkan fitur ini ke semua token tetapi juga menghasilkan fitur untuk
seluruh kalimat. Ini kadang-kadang juga disebut sebagai CLS fitur atau sentence
fitur.

Secara historis, fitur token digunakan untuk mengekstrak entitas sementara fitur
kalimat digunakan untuk mendeteksi maksud. Dengan diperkenalkannya
algoritma DIET Rasa, ini telah berubah, tetapi ada baiknya untuk mengetahui
pilihan desain aslinya.
f. Pengklafikasi Intent
Setelah kami membuat fitur untuk semua token dan untuk seluruh kalimat, kami
dapat meneruskannya ke model klasifikasi maksud. Kami merekomendasikan
penggunaan model DIET Rasa yang dapat menangani klasifikasi maksud serta
ekstraksi entitas. Itu juga dapat belajar dari fitur token dan kalimat.

g. Ekstantor Entitas
Meskipun DIET mampu mempelajari cara mendeteksi entitas, kami tidak selalu
menyarankan untuk menggunakannya untuk setiap jenis entitas di luar sana.
Misalnya, entitas yang mengikuti pola terstruktur, seperti nomor telepon, tidak
benar-benar membutuhkan algoritme untuk mendeteksinya. Anda bisa
menanganinya dengan RegexEntityExtractor sebagai gantinya. Anda juga dapat
mempertimbangkan untuk menambahkan DucklingEntityExtractor atau
SpacyEntityExtractor jika cocok dengan kasus penggunaan Anda.
h. Ouput
Pipeline di Rasa adalah sistem yang dapat mengubah ucapan, seperti "Pesan
penerbangan dari Berlin ke SF", menjadi data terstruktur yang ditunjukkan di
bawah ini.

Mengingat bahwa kita sekarang memiliki maksud dan entitas, bagaimana kita bisa
memprediksi tindakan selanjutnya?

i. Kebijakan
Saat Rasa memprediksi suatu tindakan, itu tidak hanya melihat maksud dan
entitas saat ini. Itu juga terlihat dari percakapan selama ini.
Rrasa menggunakan kebijakan untuk memutuskan tindakan mana yang akan
diambil pada setiap langkah dalam percakapan. Ada tiga kebijakan utama yang
config.yml dimulai dengan file default :

• RulePolicy menangani percakapan yang cocok pola aturan yang telah


ditetapkan. Itu membuat prediksi berdasarkan aturan apa pun yang Anda
miliki di rules.yml file Anda .
• MemoizationPolicy memeriksa apakah percakapan saat ini cocok salah
satu cerita dalam data pelatihan Anda. Jika demikian, itu akan
memprediksi tindakan selanjutnya dari cerita yang cocok.
• TEDPolicy mesin menggunakan belajar untuk memprediksi tindakan
terbaik berikutnya.

Semua kebijakan ini membuat prediksi tentang tindakan selanjutnya secara


paralel dan kebijakan dengan keyakinan tertinggi menentukan tindakan
selanjutnya. Ketika dua kebijakan memiliki keyakinan yang sama maka Rasa
memiliki mekanisme prioritas untuk menangani keputusan tersebut. Prioritas
kebijakan menentukan cara asisten membuat keputusan saat beberapa kebijakan
memprediksi tindakan berikutnya dengan akurasi yang sama.

Prioritas default di Rasa adalah:


• 6 untuk RulePolicy
• 3 untuk MemoizationPolicy
• 1 untuk TEDPolicy

Alasan mengapa the RulePolicy dan the MemoizationPolicy memiliki prioritas


yang lebih tinggi karena mereka secara langsung berdasarkan masukan dari
desainer. Aturan dan cerita yang telah ditambahkan dimaksudkan untuk dilihat
sebagai contoh bagaimana percakapan seharusnya berjalan. Ini TEDPolicy adalah
kebijakan yang didasarkan pada pembelajaran mesin, yang akan mencoba
menggeneralisasi sehingga kami dapat menangani percakapan yang tidak
ditentukan dalam stories.yml dan rules.yml. Meskipun memiliki kemampuan
untuk melampaui aturan kami sendiri adalah hal yang bagus, kami biasanya dapat
memercayai pengetahuan domain kami lebih baik daripada perkiraan statistik
sistem pembelajaran mesin.

j. Aturan Kebijakan
RulePolicy memungkinkan Anda untuk memberlakukan perilaku berbasis aturan
ketat pada asisten Anda.

Kebijakan akan memeriksa definisi aturan di rules.yml file Anda dan akan
menerapkannya. Anda dapat melihat contoh aturan seperti itu di bawah ini.
k. Kebijakan Memoisasi
MemoizationPolicy diterapkan setiap kali cerita saat ini mirip dengan cerita yang
sudah ada sebelumnya. Sebagai contoh. Jika ini adalah cerita sejauh ini.

Kemudian MemoizationPolicy akan dapat menendang jika dilatih pada cerita


berikut.

Dalam hal ini MemoizationPolicy akan memprediksi bahwa utter_ask_userid


adalah tindakan selanjutnya yang harus diambil.
l. Kebijakan Ted
Kebijakan Transformer Embedding Dialogue (TED) adalah arsitektur multi-tugas
untuk prediksi tindakan selanjutnya. Ini menggunakan fitur dari giliran
percakapan saat ini, serta beberapa giliran masa lalu, untuk membuat prediksi
tentang apa yang harus dilakukan selanjutnya. Jika Anda penasaran dengan
detailnya, dijelaskan secara lengkap di makalah kami dan di saluran YouTube
kami .

Secara umum, kami tidak menyarankan untuk mengubah hyperparameter saat


Anda baru memulai karena prioritas pertama Anda adalah memperoleh set
pelatihan yang representatif. Setelah Anda memilikinya, mungkin masuk akal
untuk menyetel max_history parameter TEDPolicy komponen.

Jika Anda memiliki percakapan yang sangat rumit di mana konteksnya benar
benar penting, mungkin masuk akal untuk meningkatkan max_history
parameternya. Perhatikan bahwa max_history parameter yang lebih tinggi
mungkin memerlukan waktu lebih lama untuk melatih model Anda.

m. Catatan Akhir
Rasa menyediakan banyak komponen yang dapat Anda gunakan untuk
membangun alur pembelajaran mesin Anda dan kami hanya menggores
permukaan dari apa yang tersedia di bagian ini. Secara umum kami sangat
menyarankan untuk tidak mengoptimalkan sistem Anda sebelum waktunya, tetapi
kami ingin menekankan bahwa Rasa juga mendukung banyak komponen untuk
pipeline Non-Bahasa Inggris. Anda juga dapat membuat komponen Anda sendiri
dengan Python jika itu menarik.
n. Tautan
• Blogpost terperinci tentang alat Non-Bahasa Inggris
• Blogpost terperinci tentang NLU Pipelines
• Blogpost terperinci tentang Kebijakan Dialog
• Dokumentasi Komponen Rasa Config
• Contoh Komponen Kustom

o. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Apa blok bangunan utama dari Pipa NLU di Rasa?


• Mengapa kita membutuhkan mekanisme prioritas untuk kebijakan kita?

2.10 Tindakan kustom


a. Video
Berikut Video tentang tidakan kustom klik disini

b. Lampiran
Katakanlah kita telah memperkirakan tindakan selanjutnya yang akan diambil atas
nama pengguna. Kemudian kita mungkin perlu mengirim tanggapan yang sesuai
pada waktu tertentu, tetapi di lain waktu kita mungkin perlu melakukan tugas lain.
Hal-hal seperti:

• Kirim Sebuah email


• Buat janji temu kalender
• Ambil informasi yang relevan dari database
• Periksa informasi dari API
• Hitung sesuatu yang spesifik
Untuk semua contoh ini, kita perlu melakukan lebih dari sekadar mengirim
kembali tanggapan. Sebagai gantinya, kami ingin menjalankan sedikit kode atas
nama pengguna kami. Untuk menangani tugas-tugas semacam ini, Rasa
menawarkan Anda untuk menulis "Tindakan Kustom". Alih-alih memicu teks
respons, kami dapat memicu fungsi python khusus untuk dijalankan atas nama
kami. Ini membuka banyak pilihan untuk asisten kami!

c. Tindakan Kustom sebagai Sistem

Sebelum beralih ke sintaks, ada baiknya untuk memahami bagaimana tindakan


kustom ini berinteraksi dengan asisten Rasa Anda. Jika kita memikirkan "Layanan
Rasa" kita, maka kita berpikir tentang sistem yang dapat menyimpulkan apa yang
diinginkan pengguna dan tindakan apa yang harus diambil selanjutnya. Jika kita
memikirkan "Tindakan Kustom" kita, maka kita biasanya mengkhawatirkan hal-
hal lain. Kami mungkin perlu terhubung ke database, yang membawa masalah
keamanan serta pengujian unit.

Itulah mengapa Rasa memperkenalkan pemisahan kekhawatiran dalam hal


tindakan adat. Proses Rasa utama berbeda dari proses yang menangani kode
Python khusus.
d. Kode Github
Kami akan membagikan cuplikan kode di bawah ini. Tetapi kami juga memiliki
repositori Github dengan seluruh proyek Rasa. Jika Anda lebih suka menjelajahi
kode seperti itu, cukup buka repositori di sini.

e. Tndakan Kustom Dasar

Kode di bawah ini menunjukkan bagaimana Anda dapat menentukan tindakan


kustom yang memberi tahu Anda waktu.

Kode menggunakan perpustakaan panah untuk kenyamanan, jadi pastikan itu


diinstal terlebih dahulu.
Ada beberapa bagian yang layak untuk disimak.

• Kami mendefinisikan kelas ActionTellTime yang mewarisi dari Action


kelas yang ditemukan di rasa_sdk modul. Setiap kali Anda menulis
tindakan kustom, Anda perlu mewarisi dari kelas ini karena menangani
banyak boilerplate atas nama Anda.
• The name(self) Metode mendefinisikan nama dari tindakan. Nama ini
juga perlu disalin ke domain.yml file Anda dan Anda perlu memastikan
bahwa Anda tidak salah mengejanya saat menggunakannya di file /
stories.yml / Anda .rules.ymldomain.yml
• The run Metode berisi logika untuk tindakan kustom Anda. Metode ini
menerima informasi dari percakapan jauh dari tracker input. Anda dapat
mempelajari lebih lanjut tentang informasi yang dapat diberikannya
dengan memeriksa dokumen.
• Untuk mengirim pesan ke pengguna akhir, Anda akan ingin menggunakan
dispatcher.utter_message metode ini. Anda juga dapat mengirim gambar
atau tombol dengan metode ini, tetapi dalam contoh kami, kami hanya
menggunakannya untuk mengirim teks.
• Kami mengejek database di sini dengan city_db kamus kami . Kami
menggunakan "database" ini untuk mengonversi nama kota menjadi zona
waktu.
• Tindakan kustom mencoba mengambil entitas yang terdeteksi untuk suatu
tempat. Jika tidak dapat menemukannya di pelacak, ia mencoba gagal
dengan anggun. Ini adalah pola yang akan sering Anda lihat dalam
tindakan kustom. Anda harus selalu mempertimbangkan cara terbaik
untuk menangkap perilaku tak terduga.

f. Menjalankan Aksi
Jika Anda ingin berinteraksi dengan asisten yang memiliki tindakan kustom ini,
ingatlah bahwa sebelum menjalankan, rasa shell Anda harus memulai server
tindakan terlebih dahulu.
Anda juga harus memeriksa endpoints.yml file Anda sebelum menjalankan shell
Rasa. Anda ingin memastikan bahwa shell Rasa Anda dapat menemukan tindakan
kustom. Pastikan saja Anda memiliki titik akhir tindakan yang dikonfigurasi
dengan benar. Jika Anda menjalankan tindakan khusus pada port 5055, ini sudah
cukup:

g. Tindakan Kustom Lanjutan


Mari tambahkan dua tindakan kustom lagi untuk menampilkan beberapa fitur
lainnya.

h. Pengaturan Slot
Pertama, kami akan menambahkan tindakan khusus yang dapat mendaftarkan
informasi di slot atas nama pengguna.
Anda mungkin telah memperhatikan sebelumnya bahwa tindakan kustom
mengembalikan daftar. Ini dimaksudkan sebagai cara bagi Anda untuk memberi
tahu Rasa untuk menjalankan acara tertentu. Dalam contoh kami, kami
menunjukkan cara memancarkan SlotSet-event, tetapi Rasa juga mendukung
event lain. Periksa dokumen untuk informasi lebih lanjut.

i. Mengambil Slot
Tindakan yang dapat mengambil nilai slot ditunjukkan di bawah ini.
Sekali lagi Anda dapat melihat bahwa tindakan kustom ini benar-benar mencoba
untuk menjadi kuat terhadap kejadian tak terduga. Bahkan jika nilai slot kosong,
atau jika nilai slot tidak cocok dengan entri database, kita dapat "gagal dengan
baik".

j. Tautan
• Dokumentasi Pelacak
• Dokumentasi Acara Rasa SDK
k. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Apa yang trackerterkandung dalam runmetode Tindakan Kustom?


• Apa yang dispatcherterkandung dalam runmetode Tindakan Kustom?
• Bagaimana Anda bisa mengatur slot dalam Tindakan Kustom?

2.11 Formulir Dasar


a. Video
Berikut video tentang formular dasar klik disini

b. Lampiran
Ada banyak kasus penggunaan untuk mengumpulkan informasi dari pengguna
sebelum mengambil tindakan atas nama mereka. Jika kita ingin, misalnya,
memesan pizza maka kita perlu mengetahui jenis dan ukuran pizza tersebut. Untuk
mempermudah pengumpulan informasi, Rasa memiliki fitur "Formulir" yang kami
selami di segmen ini.

c. Bagaimana cara Kerja Formulir Rasa?


Secara konseptual, formulir dapat dilihat sebagai loop yang terus meminta
informasi kepada pengguna sampai nilai slot yang cukup telah diisi. Contoh aliran
seperti itu ditunjukkan pada diagram di bawah ini.
Ide di balik formulir Rasa adalah bahwa kita tidak perlu mengajukan pertanyaan
jika pengguna telah memberikan informasi yang diperlukan. Jika pengguna
memberi tahu kami bahwa mereka ingin membeli "pizza vegetarian", maka kami
tidak perlu menanyakan jenis pizza yang mereka minati lagi.
d. Kode Github
Kami akan membagikan cuplikan kode di bawah ini. Tetapi kami juga memiliki
repositori Github dengan seluruh proyek Rasa. Jika Anda lebih suka menjelajahi
kode seperti itu, cukup buka repositori di sini .

Oleh karena itu, untuk menyiapkan formulir dasar, Anda perlu mengubah
domain.ymlfile untuk mengonfigurasi formulir dan slot, tetapi Anda juga perlu
memperbarui rules.ymlfile agar Rasa mengerti saat Anda memicu loop formulir.

Oleh karena itu, untuk menyiapkan formulir dasar, Anda perlu mengubah
domain.yml file untuk mengonfigurasi formulir dan slot, tetapi Anda juga perlu
memperbarui rules.yml file agar Rasa mengerti saat Anda memicu loop formulir.
Contoh domain.yml dibawah ini menunjukan cara mengatur simple for dengan
dua slot untuk diisi.

Anda mungkin memperhatikan bahwa ada beberapa tanggapan yang mengikuti


utter_ask_<slot_name> konvensi penamaan. Tanggapan ini diambil oleh forum
kami setiap kali kami ingin pengguna memberi kami informasi yang diperlukan
untuk mengisi nama slot.

Contoh rules.yml Mengingat bahwa kami memiliki formulir yang ditentukan,


kami juga membutuhkan Rasa untuk dapat memicu pengulangan pada waktu yang
tepat dalam percakapan. Anda dapat menggunakan aturan untuk mendefinisikan
ini.
Jangan lupa nlu.yml Karena kita berurusan dengan entitas, kita tidak boleh lupa
untuk menambahkan beberapa contoh ke nlu.ymlfile kita . Kami membutuhkan
contoh entitas tetapi juga untuk maksud yang kami gunakan dalam rules.ymlfile
kami.
e. Data Tidak Valid
Mungkin saja pengguna memberi kami informasi yang tidak valid. Seorang
pengguna mungkin meminta kami untuk membuat pizza "buah", yang tidak dapat
kami sediakan.

Dalam situasi ini kami ingin memvalidasi dan menangkap ucapan yang tidak
valid ini sehingga kami dapat meminta pengguna untuk mencoba lagi.

Untuk memvalidasi data, kita dapat menggunakan Custom Actions.


f. Menambahkan Tindakan Kustom
Jika kita ingin menambahkan tindakan kustom, jangan lupa untuk
menambahkannya ke domain.yml file kita .

Perhatikan konvensi penamaan di sini. Kita harus mematuhi


validate_<form_name> konvensi.

g. Kode Python
Contoh validator untuk formulir kami dapat dilihat di bawah ini.
Ada beberapa hal yang perlu diperhatikan.
• Perhatikan bahwa ValidateSimplePizzaFormkelas kita mewarisi dari
FormValidationAction, yang berbeda dari Actionkelas standar yang
diwarisi dari tindakan kustom.
• The nameMetode mendefinisikan nama validator, yang perlu bersesuaian
dengan nama di kami domain.ymlberkas dan kebutuhan untuk mematuhi
validate_<form_name>konvensi penamaan.
• Untuk setiap slot kami memiliki validate_<slot_name>metode. Sekali lagi,
kita perlu mengikuti konvensi penamaan.
• Perhatikan bahwa setiap metode validator mengembalikan kamus. Anda
dapat mengatur slot Noneyang akan membatalkannya.

h. Menjelajahi Formulir
Jika Anda ingin menjelajahi formulir Anda, sebaiknya gunakan rasa interactive.
Ini memberi Anda shell interaktif yang juga menunjukkan status slot, yang sangat
berguna saat Anda men-debug formulir.

i. Tautan
• Dokumentasi Formulir Rasa

j. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Dalam hal apa validator formulir berbeda dari tindakan kustom?


• Kapan Anda akan menggunakan formulir untuk mengatur slot? Kapan
tindakan kustom lebih disukai?
2.12 Formulir Kustom
a. Video
Berikut video mengenai formular kustom klik disini

b. Lampiran
Anda mungkin telah merencanakan formular menggunakan diagram seperti
dibawah ini.

Tetapi suatu bentuk juga harus kuat terhadap jalan yang tidak menyenangkan.
Mungkin akan berurusan dengan pengguna yang meminta klarifikasi saat mereka
memberikan informasi kepada asisten.
Kapan pun ini terjadi, anda ingin asisten menjawab perintah, dan setelah itu
Kembali ke formular.

Jadi mari kita bahas cara konfigurasi formular Rasa mengenai hal di atas.

c. Kode Github
Kami akan membagikan cuplikan kode di bawah ini. Tetapi kami juga memiliki
repositori Github dengan seluruh proyek Rasa. Jika Anda lebih suka menjelajahi
kode seperti itu, cukup buka repositori di sini.
Mari mulai dengan mengadaptasi rules.yml file kita.

Idenya di sini adalah bahwa kita dapat menambahkan aturan yang mampu
menangani "interupsi" yang terjadi dari dalam formulir. Dalam hal ini, setelah
utter_iamabot respons dikirim, kontrol diberikan kembali ke loop formulir.

d. Menghentikan Formulir
Biasanya, formulir akan ditutup secara otomatis setelah pengguna memberikan
semua slot yang diperlukan. Tetapi bagaimana jika pengguna menghentikan
formulir sebelum waktunya? Dalam hal ini kita perlu memikirkan cara untuk
menonaktifkan loop dari suatu formulir.
Mari kita coba menerapkan perilaku ini, mengikuti diagram di bawah ini.

Untuk mencapai perilaku ini, kita perlu menggunakan cerita.

Ada beberapa hal yang perlu diperhatikan di sini.

• Anda mungkin bertanya-tanya mengapa kita perlu menggunakan cerita


daripada aturan di sini. Pasalnya, aturan hanya mengizinkan pola pendek.
Anda hanya diperbolehkan memiliki satu maksud yang digunakan dalam
aturan, yang tidak akan berfungsi untuk situasi yang kita miliki di sini. Ini
berarti bahwa dalam produksi RulePolicy tidak akan berlaku di sini dan
sebaliknya MemoizationPolicy mungkin mengambil alih.
• Setelah stop maksud terdeteksi dalam formulir, kami bertanya kepada
pengguna apakah mereka yakin. Mereka dapat menggunakan stop atau
affirm maksud untuk menyatakan apa yang mereka inginkan terjadi. Jika
jelas pengguna ingin berhenti, kami memicu action_deactivate_loop
tindakan dan menghentikan loop.

Jika Anda mencoba membangun alur ini, kami sangat menyarankan menggunakan
rasa interactive perintah sebagai cara untuk memulai.

e. Kutomisasi Formulir Lanjutan


Untuk menunjukan betapa fleksibelnya formular Rasa, kami akan membawa
formular kami selangkah lebih maj. Apa yang akan kami tunjukan adalah kasus
penggunaan tingkat lanju, jadi jangan khawatir jika anda merasa perlu membaca
Kembali bagian dari tutorial.

Idenya adalah membuat formulir yang menggunakan tombol untuk mengajukan


pertanyaan yang juga dapat mengubah perilakunya tergantung pada informasi
yang diterimanya. Secara khusus, kami akan memulai formulir dengan
menanyakan apakah pengguna tertarik dengan pizza vegetarian dan kami akan
menampilkan opsi yang berbeda nanti di formulir tergantung pada jawabannya.

Kami akan membuat yang baru fancy_pizza_formyang memfasilitasi ini. Itu


berarti pertama-tama kita harus membuat perubahan pada domain.yml file.
Dengan domain.yml pengaturan kami , kami sekarang dapat membuat tindakan
khusus yang akan meminta informasi kepada pengguna atas nama kami.
Tindakan kustom ini bertindak sebagai respons yang juga dapat menangani logika
atas nama kami. Secara khusus, perhatikan bagaimana cara AskForPizzaType
Action mengirim pesan berbeda yang didasarkan pada vegetarian slot.

Ini juga bagus untuk mengamati muatan dari semua tombol. Idenya adalah ketika
pengguna menekan tombol dengan muatan "fungi", Rasa akan menerimanya
seolah-olah pengguna mengetik "jamur" di kotak dialog. Jika payload dimulai
dengan garis miring terbalik, seperti di "/affirm", itu akan ditafsirkan sebagai
maksud.

f. Validasi
Kami fancy_pizza_form masih membutuhkan validator. Ini didefinisikan di
bawah ini.
Ada beberapa hal yang perlu diperhatikan di sini.

• Perhatikan bahwa validate_vegetarian metode ini tidak benar-benar


memvalidasi slot. Sebaliknya, itu mengaturnya dengan menggunakan
maksud!
• Kami masih memiliki validate_pizza_size dan validate_pizza_type
metode untuk memvalidasi informasi yang masuk.
• Saat pengguna menekan tombol, informasi masih harus melewati langkah
validasi. Kami ingin mempertahankan validator di tempatnya karena
pengguna juga dapat memilih untuk mengetik di bilah dialog alih-alih
menekan tombol.

g. Cobalah!
Jika Anda tertarik untuk bereksperimen dengan ini, kami sarankan Anda
menggunakan rasa interactive. Dengan begitu, Anda juga dapat memeriksa nilai
slot saat percakapan berlanjut.

Anda juga bebas menyalin kode dari repositori kami di sini.

h. Tautan
• Dokumentasi Formulir Rasa

i. Latihan

Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji


pengetahuan Anda.

• Bisakah validator untuk slot A juga membatalkan data di slot B?


• Mengapa Anda terkadang perlu mendefinisikan sebuah cerita untuk
perilaku tertentu dengan bentuk Rasa?

2.13 Integrasi Situs Web


a. Video
Berikut video mengenai Integrasi Situs Web klik disini

b. Lampiran
Sebelum menjelaskan cara menambahkan Rasa ke situs web, mungkin masuk akal
untuk membicarakan arsitektur Rasa secara umum. Anda mungkin ingat dari
video sebelumnya bahwa penerapan Rasa yang menggunakan tindakan kustom
terdiri dari dua layanan terpisah. Satu layanan menangani tindakan kustom dan
layanan lainnya menangani alur pembelajaran mesin dan peristiwa percakapan.

Jika kami ingin mendorong ini ke produksi, kami akan membutuhkan lebih
banyak layanan yang terpasang.

Kami membutuhkan Tracker Store yang dapat menyimpan semua percakapan.


Saat Anda bekerja pada mesin lokal, ini mungkin muat di memori, tetapi dalam
produksi Anda mungkin memiliki ribuan pengguna dan kemungkinan akan
menggunakan database untuk ini.

Anda juga membutuhkan Lock Store. Rasa menggunakan mekanisme


penguncian tiket untuk memastikan bahwa pesan masuk untuk ID percakapan
tertentu diproses dalam urutan yang benar, dan mengunci percakapan saat pesan
diproses secara aktif. Ini berarti beberapa server Rasa dapat dijalankan secara
paralel sebagai layanan yang direplikasi, dan klien tidak perlu mengalamatkan
node yang sama saat mengirim pesan untuk ID percakapan yang diberikan.

Anda juga memerlukan semacam Filesystem tempat untuk menyimpan data


pelatihan Anda serta model terlatih Anda. Ini bisa berupa disk pada mesin lokal
Anda tetapi juga dapat merujuk ke ruang disk pada sumber daya cloud.

Ada satu hal tambahan yang hilang dalam diagram ini, dan begitulah cara
pengguna kami terhubung ke asisten kami.

Selama ini kami hanya berinteraksi dengan Rasa melalui terminal. Saat Anda
meluncurkan, rasa shell Anda akan memulai server kecil di mesin Anda dan
terminal Anda akan berkomunikasi dengan Rasa melalui HTTP di bawah tenda.
Mampu berkomunikasi melalui HTTP sangat bagus karena itu berarti kita juga
dapat menghubungkan situs web ke sana, tetapi ada baiknya untuk memahami
bahwa ini hanyalah salah satu dari banyak saluran yang didukung Rasa.

Anda dapat mengonfigurasi credientials.ymlfile Anda untuk juga mengizinkan


saluran input/output lainnya. Dengan begitu, Anda dapat mengonfigurasi Rasa
untuk berkomunikasi melalui slack, facebook messenger, whatsapp, atau saluran
lain yang didukung.
Dalam tutorial ini kita akan mengimplementasikan demo untuk Rasa di sebuah
situs web, tetapi ada baiknya untuk memahami arsitekturnya dan bagaimana Anda
bisa mengimplementasikan Rasa untuk saluran lain juga.

c. Kode
Anda juga dapat menyalin proyek lengkap dari Github jika anda mau.

Mari kita terapkan front end yang sangat mendasar dengan Rasa. Kami akan
menggunakan proyek chatroom.js untuk ini. Berikut index.html file yang akan
kita gunakan.
Kami dapat meluncurkan situs statis dengan menjalankan dua perintah di dua
terminal.

Ketika Anda sekarang pergi ke http://localhost:8000Anda akan melihat antarmuka


pengguna yang dapat berkomunikasi dengan Rasa untuk Anda. Ingatlah bahwa
jika Anda menjalankan tindakan khusus, Anda juga perlu menjalankan layanan
tambahan untuk itu.

d. Debug
Jika anda sedang membangun sebuah situs dan anda sedang men-debug,
sebaiknya jalankan Rasa Melalui :
Dengan begitu, Anda akan mendapatkan lebih banyak log, yang dapat membantu
Anda melakukan debug.

e. Tautan
• Ikhtisal Arsitektur Rasa

f. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Bisakah Anda menjelaskan untuk apa toko Tracker dan Lock store?

2.14 CDD & Rasa X


a. Video
Berikut video mengenai CDD & Rasa X klik disini

b. Lampiran
Salah satu risiko terbesar dalam pembelajaran mesin adalah kami akhirnya
mengoptimalkan kumpulan data yang tidak mencerminkan minat pengguna kami.
Untuk mencegah fenomena "mengoptimalkan hal yang salah" ini, kami sarankan
untuk mengikuti metodologi pengembangan yang disebut Pengembangan
Berbasis Percakapan.

Pengembangan Berbasis Percakapan (CDD) adalah proses mendengarkan


pengguna Anda dan menggunakan wawasan tersebut untuk meningkatkan asisten
AI Anda. Ini adalah pendekatan praktik terbaik menyeluruh untuk pengembangan
chatbot.

CDD mencakup tindakan berikut:

• Share(Bagikan) asisten Anda dengan pengguna sesegera mungkin


• Review(Tinjau) percakapan secara teratur
• Annotate(Anotasi) pesan dan gunakan sebagai data pelatihan NLU
• Test(Uji) bahwa asisten Anda selalu berperilaku seperti yang Anda
harapkan
• Track(Lacak) saat asisten Anda gagal dan ukur kinerjanya dari waktu ke
waktu
• Fix(Perbaiki) cara asisten Anda menangani percakapan yang gagal

CDD bukanlah proses linier; Anda akan berputar kembali ke tindakan yang sama
berulang-ulang saat Anda mengembangkan dan meningkatkan bot Anda.

c. Rasa X
Untuk mempermudah memulai Pengembangan Berbasis Percakapan, kami
sarankan untuk bekerja dengan Rasa X. Ini adalah alat sumber tertutup, tetapi
gratis, yang bekerja di atas Sumber Terbuka Rasa. Salah satu manfaat utama
adalah dapat diterapkan di mana saja, sehingga data pelatihan Anda tidak keluar
dari organisasi Anda.
d. Arsitektur Rasa X
Sebelum berbicara tentang bagaimana Anda dapat menggunakan Rasa X, ada
baiknya untuk memahami cara berkomunikasi dengan Rasa. Jadi mari kita mulai
dengan diagram yang disederhanakan.

Anda akan melihat bahwa diagram sebelumnya tidak menunjukkan layanan


Tindakan Kustom yang terhubung ke layanan Sumber Terbuka Rasa di sebelah
kiri. Kami telah menghilangkan ini, serta beberapa layanan lainnya, untuk
menjaga agar diagram tetap sederhana. Di sebelah kiri Anda melihat Rasa X
berjalan sebagai layanan. Ini berjalan di atas Rasa Open Source dan
berkomunikasi melalui HTTP. Rasa Open Source memancarkan event ke Rasa X
sehingga Rasa X dapat menyimpan informasi.
Untuk memastikan bahwa komunikasi dengan dunia luar diarahkan dengan tepat,
kami biasanya menambahkan layanan NginX dalam produksi. Dengan begitu kita
akan memiliki keseimbangan beban yang dapat mengarahkan lalu lintas ke Rasa
X atau ke Rasa Open Source melalui saluran input/output.

Untuk mempermudah, kami telah menghilangkan banyak database yang


terhubung ke Rasa X, tetapi kami ingin menyoroti satu koneksi yang Rasa X
dapat buat atas nama Anda: penyedia git Anda!
Rasa X dapat terhubung ke Github (atau Gitlab/Bitbucket dalam hal ini) sehingga
proyek Anda tetap sinkron dengan produksi. Ini juga berarti bahwa Anda dapat
dengan mudah menerapkan dari Github. Anda dapat mengonfigurasi penyedia Git
Anda untuk memperbarui model di Rasa X setiap kali Anda mendorong ke
cabang utama repositori Anda. Ini bagus, karena memberi Anda banyak pilihan
untuk mengkonfigurasi CI/CD juga!

e. Instalasi
ika Anda ingin menjalankan Rasa X secara lokal, Anda harus menginstalnya
terlebih dahulu. Anda dapat melakukan ini dengan pip tetapi Anda harus
memastikan bahwa Anda mengatur url indeks untuk menunjuk ke server Rasa.

Opsional, Anda juga dapat menginstal ngrok jika Anda ingin berbagi asisten lokal
Anda dengan pengguna di internet. Jika Anda lebih menyukai panduan langkah
demi langkah tentang cara menginstal Rasa X, Anda mungkin menghargai video
instalasi ini yang menjelaskan langkah-langkah per sistem operasi.

• Instalasi Rasa X Windows


• Instalasi Rasa X Ubuntu
• Intalasi Rasa X MacOS

f. Kode
Setelah terinstal, anda dapat menjalankan Rasa X di terminal melalui :

Jika Anda ingin membagikan asisten Anda melalui ngrok. Anda harus terlebih
dahulu membagikan asisten dari menu. Ini akan memberi Anda URL yang dapat
Anda bagikan yang akan terlihat seperti:
Anda menggunakan ngrok di terminal kedua dan mengarahkannya ke port yang
benar melalui:

Anda sekarang dapat membagikan asisten Anda secara online dengan


menerjemahkan url localhost Anda ke url buruh pelabuhan Anda.

g. Tautan
• Dokumentasi Rasa X
• Panduan Rasa X & ngrok
• Panduan Koneksi Rasa X & Git

h. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Apa 6 tindakan utama yang akan Anda ikuti saat berlatih CDD?
• Apakah Rasa X merupakan produk yang mengandung Rasa Open Source
atau bekerja di atas Rasa Open Source?
2.15 Rasa Selalu Meningkat
a. Video
Berikut video mengenai peningkatan dari framework Rasa klik disini

b. Lampiran
Mari kita lakukan eksperimen pikiran. Mari kita pertimbangkan sebuah ucapan
dan mari kita coba mencari tahu apa maksud yang terkait :

• Kata 1: “yes”
Seperti “affirm” mungkin ada niat baik untuk yang satu ini.

• Kata 2: “no”
Yang satu ini juga cukup mudah. Rasanya "deny" mungkin ada niat baik
untuk yang satu ini.

Kata 3: “Good afternoon!”


Yang satu ini sangat rumit. Jika pengguna mengatakan "selamat siang!" di
akhir percakapan itu mungkin berarti "selamat tinggal". Tetapi jika
dikatakan di awal percakapan, itu mungkin berarti "halo". Ini cukup teka-
teki. Kita tidak hanya memiliki ucapan-ucapan yang dapat memiliki dua
maksud, dua maksud ini juga membawa arti yang berlawanan.

c. Peningkatan Rasa
Anda dapat membuat asisten menggunakan maksud, tetapi maksud pada dasarnya
terbatas. Bahasa asli jauh lebih fleksibel dan ekspresif daripada yang diizinkan
oleh maksud, jadi di Rasa kami meneliti metode untuk memungkinkan
percakapan tanpa maksud.

Ini adalah contoh yang baik untuk ditunjukkan, karena itu adalah contoh
bagaimana Rasa selalu berkembang. Rasa memiliki tim riset yang besar dan aktif
yang terus meningkatkan cara Anda membangun asisten. Kami baru-baru ini
merilis fitur ujung ke ujung tanpa maksud dari Rasa. Sebelum menyelami cara
kerjanya, ada baiknya menjelaskan keseluruhan visi kami tentang bagaimana AI
Percakapan akan berkembang dalam beberapa tahun ke depan.

d. Lima tingkat Percakapan AI


Ini membantu untuk memikirkan kemampuan asisten virtual dalam hal "level".
Melihat ke masa lalu dan masa depan, kami pikir ada lima tonggak, yang kami
sebut level, yang layak untuk diamati. Saat kami maju melalui lima level, asisten
menjadi lebih akomodatif terhadap cara berpikir manusia, dan tidak merasa
seperti titik akhir API.

Kami akan menggunakan contoh asisten hipotek untuk menjelaskan pencapaian


yang diwakili oleh setiap level.

e. Level 1: Asisten Baris Perintah


Pada level 1, asisten masih dapat membantu, tetapi mereka menempatkan semua
beban kognitif pada pengguna akhir. Pengguna akhir perlu tahu persis bidang
input mana yang harus disediakan dan juga perlu menyediakannya dengan car
yang diharapkan asisten. Banyak aplikasi baris perintah yang sesuai dengan
kategori tersebut.
Ini tidak sempurna, tetapi masih jauh lebih nyaman daripada melakukan
perhitungan dengan tangan.

f. Level 2: Asistesn Berbaris Intent


Pada level dua, kami mulai melihat lebih sedikit beban kognitif pada pengguna
akhir. Asisten dapat mencoba mendeteksi apa yang diminati pengguna dengan
mendeteksi niat mereka, tetapi mereka dapat mogok dengan keras saat pengguna
menyimpang dari "jalur bahagia" yang telah ditentukan sebelumnya. Jika
pengguna mengatakan sesuatu yang tidak menyerupai maksud, asisten akan
mengalami kesulitan.
g. Level 3: Asisten Kontekstual
Di level tiga, kita mulai melihat asisten yang bisa menangani konteks. Pengguna
masih harus tahu persis apa tujuan mereka tetapi mereka tidak lagi harus tahu
bagaimana menggunakan asisten untuk menghindari pemutusan percakapan. Ini
bagus, karena itu berarti pengguna dapat meminta bantuan tanpa memutus arus.

h. Level 4: Asisten Konsultan


Pada level empat, kita mulai melihat asisten yang mampu beradaptasi berdasarkan
informasi yang diberikan pengguna. Meminta hipotek berbeda jika Anda
melakukan perampingan karena anak-anak telah kuliah daripada jika Anda baru
saja mendapatkan anak dan perlu meningkatkan. Adalah tugas asisten untuk
mencari tahu bagaimana mereka bisa membantu, jadi mereka harus bisa mencari
tahu bagaimana memberi pengguna apa yang mereka butuhkan.
i. Level 5: Asisten Adaptif
Di level lima, kami mulai melihat asisten yang bisa beradaptasi dengan sangat
cepat. Asisten perlu mendeteksi jika ada kemampuan yang hilang dan akan
membutuhkan sedikit usaha dari desainer percakapan untuk menambahkan fitur
baru ke asisten.

j. Menaikan Tangga
Di setiap level, kami mengurangi beban pengguna akhir, serta perancang
percakapan, untuk menerjemahkan apa yang mereka inginkan ke dalam bahasa
asisten percakapan. Di situlah nilai AI percakapan.

k. Pembelajaran Akhir
Saat ini, kami percaya bahwa mungkin untuk membuat asisten level tiga dengan
Rasa. Mulai Rasa 2.2, kami telah merilis fitur pembelajaran "end-to-end" yang
memungkinkan Anda melatih ucapan yang tidak termasuk dalam maksud.
l. Kode
Sekarang kami akan menjelaskan fitur end-to-end yang kami jelaskan di video.
Anda dapat mengikuti, tetapi Anda juga dapat membandingkan proyek standar
dengan proyek ujung ke ujung di Github.

Jika Anda ingin asisten dapat menangani ucapan tanpa maksud, Anda terutama
perlu menambahkan ucapan ke stories.yml file Anda.
Dalam contoh ini kami memiliki cerita dari asisten yang menanyakan pengguna
apakah mereka tertarik untuk membeli pizza. Ketika pengguna mengatakan
bahwa "I already had that yesterday." kami dapat menafsirkannya sebagai
"deny" maksud dalam konteks percakapan, tetapi itu akan menjadi contoh yang
sangat aneh tanpa konteks. Itulah mengapa contoh-contoh ini adalah contoh yang
bagus untuk pembelajaran ujung ke ujung.

m. Masa Depan
Fitur pembelajaran end-to-end hanyalah satu, dari banyak, peningkatan Rasa.
Kami membutuhkan banyak peningkatan bertahap untuk membangun
infrastruktur yang diperlukan guna membangun asisten level lima, tetapi kami
juga perlu memungkinkan setiap pengembang untuk mendorong apa yang
mungkin dilakukan dengan AI percakapan. Bukan hanya perusahaan teknologi
besar.

Kami tidak akan tahu peningkatan apa yang akan kami lihat selama beberapa
tahun ke depan, tetapi kami memiliki strategi.

n. Sumber Terbuka
Bagian pertama dari strategi kami adalah open source. Kode sumber terbuka
membuat kemajuan bidang jauh lebih cepat daripada menyimpannya di balik
jeruji. Membangun asisten level lima itu sulit, dan sepertinya kami di Rasa tidak
memiliki semua jawabannya. Pengembang secara teratur meretas berbagai hal ke
dalam kerangka sumber terbuka kami untuk tujuan mereka sendiri dan selama
peretasan inilah penemuan baru dibuat. Siapa pun dapat memperluas infrastruktur
kami dan menerapkan ide baru mereka. Sebagai contoh, ada komunitas kecil
pengembang di Cina yang membuat komponen Rasa berfungsi dengan baik untuk
bahasa Cina, tetapi ada banyak proyek sampingan yang menawarkan komponen
NLU untuk bahasa Non-Inggris .
Manfaat lain dari ekosistem open source adalah Rasa dapat terhubung ke alat
yang ada juga. Rasa secara native mendukung spaCy dan hugface dan setiap
peningkatan pada alat ini juga akan menyebabkan peningkatan pada ekosistem
Rasa.

o. Riset
Bagian kedua dari strategi kami adalah bahwa kami banyak berinvestasi dalam
penelitian. Kami memiliki tim peneliti yang besar dan pekerjaan mereka selalu
berakhir di basis kode Rasa. Rasa berkontribusi dalam dua cara: kami melakukan
penelitian kami sendiri tentang pendekatan yang kami yakini akan membawa
kami ke tingkat berikutnya, dan kami mencari terobosan yang paling berarti dan
menemukan cara untuk membuat komunitas kami mendapat manfaat darinya.
Banyak dari versi pertama proyek penelitian ini dilakukan di depan umum
sehingga komunitas kami dapat berkolaborasi dan memberi kami umpan balik.

p. Komunitas
Ini membawa kita ke bagian ketiga dari strategi kita: komunitas kita. Sebagai
sebuah perusahaan, kami tidak akan menghasilkan setiap ide yang memajukan
tumpukan teknologi. Kami berinvestasi dalam komunitas pengembang global
yang ramah yang bertukar ide. Kami secara aktif berinvestasi dalam pendidikan
pengembang kami, tetapi kami juga menyelenggarakan forum yang secara aktif
dikelola oleh semua orang di perusahaan. Ini juga merupakan tempat di mana
banyak teknik dan alat Non-Inggris dibahas.

Pembelajaran Mesin bukan bidang khusus lagi dan menjadi bagian dari rekayasa
perangkat lunak standar. Jadi kami perlu memastikan bahwa tumpukan teknologi
kami dapat dimengerti oleh pengembang. Itu sebabnya kami juga banyak
berinvestasi dalam materi pendidikan. Kami menawarkan banyak kursus gratis di
pusat pembelajaran kami, tetapi Anda juga dapat menemukan banyak sumber
pendidikan di saluran Youtube kami.
• Rasa Tutorial Youtube Playlist
• NLP untuk Daftar Putar Pengembang
• Papan Tulis Algoritma

q. Tautan
• Posting blog ujung ke ujung
• Lima Tingkat Blogpost AI Percakapan

3. Certification Study Guide


3.1 Panduan Belajar
a. Sertifikasi Pengembang Rasa
Ujian Sertifikasi Pengembang Rasa dirancang untuk memberikan kredensial yang
menunjukkan bahwa Anda adalah pengembang Rasa yang memiliki pemahaman
tentang kerangka Rasa dan praktik terbaik dalam pengembangan chatbot. Anda
dapat mengambilnya secara online secara gratis di sini .

Anda dapat memiliki dua upaya untuk lulus tes dan hingga satu jam untuk setiap
upaya. Jika Anda terganggu, Anda dapat menyimpan pekerjaan Anda dan pergi
dan itu akan menjeda pengatur waktu.

Jika Anda lulus dengan akurasi minimal 85%, sertifikat Anda akan dibuat dan
dapat langsung diunduh. Setelah lulus ujian, Anda dapat mengunduh sertifikat
untuk dibagikan atau langsung dicetak.
Anda dapat memiliki dua upaya untuk lulus tes dan hingga satu jam untuk setiap
upaya. Jika Anda terganggu, Anda dapat menyimpan pekerjaan Anda dan pergi
dan itu akan menjeda pengatur waktu.

Jika Anda lulus dengan akurasi minimal 85%, sertifikat Anda akan dibuat dan
dapat langsung diunduh. Setelah lulus ujian, Anda dapat mengunduh sertifikat
untuk dibagikan atau langsung dicetak.
b. Cara Belajar
Cara terbaik untuk belajar untuk ujian sertifikasi adalah dengan membangun
asisten Rasa. Anda juga dapat melihat video Conversational AI dengan Rasa kami
di YouTube atau menggunakan tujuan pembelajaran di bawah ini untuk memandu
pembelajaran Anda sendiri. Anda akan dievaluasi pada masing-masing tujuan
pembelajaran ini selama ujian.

Kamu harus bisa:

• Buat asisten baru


• Tambahkan tanggapan baru
• Tambahkan niat baru
• Tambahkan entitas baru
• Tambahkan slot baru
• Tambahkan cerita baru
• Tambahkan formulir
• Tambahkan FAQ
• Tambahkan cerita ujian
• Tambahkan aturan
• Gunakan entitas dan maksud dengan benar

Anda harus tahu:

• Perintah antarmuka baris perintah (CLI) yang paling umum digunakan


• File apa yang membentuk asisten Rasa dan informasi apa yang terkandung
di masing-masing
• Apa itu Rasa X?
• Apa itu CDD dan mengapa itu penting
• Perbedaan antara slot dan entitas
• Bagaimana dan mengapa menguji asisten Anda
• Bagaimana menginterpretasikan evaluasi model
Apa artinya percaya diri dan untuk apa itu digunakan

4. Bias and Embeddings


4.1 Apa yang anda akan pelajari
a. Bias dalam Penyematan Kata
Penyematan kata adalah metode modern untuk melatih model bahasa sebelumnya,
tetapi berisiko menambahkan bias ke alur pembelajaran mesin. Dalam rangkaian
pelajaran ini, kami ingin menjelaskan bagaimana Anda dapat mengukur bias
dalam penyisipan kata, kita akan membahas teknik mitigasi bias, tetapi kami juga
akan menjelaskan mengapa masalah bias dalam penyisipan kata kemungkinan
akan tetap ada.

b. Prasayarat

Dalam rangkaian video ini, kami akan menggunakan pustaka whatlies untuk
membantu menjelaskan properti penyisipan kata. Kami berasumsi bahwa Anda
sudah agak familiar dengan word embeddings sebelum memulai kursus ini.

4.2 Mengukur Bias


Ini adalah video kedua tentang mekanisme perhatian. Di video sebelumnya kami
memperkenalkan perhatian diri dan di video ini kami akan memperluas ide dengan
memperkenalkan keys, querry, dan value.

a. Video
Berikut video mengenai mengukur bia klik disini

b. Kode

Kami akan mulai dengan mengimpor backend bahasa yang berbeda. Perhatikan
bahwa Anda mungkin perlu mengunduh embeddings terlebih dahulu.
Anda dapat menghitung kesamaan antara "arah penyematan" melalui:

Selanjutnya, kita akan membuat grafik dengan kata berpasangan. Kami menggunakan
ini, tetapi jangan ragu untuk menggunakan yang lain.
Grafik korelasi sekarang dapat dibuat melalui.

c. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Kami mulai mengukur bias dalam video ini. Apakah ada cara lain untuk
mengukur bias?
• Kami mulai mengukur bias dalam hal profesi dan bias pria/wanita.
Bisakah Anda menemukan kapak lain yang mungkin ingin kami
perhatikan juga?

4.3 Mengurangi Bias


Dalam video ini kita akan mencoba melihat apakah kita dapat mengurangi bias dalam
penyisipan kata dengan menggunakan trik aljabar linier.
a. Video
Berikut video tentang mengurangi bias klik disini

b. Kode
Ini kode dari video sebelumnya.
Kami sekarang akan menghasilkan grafik yang sama tetapi sekarang dengan
proyeksi pada arah "he-she".
c. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Kita akan melihat di video selanjutnya bahwa trik proyek ini memiliki
beberapa kekurangan. Bisakah Anda memprediksi di mana
kekurangannya?
• Jika Anda ingin melakukan latihan pemrograman; coba ulangi latihan
tetapi dengan jenis bias yang berbeda.

4.4 Lipstick on a Pig


Sayangnya, ada kelemahan besar dalam trik proyeksi linier.
a. Video
Berikut video mengenai debias klik disini
b. Kode
Kami akan mengulangi langkah-langkah dalam panduan ini . Anda harus
mengunduh dua daftar kata yang ditemukan di sini terlebih dahulu.

Kami sekarang memiliki embeddingset debiased emb_debiasyang dapat kami


gunakan dalam pipeline scikit-learn.
c. Metode I: Penyematan Bias, Model Bias

Untuk menjalankan model standar ini tanpa debiasing, Anda dapat menjalankan:

Ini memberi kita hasil berikut.

d. Metode II: Penyematan Tanpa Bias, Model Bias


Jika sekarang kita menerapkan debiasing pada vektor, maka model lama mungkin
tidak lagi dapat memprediksi jenis kelaminnya.

Ini memberi kita hasil berikut.

e. Metode III: Penyematan Tanpa Bias, Model Tanpa Bias


Kita juga dapat mencoba membuat model yang dilatih dan diterapkan pada vektor
yang tidak bias.

Ini memberi kita hasil berikut.

f. Kesimpulan
Jarak kosinus tampaknya menunjukkan bahwa kami dapat menghapus "arah"
gender dari embeddings kami dengan menggunakan proyeksi linier sebagai teknik
debiasing. Namun, jika kami menggunakan penyematan yang tidak bias untuk
memprediksi jenis kelamin, tampaknya kami masih menyimpan banyak kekuatan
prediksi.

Itu sebabnya kami tidak bisa mengatakan bahwa teknik penyangkalan ini sudah
cukup! Ada banyak alasan untuk tetap berhati-hati dan kritis saat menerapkan
penyematan kata dalam praktik.

g. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Bisakah Anda memikirkan alasan mengapa trik proyeksi kami tampaknya
tidak berfungsi saat kami melihat efek dalam kesamaan kosinus?

4.5 Matematika Proyeksi


a. Video
Berikut video menegenai matematika proyeksi klik disini

b. Kode
Meskipun video ini sebagian besar merupakan eksplorasi visual, kami telah
menambahkan kode python untuk menghasilkan grafik 3d yang bagus.

Sekarang kita dapat menggunakan whatliesuntuk membuat proyeksi.


4.6 Analogi Kata
a. Video
Berikut video menegenai analogi kata klik disini

b. Kode
Mari kita gunakan whatlies untuk mengeksplorasi analogi-analogi ini.

Mirip dengan “king”

Kita bisa mulai dengan mengambil embedding yang paling mirip berdasarkan
jarak cosinus.

Akan memberikan hasil seperti berikut.

Mirip dengan “king-man + woman”

kami juga dapat memperluas querry dengan menambahkan operasi


Akan memberikan hasil seperti berikut.

Mirip dengan “king-slow + fast”

Akan memberikan hasil seperti berikut.

c. Jelajahi
Masih banyak lagi contoh-contoh ini yang perlu ditelusuri. Namun secara umum,
aman untuk mengatakan bahwa analogi kata tidak berlaku. Jika Anda tertarik
untuk menjelajahi lebih banyak, Anda mungkin menghargai fungsi pembantu ini.
d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Apa analogi lain yang bisa Anda temukan selain king - man + woman?
Dapatkah Anda memvariasikan jika ini berlaku?
• Jika Anda suka melakukan latihan pengkodean kecil; dapatkah Anda
mengonfirmasi bahwa analogi tidak berlaku untuk model jenis BERT?
5. Rasa Forms
5.1 Apa yang akan anda pelajari?
a. Bentuk Rasa
Salah satu pola percakapan yang paling umum adalah mengumpulkan beberapa
informasi dari pengguna untuk melakukan sesuatu. Misalnya, jika Anda ingin
memesan pizza atas nama pengguna, Anda harus mengetahui ukuran pizza yang
diinginkan pengguna serta toppingnya.

Proses ini juga disebut pengisian slot. Kami menyimpan informasi dalam slot
berumur panjang yang berfungsi sebagai memori asisten Anda. Anda dapat
mengumpulkan slot dengan banyak cara di Rasa tetapi formulir adalah metode
yang disarankan untuk mengumpulkan informasi ini.

b. Apa yang akan kita pelajari dalam kursus ini?


Kami akan mulai dengan memperkenalkan tindakan dan slot kustom. Setelah
topik ini ditinjau, kami akan melanjutkan dengan menulis formulir pertama kami.
Setelah selesai, kami akan mulai membuat formulir kami sendiri dari awal dan
kami akan menunjukkan bagaimana Anda dapat menyesuaikannya.

c. Prasayrat
Sebelum Anda memulai kursus ini, Anda harus memastikan bahwa Rasa sudah
terinstal terlebih dahulu.
• Instalasi Windows
• Instalasi MacOS
• Instalasi Ubuntu

5.2 Pengantar Tindakan Kustom


a. Tindakan Kustom
Dalam pelajaran ini kami akan menunjukkan cara membuat tindakan kustom
dasar di Rasa.
b. Video
Berikut video mengenai Tindakan kustom klik disini

c. Kode
Dalam video ini kami mendemonstrasikan cara menulis tindakan kustom di Rasa.
Dalam video kami menunjukkan tindakan khusus yang akan mengambil waktu
saat ini. Berikut kode dari actions/actions.py file.

Perhatikan bahwa sangat penting untuk mendapatkan name hak, Anda dapat
melihatnya disorot di codeblock. Jika ini tidak sesuai dengan domain.yml file
maka tindakan tidak akan ditemukan.

Jika Anda ingin menjalankan tindakan kustom ini, Anda harus memastikan bahwa
endpoints.yml file Anda dikonfigurasi dengan benar.

Dengan asumsi bahwa Anda juga mendapatkan file nlu/stories/domain, Anda


sekarang siap untuk berinteraksi dengan tindakan kustom Anda. Ingatlah untuk
menjalankan server tindakan terlebih dahulu.
Dengan server tindakan yang berjalan, Anda harus dapat berinteraksi dengan
tindakan khusus Anda dari shell rasa.

d. Tautan

• repo GitHub
• Rasa Open Source Documents
• Rasa SDK Docs

e. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Ketika Anda baru saja menulis tindakan kustom di actions/actions.py file


Anda , apa langkah selanjutnya yang harus Anda lakukan sebelum Anda
dapat menggunakannya di rasa shell?
• Apa yang tracker memungkinkan Anda lakukan dalam run metode
tindakan kustom?
• Apa yang dispatcher memungkinkan Anda lakukan dalam run metode
tindakan kustom?

5.3 Memori dan Slot


a. Pengantar Slot
Dalam pelajaran ini kami akan menunjukkan cara membuat tindakan kustom
dasar di Rasa.
b. Video
Berikut video mengenai memori dan slot kilik disini

c. Kode
Jika Anda ingin menggunakan slot di Rasa, Anda harus terlebih dahulu membuat
domain.yml file Anda diketahui. Inilah yang kami tambahkan di video kami.

Perhatikan bahwa jika Anda ingin menjalankan tindakan kustom ini, Anda harus
memastikan bahwa endpoints.ymlfile Anda dikonfigurasi dengan benar.

Selanjutnya, kami menggunakan tindakan khusus untuk berinteraksi dengan slot


ini. Kami telah mendefinisikan ini di actions/actions.pyfile kami.
Dengan asumsi server tindakan sedang berjalan dan Anda telah memperbarui file
nlu/stories/domain Anda, Anda seharusnya dapat berinteraksi dengan tindakan
khusus Anda dari shell rasa sekarang.

d. Interkatif
Jika Anda berlari, rasa interactive Anda akan dapat melihat status slot saat
percakapan sedang berlangsung. Ketika Anda memutuskan untuk menyimpan
hasil, Anda mungkin melihat bagian baru di stories.yml file Anda seperti di
bawah ini.

e. Tautan
• repo GitHub
• Rasa Open Source Documents
f. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Dalam file apa Anda perlu menentukan slot Anda?


• Apa nama event di custom action yang bisa menyetel slot?

5.4 Bentukan Rasa


a. Pengantar Formulir
Di segmen ini kami akan mengajari Anda cara membuat formulir khusus.

b. Video
Berikut video mengenai pengenalan bentuk rasa klik disini

c. Kode
Ada beberapa perubahan penting yang kami buat pada domain.yml file kami.
Anda dapat melihatnya disorot di blok kode di bawah ini.
d. Defenisi Formulir
Pertama, file domain memiliki bentuk yang ditentukan. Ini didefinisikan di bagian
ini:
Kami menyatakan bahwa formulir kami memiliki dua slot yang ingin kami isi;
first_name dan last_name.

e. Definisi Slot

Kedua, file domain memiliki slot yang ditentukan. Perhatikan bahwa nama slot ini
sesuai dengan nama dalam definisi formulir kami.

Perhatikan bahwa kedua slot ini memiliki tipe yang terpasang. Dalam hal ini kami
menggunakan string tetapi Rasa memungkinkan banyak jenis slot yang berbeda.

f. Definisi Ucapan
Akhirnya, kami juga menambahkan beberapa ucapan dalam domain.ymlfile. Ini
digunakan dalam cerita kita.
Anda mungkin juga memperhatikan bahwa beberapa ucapan mengikuti konvensi
penamaan tertentu utter_ask_<slotname>. Ucapan-ucapan ini akan diambil oleh
formulir kami untuk meminta nilai slot. Ini dieksplorasi lebih detail di video
berikutnya.

The utter_slots_values ucapan menggunakan nilai Slot untuk menghasilkan


respon. Ini memungkinkan kami untuk mengonfirmasi apa yang telah diberikan
pengguna sebagai nama.

g. Cerita
Dialog dalam video direkam melalui rasa interactive dan itu akan menghasilkan
cerita di stories.yml file kami . Meskipun tidak ditampilkan di video, kami ingin
berbagi cerita di sini.

h. Tautan
• repo GitHub
• Rasa Open Source Documents
i. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Bisakah Anda menggunakan slot dalam tanggapan yang ditentukan dalam


file domain?
• Bagaimana Anda bisa menunjukkan bahwa slot telah diatur dalam
stories.yml file?
• Saat slot muncul B, apakah slot memengaruhi prediksi tindakan
selanjutnya? Jika demikian, apakah mereka melakukannya sepanjang
waktu?

5.5 Meminta Data


a. Querry Kustom
Dalam pelajaran ini kami akan menunjukkan kepada Anda bagaimana
menyesuaikan cara kami meminta informasi dari pengguna.

b. Video
Berikut video menegenai querry kustom klik disini

c. Kode
Mari kita lihat domain.yml file kita lagi. Secara khusus, mari kita perbesar dua
tanggapan.

Ucapan yang meminta nama mengikuti utter_ask_<slotname> konvensi.


Beginilah cara Rasa tahu cara meminta nilai slot. Kami dapat mengambil langkah
lebih jauh dengan menggunakan tindakan kustom alih-alih respons statis.
d. Tindakan kustom
Konvensi penamaan untuk tindakan kustom sedikit berbeda. Alih-alih
utter_ask_<slotname> menjadi action_ask_<slot_name> atau
action_ask_<form_name>_<slot_name> jika kita ingin menggunakan bentuk
tertentu.

Jadi mari kita hapus standar utter_ask_last_name dari file domain.yml kita dan
ganti dengan kueri yang ditulis sebagai tindakan kustom. Kode tindakan kustom
dari video tercantum di bawah ini.

Untuk menjalankan tindakan kustom ini, kita perlu memperbarui domain.yml file
kita sehingga menyadari tindakan kustom baru ini.

Setelah selesai, Anda dapat melatih kembali model Rasa baru dan mengonfirmasi
bahwa formulir tersebut sekarang menggunakan tindakan kustom untuk
mengkueri pengguna. Catatan untuk menjalankan ini, Anda harus mengonfigurasi
endpoints.yml file Anda terlebih dahulu.
Setelah model baru dilatih, Anda dapat memulai layanan tindakan kustom yang
dapat diajak bicara oleh Rasa.

e. Tautan
• repo GitHub
• Rasa Open Source Documents

f. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Apa konvensi penamaan untuk tindakan khusus yang meminta slot?


• Katakanlah Anda ingin menggunakan nama depan untuk meminta nama
belakang. Apakah Anda perlu menulis tindakan khusus untuk kasus
penggunaan ini?

5.6 Validasi Data


a. Validasi Formulir
Pengguna terkadang akan memberi kami informasi yang tidak valid. Itu sebabnya
Rasa memungkinkan Anda untuk memvalidasi data sebelum disimpan dalam slot.

b. Video
Berikut video mengenai Validasi Data klik disini

c. Kode
Tindakan kustom yang menangani validasi ditunjukan di bawah ini.
The ValidateNameForm kelas mengimplementasikan metode validasi untuk slot
di name_form. Perhatikan konvensi penamaan yang digunakan di kelas.

• The name-metode mengembalikan nama validator dan menggunakan

validate_<formname> Konvensi penamaan.


• Ada dua metode yang memeriksa nilai slot dan mereka juga mematuhi

untuk konvensi penamaan validate_<slotname>. Metode ini hanya akan


memeriksa nama slot untuk formulir - name_form karena metode ini adalah
bagian dari file FormValidationAction.

Jika Anda ingin membatalkan slot, Anda harus mengembalikan kamus yang
menetapkan nama slot ke None. Biasanya merupakan ide yang baik untuk
melampirkan pesan pengguna saat ini terjadi sehingga Anda dapat memberi tahu
pengguna bahwa ada yang tidak beres.

d. Protip
Anda mungkin telah memperhatikan bahwa kode validator kami berisi pernyataan
cetak. Ini ditambahkan untuk membantu kami men-debug kode kami. Dalam
produksi, Anda mungkin ingin menghapus pernyataan cetak tetapi sangat
disarankan ketika Anda baru memulai.

e. Tautan
• repo GitHub
• Rasa Open Source Documents

f. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Apa konvensi penamaan yang digunakan untuk memberi nama metode


yang akan dimasukkan ke dalam FormValidationAction?
• Apa yang perlu Anda kembalikan jika Anda ingin membatalkan slot?
• Bisakah Anda membatalkan beberapa slot sekaligus di validator?

5.7 Cntoh Formulir: Nama


a. Menanyakan Nama
Dalam pelajaran ini kita akan memperluas pemahaman kita tentang bentuk
dengan menulis yang sangat disesuaikan. Kami akan membuat formulir dinamis
yang juga akan menghasilkan tombol atas nama kami.

b. Video
Berikut video tentang menanyakan nama klik disini

c. Instal
Jika Anda belum menginstalnya, pastikan Anda menginstal Rasa X terlebih
dahulu. Anda dapat menginstalnya secara lokal melalui pip.

Jika Anda menghargai panduan lebih lanjut, kami juga mendapatkan video
instalasi untuk Rasa X.
• Instalasi Windows
• Instalasi MacOS
• Instalasi Ubuntu

d. Kode
Sebagian besar keajaiban demo ini ditangani dalam actions.py file. Terutama
kami menggunakan required_slots metode untuk menunjukkan slot mana yang
diperlukan pada titik tertentu dalam formulir.
Idenya di sini adalah jika kita melihat nama yang tidak muncul dalam daftar nama
yang telah ditentukan sebelumnya, kita akan menambahkan slot lain yang
diperlukan. Slot yang diperlukan ini akan memungkinkan kami untuk memeriksa
ulang apakah pengguna mengeja namanya dengan benar. Cara kami meminta slot
ini ditentukan dalam domain.yml file kami.

Payload tombol membawa maksud. Tombol dapat memicu affirmatau deny


maksud. Intent ini kemudian dapat diekstraksi oleh kode khusus kami dan diambil
oleh validator kami.
Inilah trik hebatnya: dengan menambahkan nilai slot secara dinamis, kami dapat
membatalkan first_name slot jika pengguna menunjukkan bahwa mereka ingin
melihat koreksi.

e. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Anda dapat membuat tombol dengan mendefinisikannya sebagai respons


dalam domain.yml file. Bagaimana Anda bisa mengonfigurasi respons
untuk memicu maksud?
• Ketika tombol dibuat untuk pengguna, apakah itu berarti mereka tidak
dapat berbicara dengan asisten lagi?
• Apa artinya ketika validator formulir memiliki metode yang disebut
extract_<slot_name>? Untuk apa metode-metode ini?

6. Transformers
6.1 Apa yang akan anda pelajari?
a. Transformer
Transformers adalah keluarga arsitektur pembelajaran mesin yang sangat menarik
dan Anda dapat menemukannya di banyak algoritme yang disediakan Rasa.
Rangkaian video ini menjelaskan secara langsung cara kerja trafo modern, dan
alasannya.

b. Prasyarat
Kami beramsusi bahwa anda sudah mempelajari jaringan syaraf. Kursus ini juga
akan menggunakan sedikit matematika
6.2 Perhatian Diri
a. Perhatian Diri
Ini adalah video pertama tentang mekanisme perhatian. Kami akan mulai dengan
perhatian pada diri sendiri dan mencoba menjelaskan mengapa itu hanya taktik
pembobotan ulang.

b. Video
Berikut video mengenai perhatian diri klik disini

c. Tautan
Saat membuat video ini, kami menemukan bahwa sumber-sumber ini sangat
berguna untuk dimiliki. Bukan hanya karena mereka membantu pemahaman
konseptual tetapi juga karena beberapa dari mereka menawarkan contoh kode.
• Transformer dari Awal
• Transformator Bergambar
• Perhatian Multi-Kepala dari d2l.ai

d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Ketika kita menerapkan perhatian pada token, apakah urutan token


penting?
• Ketika kita melatih sistem perhatian diri pada kalimat yang terdiri dari 5
kata, apakah kita masih dapat menerapkan transformer pada kalimat
dengan 6 kata? Mengapa?
6.3 Kunci, Nilai, dan Queries
a. Kunci, Nilai, dan Queries
Ini adalah video kedua tentang mekanisme perhatian. Di video sebelumnya kami
memperkenalkan perhatian diri dan di video ini kami akan memperluas ide
dengan memperkenalkan kunci, kueri, dan nilai.

b. Video
Berikut video mengenai kunci, nilai, queries klik disini

c. Tautan
Saat membuat video ini, kami menemukan bahwa sumber-sumber ini sangat
berguna untuk dimiliki. Bukan hanya karena mereka membantu pemahaman
konseptual tetapi juga karena beberapa dari mereka menawarkan contoh kode.

• Transformer dari Awal


• Transformator Bergambar
• Perhatian Multi-Kepala dari d2l.ai

d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Bagian mana dari blok perhatian diri yang dapat dilatih ketika kita
memiliki kunci, kueri, dan nilai?
• Jika kita ingin bentuk output berbeda dengan input, bagian mana dari blok
perhatian diri yang harus kita ubah?
6.4 Multi Head Attention
a. Multi Head Attention
Ini adalah video ketiga tentang mekanisme perhatian. Di video sebelumnya kami
memperkenalkan kunci, kueri, dan nilai, dan di video ini kami memperkenalkan
konsep banyak kepala.
b. Video
Berikut video mengenai multi head attention klik disini

c. Tautan
Saat membuat video ini, kami menemukan bahwa sumber-sumber ini sangat
berguna untuk dimiliki. Bukan hanya karena mereka membantu pemahaman
konseptual tetapi juga karena beberapa dari mereka menawarkan contoh kode.

• Transformer dari Awal


• Transformator Bergambar
• Perhatian Multi-Kepala dari d2l.ai

d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Kami berpendapat bahwa menambahkan banyak kepala ke sistem


memungkinkan kami mempelajari lebih banyak pola. Apakah ini akan
berlaku selamanya, atau dapatkah kita mengharapkan pengembalian yang
semakin berkurang ketika kita terus menambahkan lebih banyak perhatian
ke sistem?
• Apakah bentuk output berubah saat kita menambahkan lebih banyak
perhatian?
6.5 Transformer
a. Transformer
Ini adalah video keempat dan terakhir tentang mekanisme perhatian. Di video
sebelumnya kami memperkenalkan kunci, kueri, dan nilai multiheaded dan dalam
video ini kami memperkenalkan bit terakhir yang Anda butuhkan untuk
mendapatkan transformator.

b. Video
Berikut video mengenai transformer klik disini

c. Tautan
Saat membuat video ini, kami menemukan bahwa sumber-sumber ini sangat
berguna untuk dimiliki. Bukan hanya karena mereka membantu pemahaman
konseptual tetapi juga karena beberapa dari mereka menawarkan contoh kode.

• Transformer dari Awal


• Transformator Bergambar
• Perhatian Multi-Kepala dari d2l.ai

d. Latihan

Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji


pengetahuan Anda.

• Apa tujuan pengkodean posisi dalam arsitektur transformator?


• Mengapa transformer lebih mudah dilumpuhkan daripada jaringan saraf?
7. Deployment
7.1 Apa yang akan anda pelajari?
a. Memahami Deployment Rasa
Dalam seri ini kita akan berbicara tentang cara kerja penyebaran Rasa. Kami
terutama akan membahas teknologi yang mendasari di balik penyebaran Rasa dan
bagaimana menggunakannya untuk menyebarkan Rasa.

b. Video
Berikut video mengenai deployment rasa klik disini

c. Memahami Deployment Rasa


Pada titik tertentu Anda mungkin ingin menyebarkan proyek Rasa Anda melalui
Rasa X. Dengan cara ini, Anda akan dapat mengumpulkan data dari pengguna
Anda dan Anda akan memiliki integrasi yang erat dengan Github. Alih-alih
menjalankan server Anda sendiri secara manual, Anda biasanya menggunakan
Rasa X dengan menjalankannya di Kubernetes. Dengan cara ini, penyebaran Rasa
X lebih mudah untuk diukur dan dipelihara.

Tetapi jika Anda tidak terbiasa dengan Kubernetes, ini bisa menjadi tugas yang
menakutkan. Tujuan dari rangkaian video ini adalah untuk mengajari Anda cara
menerapkan Rasa dari bawah ke atas. Kami akan membahas arsitektur Rasa X
tetapi kami juga akan menjelaskan topik yang relevan dengan penerapan Rasa,
seperti docker , helm dan kubernetes.

Kursus ini dirancang sedemikian rupa sehingga jika Anda sudah tahu cara
menjalankan dan membangun asisten Rasa di mesin lokal Anda, Anda akan dapat
memahami cara menyebarkannya ke dunia luar.

d. Intsalasi
Anda dapat menonton video di waktu luang Anda, tetapi jika Anda ingin
mengikuti, Anda perlu menginstal beberapa perangkat lunak untuk kursus ini.
Kami berasumsi bahwa Anda bekerja pada mesin mac atau linux yang dapat
menjalankan docker , helm dan kind pada baris perintah

e. Berjalan di VM
Jika Anda ingin mengikuti dengan menjalankan semuanya di VM Ubuntu,
cuplikan berikut harus menangani semuanya.

7.2 Pendahuluan Docker


a. Wadah Rasa dan Docker
Mari kita bahas bagaimana Anda bisa menggunakan Docker bersama dengan
Rasa.

b. Video
Berikut video mengenai containers klik disini

c. Kode yang Digunakan


Mari kita mulai proyek Rasa baru secara local melalui:

Anda sekarang dapat mejalankan asisten secara local melalui:


Ini akan memungkinkan Anda untuk memanggil model terlatih melalui API web.
Anda dapat mengarahkan lalu lintas ke http://localhost:5000/webhook dan Anda
harus bisa mendapatkan tanggapan. Anda dapat melakukan ini dengan alat seperti
tukang pos atau insomnia tetapi Anda juga dapat menggunakan curl dari baris
perintah.

d. File Docker
Mari kita lihat apakah kita bisa membangun image Docker untuk Rasa. Dengan
begitu, kami mungkin lebih mudah membagikan kode kami untuk penerapan.
Untuk melakukan ini kita harus menulis Dockerfile dulu.
Untuk memastikan bahwa kami tidak menyalin file ke dalam wadah yang tidak
kami perlukan, kami akan menambahkan .dockerignore file.

Dengan cara ini, buruh pelabuhan tidak akan menyalin semua file dalam wadah
menjalankan COPY perintah.

e. Membangun dan Menjalankan


Untuk membangun gambar, kita harus menjalankan perintah berikut:

Perhatikan bahwa kita sedang membangun gambar dengan tag koaning/rasa-


demo. Ini adalah konvensi yang akan kita gunakan untuk mengidentifikasi
gambar nanti.

Setelah image dibuat, kita dapat menjalankan container dengan perintah berikut;

Perintah ini melakukan beberapa hal.

• Ini koaning/rasa-demoadalah referensi ke wadah yang kami buat lebih


awal.
• The -itberarti bendera yang kita ingin menjalankan wadah interaktif.
• The -p 8080:8080berarti bahwa kita ingin dengan port 8080 dari
kontainer ke port 8080 pada host.
Saat penampung berputar, Anda harus dapat berkomunikasi sekali lagi dengan
model Rasa melalui API web.

Perbedaannya sekarang adalah model berjalan di dalam wadah buruh pelabuhan.


Anda dapat membayangkan bahwa kami dapat membagikan wadah ini dan
selama Anda dapat menjalankan docker ... Anda juga dapat menjalankan Rasa!

f. Titik Masuk

Anda dapat melakukan lebih banyak lagi dengan wadah yang kami miliki saat
ini. Misalnya, Anda dapat menjalankan shell rasa melalui entrypoint kami.

Perhatikan bahwa perintah ini setara dengan menjalankan rasa shell dari baris
perintah.

g. Tekan
Anda juga dapat mendorong wadah ke repositori sehingga tersedia untuk orang
lain.

h. Langkah Selanjutnya
Di video berikutnya kita akan menggunakan wadah buruh pelabuhan yang
Rasakan di dockerhub daripada menulis sendiri dari awal.
i. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Apa yang mungkin salah jika Anda tidak memiliki .dockerignorefile?


• Seberapa besar gambar buruh pelabuhan dengan Rasa di dalamnya? Apa
faktor utama yang berkontribusi dalam ukuran?

7.3 Wadah Rasa Premade


a. Video
Berikut video mengenai premade klik disini

b. Konten
Anda dapat membuat container Docker Anda sendiri, tetapi Anda juga dapat
menggunakan container yang telah dibuat sebelumnya oleh orang lain. Secara
khusus, Rasa menghosting banyak container Docker yang sudah dibuat
sebelumnya di dockerhub yang juga dapat Anda jalankan secara lokal.

Wadah dari Rasa didesain berbeda dengan wadah yang kami buat di video
sebelumnya. Di video sebelumnya kami melatih model baru sebagai bagian dari
proses pembangunan. Wadah Rasa berasumsi bahwa Anda sudah memiliki model
terlatih dan Anda hanya ingin menjalankannya di dalam wadah. Itu berarti kita
perlu membuat wadah mengetahui sistem file sehingga dapat menemukan model
yang kita minati.

Inilah perintah yang kami gunakan dalam video untuk menjalankan wadah Rasa.

Anda juga dapat menentukan versi Rasa yang ingin Anda jalankan dan Rasa juga
menawarkan wadah yang dilengkapi dengan dependensi opsional yang diinstal.
Anda dapat menjelajahi semua tag yang tersedia di dockerhub untuk mendapatkan
kesan tentang apa yang tersedia. Perintah berikut menggunakan Rasa versi 2.8.1
dengan semua dependensi opsional.

Jika Anda memiliki model terlatih yang dilatih pada nlu dan dialog, Anda harus
dapat mengonfirmasi versi Rasa dengan melakukan ping ke localhost:8080/
version titik akhir.

c. Langkah Selanjutnya
Di video berikutnya, kita akan membahas kebutuhan alat seperti Kubernetes
untuk menjalankan container kita.

d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Varian apa yang ada untuk wadah Rasa Open Source?


• Berapa besar container yang bisa anda download dari Rasa? Apa faktor
utama yang berkontribusi?

7.4 Kebutuhan akan Kubernetes


a. Mengapa Kurbenetes
Mari kita jelaskan tentang Kubernetes klik disini

b. Konten
Anda dapat menjalankan container di VM. Anda bahkan dapat
mempertimbangkan untuk menggunakan layanan seperti docker compose jika
Anda ingin menjalankan beberapa container. Tapi pendekatan ini akan memukul
beberapa masalah. Jika VM pernah mati, seluruh aplikasi akan ikut mati. Itu
sebabnya kami membutuhkan sistem yang dapat dijalankan pada sekelompok
mesin sebagai gantinya. Kami dapat mereplikasi satu aplikasi di sekelompok
mesin sehingga jika satu mesin mati, aplikasi akan tetap tersedia.

c. Langkah Selanjutnya
Di video berikutnya, kita akan membahas blok penyusun kluster Kubernetes
sehingga kita mengetahui abstraksi yang diberikannya.

d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Ketika Anda berpikir tentang penyebaran Rasa, layanan apa yang kami
butuhkan dalam arsitektur kami? Coba jawab tanpa mengintip, tapi
jawabannya ada di sini.
• Saat Anda berpikir tentang penerapan Rasa X, layanan apa yang kami
butuhkan dalam arsitektur kami? Coba jawab tanpa mengintip, tapi
jawabannya ada di sini.

7.5 Cara Kerja Kubernetes


a. Cara kerja Kubernetes
Mari kita bicara tentang abstraksi di dalam Kubernetes.

b. Video
Berikut video mengenai abstrak Kubernetes klik disini
c. Konten
Saat Anda bekerja dengan Kubernetes, ada beberapa istilah yang perlu Anda
pahami.
• Pod. Pod adalah unit dasar komputasi di Kubernetes. Pod dapat
menghosting sebuah container dan mereka memiliki alamat ip dinamis
yang terpasang yang dapat mengekspos sebuah port.
• Jasa. Layanan adalah cara untuk mengekspos port dan satu set pod.
Mereka dapat digunakan untuk mengatur alamat ip statis untuk sebuah
wadah tetapi mereka juga digunakan untuk penyeimbangan beban.
• Masuknya Ingress adalah cara untuk mengekspos layanan ke internet.
Sebuah layanan masih dimaksudkan sebagai layanan internal, tetapi ketika
kita kembali ke ingress kita mengacu pada layanan yang dapat
berkomunikasi dengan dunia luar.
• Ruang nama. Namespace adalah cara untuk mengelompokkan
sekumpulan pod dan layanan. Ini sangat berguna ketika Anda memiliki
banyak tim yang mengerjakan beberapa proyek dalam satu kluster.

Tujuan Kubernetes adalah untuk berjalan di sekumpulan server dan menyediakan


cara untuk mengelola semua komputasi itu. Anda tidak perlu tahu bagaimana
infrastruktur yang mendasarinya bekerja dan sebagai gantinya Anda akan dapat
berpikir dalam hal pod, layanan, dan ruang nama.

d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Mengapa kita tidak bisa menghubungkan dunia luar ke pod di Kubernetes?

7.6 Demo Kubernetes Lokal


a. Demo Kubernetes Lokal
Mari kita lakukan demo secara lokal, untuk menunjukkan perintah standar yang
mungkin dijalankan seseorang saat berinteraksi dengan Kubernetes.
b. Video
Berikut video mengenai demo kurbernetes local klik disini

c. Perintah
Secara lokal kami memulai cluster kubernetes menggunakan kind.

Mari tunjukkan beberapa perintah dasar yang dapat Anda jalankan dengan
kubernetes.

Sekarang mari kita pertimbangkan apa yang mungkin kita perlukan untuk
menjalankan wadah Rasa.

• Kami ingin menentukan jumlah replika di muka.


• Kami ingin dapat menentukan sumber daya yang dibutuhkan.
• Kami ingin mendeklarasikan layanan yang dapat merutekan ke sumber
daya kami.
• Kita perlu menyampaikan model Rasa yang telah dilatih sebelumnya.
Biasanya ada banyak pengaturan yang ingin Anda terapkan, jadi alih-alih
menggunakan perintah CLI, Anda dapat menggunakan .yaml file sebagai
gantinya. Dengan begitu kami dapat menyimpan semua pengaturan penerapan di
satu tempat dan itu membuatnya lebih mudah untuk diulang. Itu sebabnya kami
akan bekerja dengan penerapan alih-alih meluncurkan pod secara manual.

Pertama-tama kita akan membuat file manifes yang berisi pod dan layanan kita.

Kami sekarang dapat menerapkan manifes kami.


Sekali lagi, kita dapat memilih untuk menambahkan replika ke manifes kita.
Setelah kami menjalankan kembali, kubectl --namespace rasa apply -f
manifest.yaml kami dapat memvariasikan bahwa pod telah diubah melalui.

Berikut tabel yang kami dapatkan sebagai output. Nama Anda kemungkinan akan
berbeda karena nama-nama tersebut memiliki beberapa keacakan di dalamnya.

Sekarang mari kita lihat log di pod kita.

d. Langkah Selanjutnya
Di video berikutnya, kita akan berbicara tentang helm dan mengapa helm ini
menyelesaikan masalah menghubungkan layanan ke pod.

e. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Apa yang mungkin menjadi alasan mengapa kubectl get podspod yang
Anda minati tidak ditampilkan?
• Perintah apa yang Anda perlukan untuk mengambil log dari pod yang
sedang berjalan?

7.7 Mengapa Helm


a. Kebutuhan Helm
Mari kita bicara tentang perlunya alat seperti Helm.

b. Video
Berikut video mengenai helm klik disini
c. Konten
Anda mungkin pernah mendengar pip. Ini adalah alat untuk menginstal paket
Python dengan dependensinya untuk lingkungan Python lokal Anda. Dengan cara
yang sama, Anda dapat menganggapnya helm sebagai alat untuk menginstal
penerapan Kubernetes dengan semua dependensi siap. Di dalam pip Anda akan
menginstal sebuah paket, di dalam helm Anda akan menginstal sebuah bagan.

Dimana dalam python anda dapat menjalankan seperti berikut:

Anda dapat menggunakan helm melalui perintah serupa.

Dari perspektif tingkat tinggi, helmsangat mirip dengan pipdalam arti bahwa itu
adalah alat untuk menginstal paket. Perbedaannya adalah bahwa helmperlu
disesuaikan agar berguna. Seperti yang akan kita lihat di video berikutnya, Anda
harus memasang diagram kemudi dengan beberapa nilai.

Itu berarti perintah install yang sebenarnya akan lebih seperti:

d. Langkah Selanjutnya
Di video berikutnya, kita akan memulai dari awal dan menginstal proyek Rasa X
di Kubernetes menggunakan Helm.
e. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Masalah apa yang akan helm memecahkan bagi kita yang kubectl tidak
memecahkan bagi kita?

7.8 Menggunakan Helm untuk Memasang Rasa X


a. Menggukan Helm untuk Memasang Rasa X
Mari kita lihat semua perintah yang diperlukan untuk menginstal Rasa X di
Kubernetes dengan menggunakan Helm.

b. Video
Berikut video mengenai penggunaan helm untuk rasa x klik disini

c. Konten
• Langkah 1: Buat Cluster

• Langkah 2: Buat Namespace untuk Rasa X

• Langkah 3: Buat values.yml file.


Selanjutnya kita perlu membuat values.yml file yang akan menampung
semua pengaturan kita untuk helm instalasi. Perhatikan bahwa dalam
contoh kami di bawah ini, kami menggunakan kata sandi yang sama untuk
semuanya. Untuk demo, ini baik-baik saja, tetapi untuk penerapan
kehidupan nyata Anda akan ingin menggunakan kata sandi yang berbeda
untuk setiap layanan.

• Langkah 4: Gunakan Helm untuk Memasang Rasa di Cluster

• Langkah 5: Hubungkan Port


Jika Anda ingin menghubungkan Rasa X ke dunia luar, Anda perlu
membuka port ke cluster Kubernetes. Port utama yang ingin Anda
hubungkan adalah port yang terhubung ke nginx pod. Pertama-tama Anda
harus mencari tahu apa nama pod yang sesuai. Anda dapat menggunakan
kubectl get pods untuk mencari tahu.

Kami mengamati nama di rasa-x-1627907752-nginx-7f6fc46df6-gcnlz


sini. Nama yang Anda amati kemungkinan berbeda dari yang ditampilkan
dalam tutorial ini jadi pastikan Anda memeriksa ulang. Mengingat bahwa
kita tahu ke mana harus terhubung, sekarang kita dapat membuka port
dengan penerusan port.

Anda sekarang seharusnya dapat terhubung ke Rasa X di


http://localhost:5002. Perhatikan bahwa perintah yang perlu Anda
gunakan kemungkinan akan berbeda karena penerapan Anda mungkin
memiliki nama rasa-x layanan yang berbeda.

d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.

• Apakah mungkin untuk menyesuaikan penyebaran Helm Rasa X?


• Jika Anda menggunakan helm untuk men-deploy Pod, mengapa Anda
masih ingin menggunakannya kubectl dari waktu ke waktu?

Anda mungkin juga menyukai