Slots in Rasa Open Source 2.x

Note: This is material for Rasa 2.x. The syntax has updated slightly in Rasa 3.0 so we recommend new users to check the new course on Custom Actions found here.

In Rasa, slots are your long term memory in a conversation. If there's any information you'd like to store for later use, you'd typically want to store it in a slot. It's important to understand that a slot is not the same thing as an entity. You could store any information in a slot, even if no entity has been detected. That said, it is very common to fill a slot value with an entity value.

If you want to define a slot, you'll need to define it in your domain.yml file.

influence_conversation: false

You'll notice that in this configuration we've added a influence_conversation tag. The reason is that slots can influence a story. You might have something like this in your stories.yml file.

- story: booking a flight ticket

- intent: book_a_ticket

- destination: Toronto

If your slots are configured to influence the flow of the conversation, you have to include them in your training stories.

Typically, your slot values will be set by detected entities. In these situations your domain.yml file should also include entities.

influence_conversation: false

This way, when an entity is detected it can fill in the slot value. You can also set slot values with custom actions, but we'll discuss how to do that in a later video.

By default, slots that have matching entity names will automatically be filled with the values of those entities. You can disable this behaviour by changing the configuration of the auto_fill parameter to false.

In Rasa, slots have types. This is useful, because certain types of information are better served as a number than a string of text.

Slot type text can be used to store any text information. It can influence the conversation based on whether or not the slot has been set.

influence_conversation: true

Slot type boolean can be used to store information that can get the values True or False.

influence_conversation: true

Slot type categorical can be used to store values that can get one of a predefined set of possible values.

Slot type float can be used to store numerical values.

List slots can be used to store a list of values. When configured, only the presence of the slot can have influence on the flow of the conversation. The values themselves won't be taken into account.

The "any" slot type can be used to store any arbitrary values. Slots of this type don’t have any influence on the conversation flow which means that the value and the presence of the slot doesn’t have any influence on how the conversation goes.

Finally, it's good to know that you can also set a default value on a slot by configuring the initial_value parameter. The value will be assigned to the slot from the beginning of the conversation and can be reset later on by NLU or custom actions.

Try to answer the following questions to test your knowledge.

Note: This is material for Rasa Open Source 3.x. If you're interested in the content for Rasa Open Source 2.x, please see the archived version of this lesson here.

In Rasa, slots are your long term memory in a conversation. If there's any information you'd like to store for later use, you'd typically want to store it in a slot. It's important to understand that a slot is not the same thing as an entity. You could store any information in a slot, even if no entity has been detected. That said, it is very common to fill a slot value with an entity value.

If you want to define a slot, you'll need to define it in your domain.yml file. In general slots can be defined in two ways: using NLU or using a custom. If you're using entity extraction via NLU models then you could extract a slot via a configuration like:

influence_conversation: false

Alternatively, if you're using a custom action to set slots. This is discussed in the custom actions segment of this course.

You'll notice that in these configurations that we've added a influence_conversation tag. The reason is that slots can influence a story. You might have something like this in your stories.yml file.

- story: booking a flight ticket

- intent: book_a_ticket

- destination: Toronto

If your slots are configured to influence the flow of the conversation, you have to include them in your training stories. These slot_was_set events will now be included as training data for the machine learning pipelines in your assistant. Note that you're able to declare multiple values for a slot in a story via the or-operator.

- story: booking a flight ticket

- intent: book_a_ticket

- destination: Toronto

- destination: London

Slot mappings allow you to define how each slot will be filled in. Slot mappings are applied after each user message. For example, let's say that we have an entity called entity_name that we only want to store in a slot if the intent of the user is make_transaction. Then we might configure our slot via;

intent: make_transaction

Alternatively, we might also declare that we only want to detect the slot value if the current intent is not check_transaction. That could be configured via:

not_intent: check_transaction

Slot mappings give you more control over when a slot is stored. This is great because it might prevent you from storing a value in a slot if the user is mentioning an entity out of context.

There are many different types of slot mappings. The most common ones are:

It's also good to know that there are different methods of extracting slots. It's not just entities that are supported.

You can store the full text the user has message as a slot value. This is is done via the from_text slot mapping.

The from_trigger_intent mapping will fill a slot with a specific defined value if a form is activated by a user message with a specific intent.

You can also use a custom action to set the slot value. If none of the predefined slot mappings fit your case, you can creat custom slot mappings using slot validation actions.

In Rasa, slots have types. This is useful, because certain types of information are better served as a number than a string of text.

Slot type text can be used to store any text information. It can influence the conversation based on whether or not the slot has been set.

influence_conversation: true

Slot type boolean can be used to store information that can get the values True or False.

influence_conversation: true

Slot type categorical can be used to store values that can get one of a predefined set of possible values.

Slot type float can be used to store numerical values.

List slots can be used to store a list of values. When configured, only the presence of the slot can have influence on the flow of the conversation. The values themselves won't be taken into account.

The "any" slot type can be used to store any arbitrary values. Slots of this type don’t have any influence on the conversation flow which means that the value and the presence of the slot doesn’t have any influence on how the conversation goes.

Finally, it's good to know that you can also set a default value on a slot by configuring the initial_value parameter. The value will be assigned to the slot from the beginning of the conversation and can be reset later on by NLU or custom actions.

Try to answer the following questions to test your knowledge.

Entities are automatically saved to slots that have the same name.

Let's create a new age entity:

Let's create a new intent as well:

and add it to domain.yml:

We need the chatbot's response as well:

The story now looks like this:

Let's see this in action:

The age entity was automatically saved to the age slot, because the name is the same. Also, you can see that slots can be overwritten. First, the value of the slot was 17 years and then 64.

If a form contains a slot that is filled before the form is activated, that slot is not asked anymore as part of the form loop.

To demonstrate this, let's create the following story:

Normally, the chatbot would ask "What is your email address?" to fill the email slot. But since the slot is filled beforehand, it asks only frequency and notifications.

You can learn more about slots in the documentation or in my previous article.

In the next chapter, we will look at rich responses, such as buttons and images.

Repository for this tutorial:

You can checkout the state of the repository at the end of this tutorial by running:

Detikers pernah mendengar istilah brainware? Brainware adalah seseorang yang memiliki keahlian dalam menjalankan komputer.

Brainware memiliki bidang keahliannya masing-masing. Simak berikut penjelasan lengkap mengenai brainware.

Tri Rachmadi menjelaskan dalam buku Pengantar Teknologi Informasi, bahwa brainware adalah orang yang menggunakan, memakai, atau mengoperasikan perangkat komputer.

SCROLL TO CONTINUE WITH CONTENT

Brainware merupakan istilah bagi manusia yang terlibat dalam mengoperasikan sistem dalam perangkat komputer.

Manusia dengan otaknya (bahasa Inggris: brain) mampu mengeksplorasi kemampuan dari perangkat keras (hardware) maupun perangkat lunak (software).

Kecanggihan komputer tidak akan bisa dioperasikan secara optimal tanpa ada manusia di belakangnya.

Maka dari itu, fungsi hardware dan software komputer tersebut baru akan bisa berjalan secara optimal dengan bantuan seorang brainware.

Brainware sebetulnya adalah seorang pengguna perangkat komputer, dengan kemampuan yang dimilikinya.

Brainware mampu memakai dan menjelajahi kemampuan hardware (perangkat keras) atau software (perangkat lunak).

Dalam sistem komputer, brainware menjadi hal yang sangat penting dan tidak dapat dipisahkan dari hardware dan software.

Muh. Rizal Samad dalam buku Teori dan Praktikum Komputer Dasar menyebut beberapa fungsi brainware secara umum:

Orang yang melakukan rancangan analisa sistem yang akan dikerjakan oleh seorang programmer.

Tugasnya membuat program yang dibutuhkan dalam sistem komputerisasi dan menjaga keamanan dari sebuah sistem komputer.

Tugasnya yakni mengelola suatu sistem operasi beserta program yang dijalankan pada sebuah komputer maupun jaringan dalam perusahaan.

Operator adalah orang yang menjalankan sistem operasi dan program dalam perangkat komputer, misalnya merawat sistem operasi komputer, menyiapkan data untuk diakses, dan lain-lain.

Sementara, Firman M Suwarya dalam bukunya yang berjudul Bekerja dengan Jaringan Komputer menyebut manusia merupakan suatu elemen dari sistem komputer yang merancang bagaimana suatu mesin dapat bekerja sesuai dengan hasil yang diinginkan.

Tingkatan brainware terdiri atas system analyst, programmer, administrator, dan operator. Sedangkan bagian-bagian brainware terdiri atas:

Brainware juga sering diasosiasikan sebagai perangkat intelektual yang mempunyai skill memakai dan menjelajahi sistem hardware (perangkat keras) maupun software (perangkat lunak).

Sebagai Jaminan Transaksi

Deposit digunakan sebagai jaminan atau kepastian dalam transaksi bisnis. Dengan meminta deposit, meminimalisasi adanya risiko pembatalan atau penyalahgunaan dalam transaksi. Deposit juga dapat digunakan untuk menutupi kerugian atau biaya tambahan jika pelanggan melakukan pembatalan pembelian.

Apa Perbedaan Deposit dan Deposito?

Meskipun namanya hampir sama, deposit dan deposito memiliki perbedaan yang signifikan. Deposit merujuk pada jaminan dan simpanan uang, sementara deposito adalah produk simpanan bank yang dikenal sebagai tabungan berjangka.

Keunggulan deposito dibandingkan produk simpanan lainnya adalah tingkat bunga yang lebih tinggi. Namun, penting untuk diingat bahwa penarikan simpanan dalam deposito tidak bisa dilakukan sembarangan. Saat membuka deposito, kamu akan diminta untuk memilih jangka waktu pencairan dana antara 3 hingga 12 bulan. Jika memilih jangka waktu 12 bulan, artinya dana deposito baru dapat ditarik setelah 12 bulan sejak pembukaan deposito.

Fungsi deposit dalam bisnis adalah sebagai berikut.

Perbedaan Warna Primer, Sekunder, dan Tersier

Seperti yang sudah disebutkan di atas, warna terbagi menjadi tiga yakni warna primer, sekunder, dan tersier. Lantas apa sih yang membedakan di antara ketiga warna tersebut? Biar nggak bingung, simak penjelasannya berikut ini.

Dalam buku Cara Mudah Belajar Desain Grafis (Corel Draw, Photoshop, dan Sablon Digital) karya Asrul Huda, warna primer adalah warna yang menjadi dasar dari semua warna yang ada saat ini. Maka dari itu, warna primer tidak bisa dihasilkan oleh campuran warna lain.

Awalnya, warna primer terdiri dari merah, hijau, dan kuning. Namun setelah dilakukan berbagai riset, ditemukan jika warna primer terdiri dari merah (seperti darah), biru (seperti langit atau laut), dan kuning (seperti kuning telur).

Dalam buku Kapita Selekta Pengkajian Seni Rupa, Desain, Media, dan Budaya karya Baskoro Suryo Banindro, warna sekunder adalah warna yang dihasilkan dari perpaduan warna primer. Perpaduan dua warna primer akan menghasilkan warna baru yang disebut warna sekunder.

Sebagai contoh, perpaduan warna kuning dan merah akan menghasilkan warna oranye. Lalu perpaduan warna kuning dengan biru akan menghasilkan warna hijau.

Dalam buku Home Ideas Kreasi Warna Interior Rumah Tinggal 1.400 Desain Kombinasi Warna karya Dmaximus, warna tersier merupakan warna yang dihasilkan oleh pencampuran dua warna sekunder atau warna primer dan sekunder. Beberapa warna tersier yang sering kamu lihat yakni merah jingga, kuning jingga, kuning hijau, biru hijau, biru ungu, dan merah ungu.

Beberapa campuran warna yang dapat menciptakan warna tersier yakni warna kuning dan hijau dapat menghasilkan warna kuning hijau. Lalu campuran warna biru dan ungu dapat menghasilkan warna biru ungu.

Bagi kamu yang berencana mengecat interior rumah, penggunaan warna tersier dinilai cocok. Sebab, warna tersier akan menciptakan nuansa yang baru dan unik serta menghindari rasa bosan karena menggunakan warna primer yang sudah terlalu sering dilihat.

Nah, itu dia detikers penjelasan mengenai warna primer beserta jenis dan contohnya. Dengan banyaknya pilihan warna saat ini, apa warna favorit detikers? Jangan lupa tulis di kolom komentar ya!

Refundable Deposit

Umumnya, deposit satu ini digunakan dalam bisnis sewa properti, seperti sewa kamar hotel. Pengertian dari refundable deposit yaitu uang jaminan yang nantinya dikembalikan setelah waktu tertentu.

Uang jaminan ini dianggap sebagai tanggungan masa depan karena penjual harus mengembalikan sejumlah uang kepada pembelinya. Oleh karena itu, refundable deposit tidak dapat dianggap sebagai pemasukan perusahaan.

Term deposit juga sering dikenal dengan nama deposito. Deposit ini dianggap sebagai instrumen investasi dengan risiko rendah tapi juga memberikan keuntungan yang terbatas.

Bagi bank, dana yang ditempatkan dalam term deposit oleh nasabah digunakan sebagai sumber pinjaman kepada nasabah lain atau bisnis tertentu. Sebagai imbalannya, nasabah yang mendepositokan dananya akan menerima bunga atau pendapatan tetap. Seiring berjalannya waktu, dana yang diinvestasikan dalam term deposit akan bertambah.

Contoh deposit selanjutnya yaitu demand deposit. Demand deposit  adalah salah satu contoh deposit yang memungkinkan nasabah untuk menarik uang dari rekening kapan saja. Meskipun demikian, tingkat bunga yang ditawarkan pada demand deposit biasanya lebih rendah daripada term deposit. Selain itu, nasabah juga mungkin dikenakan biaya administrasi. Yang termasuk demand deposit yaitu rekening giro dan rekening tabungan.

Membangun Kepercayaan

Meminta deposit dari pelanggan atau mitra bisnis dapat membangun kepercayaan juga, lho! Deposit membangun komitmen finansial dari pelanggan atau mitra bisnis ketika menjalin kerjasama atau melakukan transaksi dengan bisnismu. Tentu saja deposit membantu mengurangi ketidakpastian dan memberikan keyakinan bahwa kedua belah pihak akan memenuhi kewajiban mereka.

Cryptocurrency Deposit

Cryptocurrency deposit saat ini sedang banyak menyita perhatian banyak orang, terutama kamu sebagai investor. Ternyata dalam transaksi kripto, kamu harus melakukan deposit berupa uang agar bisa membeli aset kripto. Oleh karena itu, fungsi dari deposit ini untuk memudahkan jual beli aset kripto.

Baca Juga: Mengenal Bunga Deposito: Cara Menghitung dan Contohnya

Itulah penjelasan lengkap tentang deposit, termasuk definisi, fungsi, dan contohnya. Ingat, deposit berbeda dengan deposito, ya! Jadi, pastikan kamu memahaminya dengan benar.

Pertanyaan tentang deposit telah dijawab dengan lengkap. Jika masih ada yang kurang jelas, pastikan kamu membaca aturan atau kebijakan yang tercantum dalam transaksi sebelum melakukan deposit.

Apabila kamu memiliki bisnis yang menggunakan sistem deposit, seperti penjualan tiket atau pulsa, disarankan untuk mencatat transaksi dengan sistem yang baik. Caranya cukup mudah, kamu menerima deposit dari mitra, lalu menjualnya dengan harga deposit ditambah keuntungan.

Tentunya pencatatan yang baik sangat diperlukan untuk bisnismu, bukan? Kamu membutuhkan aplikasi wirausaha online yang memiliki fitur akuntansi untuk mencatat transaksi deposit bisnismu dan berbasis cloud storage, sehingga kamu bisa mengaksesnya di mana saja dan kapan saja.

Tak perlu bingung lagi, kini ada aplikasi majoo yang akan membantu beragam operasional bisnismu, lho! Misalnya, pencatatan keuangan dengan menggunakan fitur akuntansi, pencatatan dan memantau stok dengan menggunakan fitur inventory, pembuatan campaign marketing dengan menggunakan fitur Customer Relationship Management (CRM), dan masih banyak fitur lain yang bisa kamu gunakan.

Yuk, coba gratis aplikasi majoo selama 14 hari sekarang! Kamu bisa menghubungi customer service majoo untuk informasi lebih lengkapnya, ya!

Dalam kehidupan sehari-hari pasti kamu akan menemukan banyak warna mulai dari biru, hijau, kuning, hingga merah. Kehadiran warna dapat mengekspresikan seseorang melalui karya seni, menunjukkan perasaan, menarik perhatian, dan mampu membuat sesuatu terlihat lebih indah.

Berkat warna, manusia dapat mengapresiasikan dirinya sendiri. Sensasi kesenangan dalam mengolah warna merupakan bagian dari kemampuan akal budi manusia yang digunakan untuk menciptakan keindahan. Maka dari itu, warna juga dapat memberikan "warna" bagi kehidupan manusia.

Warna sendiri terbagi menjadi tiga macam yakni primer, sekunder, dan tersier. Dalam artikel kali ini, detikJabar akan membahas apa itu warna primer dan kenapa bisa ada jenis warna sekunder dan tersier.

SCROLL TO CONTINUE WITH CONTENT

Lantas, apa itu warna primer? Lalu apa saja jenis warna primer dan contohnya? Simak penjelasannya dalam artikel ini yuk detikers.

Contoh Perpaduan Warna Primer

Seperti yang dijelaskan sebelumnya, perpaduan warna primer akan menghasilkan warna baru yang disebut warna sekunder. Saat ini warna sekunder ada bermacam-macam, lantas apa saja? Simak secara lengkap di bawah ini.

Tak hanya kombinasi dua warna primer saja, namun dengan mencampur warna primer dan sekunder dapat menghasilkan warna tersier. Lalu contoh perpaduan warnanya seperti apa sih? Simak di bawah ini.

Apa Itu Warna Primer?

Dalam buku Home Ideas Kreasi Warna Interior Rumah Tinggal 1.400 Desain Kombinasi Warna karya Dmaximus, warna primer adalah warna dasar dari lingkaran warna. Dengan kata lain, warna primer merupakan warna asli bagi terciptanya warna-warna lainnya.

Jadi pada dasarnya, seluruh warna yang ada di sekeliling kamu diturunkan oleh tiga warna dasar primer yakni merah (seperti darah), biru (seperti langit atau laut), dan kuning (seperti kuning telur). Karena warna primer merupakan warna dasar, maka tidak dapat dibuat dengan mencampur jenis warna lainnya, akan tetapi warna primer dapat dikombinasikan lalu menghasilkan warna-warna lain.

Ketika dua warna primer dicampur maka akan menghasilkan warna lain yang disebut sebagai warna sekunder. Nah, jika dua warna sekunder atau warna primer dan sekunder dicampur, maka akan menghasilkan warna tersier.

Customer Deposit

Customer deposit adalah contoh deposit yang sering digunakan oleh pengusaha atau pebisnis sebagai bentuk jaminan uang yang harus dibayarkan oleh calon customer sebelum kamu memberikan produk atau jasa.

Alasan customer deposit ini digunakan oleh para pengusaha atau pebisnis, antara lain:

Adanya konsumen memiliki kredit yang buruk. Kondisi ini tentunya akan memicu penjual tidak mempercayai calon pembelinya.

Alasan selanjutnya karena biaya produksi tinggi. Saat bisnis memiliki produk atau jasa yang biaya produksinya tinggi, tentunya penjualan akan meminta deposit dari  konsumennya sebelum membeli produk atau jasa tersebut.

Alasan terakhir adalah jika konsumen meminta produk khusus atau spesial dari penjual, biasanya penjual akan meminta deposit terlebih dahulu sebagai langkah pencegahan pembatalan pesanan tersebut.

Rekening bank berbunga yang memiliki waktu jatuh tempo sering disebut dengan time deposit. Tingkat bunga dalam rekening ini biasanya lebih tinggi daripada rekening tabungan biasa. Semakin lama waktu jatuh temponya, pembayaran bunga akan semakin tinggi.

Time deposit atau rekening tabungan ini memiliki arti bahwa pemiliknya tidak dapat menggunakan dana di rekening dalam kurun waktu tertentu. Jika jangka waktunya kurang dari satu tahun, rekening tabungan tersebut disebut sebagai deposito berjangka pendek. Sedangkan jika jangka waktunya lebih dari satu tahun, disebut sebagai deposito jangka panjang.

Dengan menggunakan saving deposit, nasabah dapat melakukan menarik dana dari tabungannya kapan saja. Saving deposit ini dikenakan bunga dalam jumlah kecil. Saving deposit biasanya menerapkan saldo minimum untuk mengurangi biaya bunga tertinggi, tapi ada juga yang tidak mensyaratkan saldo minimum.