step.
An interruption of a form could look like this:- story: interrupted food
- intent: request_restaurant
- action: restaurant_form
- action: utter_chitchat
- active_loop: restaurant_form
- action: utter_slots_values
A slot event is specified under the key slot_was_set: with the
slot name and optionally the slot's value.
Slots act as the bots memory.
Slots are set by either the default action action_extract_slots according to the
slot mappings specified in the domain, or by custom actions.
They are referenced by stories in slot_was_set steps. For example:
- story: story with a slot
- intent: celebrate_bot
- feedback_value: positive
This means the story requires that the current value for the feedback_value
slot be positive for the conversation to continue as specified.
Whether or not you need to include the slot's value depends on the
slot type and whether the value can or should
influence the dialogue. If the value doesn't matter, as is the case for e.g. text slots,
you can list only the slot's name:
- story: story with a slot
- action: utter_greet_user_by_name
The initial value for any slot by default is null, and you can use it to check if the slot was not set:
- story: French cuisine
Stories do not set slots. The slot must be set by the default action action_extract_slots if a slot mapping applies, or custom
action before the slot_was_set step.
Checkpoints are specified with the checkpoint: key, either at the beginning
or the end of a story.
Checkpoints are ways to connect stories together. They can be either the first
or the last step in a story. If they are the last step in a story, that story
will be connected to each other story that starts with the checkpoint of the
same name when the model is trained. Here is an example of a story that ends
with a checkpoint, and one that starts with the same checkpoint:
- story: story_with_a_checkpoint_1
- action: utter_greet
- checkpoint: greet_checkpoint
- story: story_with_a_checkpoint_2
- checkpoint: greet_checkpoint
- intent: book_flight
- action: action_book_flight
Checkpoints at the beginning of stories can also be conditional on
slots being set, for example:
- story: story_with_a_conditional_checkpoint
- checkpoint: greet_checkpoint
# This checkpoint should only apply if slots are set to the specified value
- context_scenario: holiday
- holiday_name: thanksgiving
- action: utter_greet_thanksgiving
Checkpoints can help simplify your training data and reduce redundancy in it,
but do not overuse them. Using lots of checkpoints can quickly make your
stories hard to understand. It makes sense to use them if a sequence of steps
is repeated often in different stories, but stories without checkpoints
are easier to read and write.
or steps are ways to handle multiple intents or slot events the same way,
without writing a separate story for each intent. For example, if you ask the user to
confirm something, you might want to treat the affirm and thankyou intents in the
same way. Stories with or steps will be converted into multiple
separate stories at training time.
For example, the following story would be converted to two stories at training time:
- story: story with OR
- intent: signup_newsletter
- action: utter_ask_confirm
- action: action_signup_newsletter
You can also use or statements with slot events.
The following means the story requires that the current value for
the name slot is set and is either joe or bob. This story
would be converted to two stories at training time.
- action: utter_greet
Just like checkpoints, OR statements can be useful, but if you are using a lot of them,
it is probably better to restructure your domain and/or intents.
Overusing these features (both checkpoints and OR statements) will slow down training.
Rules are listed under the rules key and look similar to stories. A rule also has a steps
key, which contains a list of the same steps as stories do. Rules can additionally
contain the conversation_started and conditions keys. These are used to specify conditions
under which the rule should apply.
A rule that with a condition looks like this:
- rule: Only say `hey` when the user provided a name
- user_provided_name: true
- action: utter_greet
For more information about writing rules, see Rules.
Test stories check if a message is classified correctly as well as the action predictions.
Test stories use the same format as stories,
except that user message steps can include a user to specify the actual
text and entity annotations of the user message. Here's an example of a
test story:
- story: A basic end-to-end test
- action: utter_ask_howcanhelp
show me [chinese]{"entity": "cuisine"} restaurants
- action: utter_ask_location
in [Paris]{"entity": "location"}
- action: utter_ask_price
You can run the tests using the following command:
If you want to know more about testing head over to
Testing Your Assistant.
End-to-end training is an experimental feature.
We introduce experimental features to get feedback from our community, so we encourage you to try it out!
However, the functionality might be changed or removed in the future.
If you have feedback (positive or negative) please share it with us on the Rasa Forum.
With end-to-end training, you do not have to deal with the specific
intents of the messages that are extracted by the NLU pipeline.
Instead, you can put the text of the user message directly in the stories,
by using user key.
These end-to-end user messages follow the format:
- story: user message structure
- user: the actual text of the user message
- action: action_name
In addition, you can add entity tags that can be extracted
by the TED Policy.
The syntax for entity tags is the same as in
the NLU training data.
For example, the following story contains the user utterance
I can always go for sushi. By using the syntax from the NLU training data
[sushi](cuisine), you can mark sushi as an entity of type cuisine.
- story: story with entities
- user: I can always go for [sushi](cuisine)
- action: utter_suggest_cuisine
Similarly, you can put bot utterances directly in the stories,
by using the bot key followed by the text that you want your bot to say.
A story with only a bot utterance might look like this:
- story: story with an end-to-end response
- bot: Hello, a person with a name!
You can also have a mixed end-to-end story:
- story: full end-to-end story
- bot: Hello, a person with a name!
- intent: search_restaurant
- action: utter_suggest_cuisine
- user: I can always go for [sushi](cuisine)
- bot: Personally, I prefer pizza, but sure let's search sushi restaurants
- action: utter_suggest_cuisine
- user: Have a beautiful day!
- action: utter_goodbye
Rasa end-to-end training is fully integrated with standard Rasa approach.
It means that you can have mixed stories with some steps defined by actions or intents
and other steps defined directly by user messages or bot responses.
Tidak dipungkiri, laju perkembangan teknologi yang luar biasa di era
digital seperti saat ini memang banyak memberikan dampak positif. Namun dibalik
segala kelebihannya, sesuatu hal diyakini akan mendatangkan hal-hal negative juga.
Disatu sisi, teknologi mampu menghadirkan kecepatan pendistribusian informasi
yang luar biasa. Update peristiwa dilokasi tertentu, misalnya invasi Rusia ke
Ukraina, akan diketahui oleh public di belahan dunia lain. Dengan sekali klik,
video yang diunggah, akan dapat ditonton oleh jutaan bahkan milyaran umat
manusia di dunia. Namun, disisi lain, mengintip tindak kejahatan yang
berevolusi dalam bentuk kejahatan cyber. Salah satu cyber crime yang paling populer
adalah kebocoran data (data leak).
Salah satu peristiwa yang masih hangat dibicarakan dalam berbagai media terjadi di awal bulan Maret ini. Saat
para ASN sedang menikmati romantisme tanggal muda, tiba-tiba publik dihebohkan dengan berita tentang kebocoran data pengguna internet. Hal itu terungkap
setelah peneliti siber dari Singapura, DarkTracer, mempublikasikan laporannya
bahwa terdapat kebocoran data kredensial lebih dari 49 ribu situs pemerintah di
seluruh dunia. DarkTracer juga membuat daftar situs pemerintah dengan kebocoran
data paling banyak. Dari data tersebut, terdapat tiga situs pemerintah
Indonesia yang masuk dalam daftar 10 situs teratas, salah satunya melalui situs
Ditjen Pajak (djponline.pajak.go.id). Terdapat 17.585 data kredensial
untuk akses ke situs djponline.pajak.go.id yang bocor. Bukan hanya di situs
itu saja, kebocoran data milik wajib pajak juga terjadi di situs ereg.pajak.go.id.
Namun kemudian secara resmi Direktur Penyuluhan, Pelayanan dan Hubungan
Masyarakat (P2Humas) DJP menenangkan public melalui keterangan persnya pada
tanggal 3 Maret 2022. Juru bicara Ditjen Pajak tersebut menyampaikan bahwa
kebocoran data bukan berasal dari system internal DJP, melainkan berasal dari
perangkat pengguna (user) yang terinfeksi malware, yang kemudian digunakan
untuk masuk ke dalam situs pemerintahan. DJP pun menyarankan agar pengguna
situs DJP dan wajib pajak secara luas segera mengganti kata sandi dengan yang
lebih kuat dan aman secara berkala. Huffhhh…melegakan sekali.
Jika menengok 2 bulan ke belakang, tepatnya di minggu pertama Januari 2022,
DarkTracer juga melaporkan bahwa sebanyak 40.629 pengguna internet di Indonesia
terinfeksi Stealer seperti Redline, Raccoon, Vidar dan lainnya. Selain itu,
terdapat 502 ribu lebih data kredensial untuk akses ke domain .id (dot id) yang
bocor dan didistribusikan melalui situs gelap. Data kredensial pengguna
yang bocor tersebut tidak hanya data pengguna yang mengakses ke sejumlah situs
pemerintahan saja seperti Kemdikbud, BKN, Ditjen Pajak, dan BPJS Ketenagakerjaan. Namun kebocoran juga sudah merambah ke data user yang mengakses beberapa aplikasi
e-commerce seperti Shopee dan Lazada.
By the way, kenapa sih kok bisa data yang sebegitu penting bisa bocor? Dilansir
dari situs UpGuard terdapat enam penyebab paling umum terjadinya kebocoran data di 2021,
diantaranya kesalahan konfigurasi software, penipuan melalui rekayasa sosial (social engineering), password atau kata sandi yang digunakan berulang, pencurian
barang yang mengandung data sensitif, kerentanan perangkat lunak, dan
penggunaan kata sandi bawaan (default
password).
Harus dipahami bersama bahwa kebocoran data sangat erat hubungannya dengan pembobolan data. Ketika data
tanpa sengaja terekspos ke internet ataupun situs yang tidak aman, seorang
peretas dengan senang hati akan segera mengakses informasi pribadi Anda untuk melakukan pembobolan data (data breach). By the way, kenapa sih kok bisa data yang sebegitu penting
bisa bocor?
Jika kita perhatikan, banyak faktor yang berpotensi menjadi penyebab
kebocoran data. Dari beberapa literatur, penulis mengelompokkan faktor-faktor
tersebut menjadi 3 penyebab utama kebocoran data, yaitu faktor kesalahan manusia (human error),
serangan Malware (malicious software), dan manipulasi psikologis melalui
social engineering.
Pertama, human error. Fitrah
manusia yang hobi mempraktekkan kebiasaan ekonomis diantaranya
dengan mencari free software atau
aplikasi bajakan (yang biasanya
memberikan iming-iming free trial
atau bonus-bonus lainnya) “memaksa” kita untuk secara suka rela memasukkan data pribadi berupa
nomor telp di situs atau aplikasi yang tidak terjamin keamanannya. Dan tanpa kita sadari, hal ini sering kita lakukan.
Kedua, serangan malware. Acap juga kita lalai dan tidak teliti dalam menerima maupun mengirim
email, yang berpotensi menjadi pintu masuk malware. Malware pada dasarnya
adalah program yang dirancang untuk merusak dengan menyusup ke system computer.
Salah satu jenis malware yang berbahaya yaitu spyware. Menurut salah satu vendor
antivirus yang sudah mendunia, Kaspersky, spyware merupakan software yang didesain
untuk masuk ke dalam perangkat komputer. Spyware mempunyai kemampuan mengumpulkan data-data pribadi user dan mengirimnya kepada pihak ketiga tanpa
persetujuan user. Jahat sekali kan?
Ketiga, social engineering yaitu penggunaan manipulasi psikologis untuk
mengumpulkan data sensitif seperti nama lengkap, username, password, dan sebagainya melalui media
elektronik dengan menyamar sebagai pihak yang dapat dipercaya. Biasanya phishing memanfaatkan email untuk mengelabui korbannya. Email yang
dikirimkan pelaku dapat berisi sesuatu yang mengatasnamakan pihak tertentu dan
memancing korban untuk meng-klik tautan yang tercantum di dalamnya. Malah
penulis beberapa kali mendapatkan sms yang berisi tautan dengan iming-iming
bonus pulsa, bisa jadi sms dengan tautan tersebut merupakan kail untuk
memancing “ikan-ikan” yang tergoda dengan umpan yang melambai-lambai
memanggil-manggil untuk di klik.
Terlepas dari faktor-faktor utama
tersebut, mungkin kita telah mengetahui tips-tips “normatif” untuk menghindari
kebocoran data, yang bisa kita temukan di berbagai website maupun platform media
social. Namun, apa yang harus kita lakukan jika sebuah data website sudah
bocor? Langkah mitigasi yang paling cepat dan praktis yaitu, segera meng-update
dan mengubah password akun user. Ibarat sebuah pintu, jika ada pelaku criminal yang
sudah menduplikasi kunci tersebut, maka cara paling ampuh dan cepat yang bisa
dilakukan empunya pintu yaitu langsung mengganti set pintu dengan yang baru. Cara
tersebut disinyalir menjadi cara paling ampuh dan bisa dilakukan secara mandiri.
Memang, teknologi yang semakin
maju disatu sisi akan semakin memudahkan manusia. Namun disisi lain, ancaman terhadap
keamanan penggunaan teknologi juga semakin berevolusi. Bagaimana menyikapinya? Tidak perlu paranoid atau kekuatiran yang
berlebihan, yang penting tetap
hati-hati dan waspada. Makanya bro, sayangi data pribadimu mulai
sekarang. Karena privacy adalah privilege yang tidak akan pernah bisa ditukar
dengan nominal berapa pun saja.
(Penulis: Mahmud Ashari, Kepala
Seksi Hukum dan Informasi KPKNL Kisaran)
50%50% menganggap dokumen ini bermanfaat, Tandai dokumen ini sebagai bermanfaat
50%50% menganggap dokumen ini tidak bermanfaat, Tandai dokumen ini sebagai tidak bermanfaat
Aplikasi DATA ONLINE - PUSAT DATABASE - BMKG adalah aplikasi layanan data untuk pengguna,
baik untuk kalangan internal BMKG maupun eksternal yang terdiri dari kalangan
Perguruan Tinggi, Institusi Kementrian/Lembaga, Swasta, dan Masyarakat pengguna data
MKKuG
Pengguna harus ter-registrasi dan login untuk dapat mengunduh data iklim.
Data Oregon merupakan situs yang menampilkan hasil angka undian dari permainan oregon lottery. Hasil angka keluaran oregon di tampilkan pada tabel data di bawah ini setelah undian angka oregon selesai.
Undian angka akan di putar dan di tutup pukul 03:00 Wib(Data Oregon 3), 06:00 Wib(Data Pengeluaran Oregon 6), 09:00 Wib(Oregon 9) dan Pukul 12:00 Wib(Result Oregon 12).
Melalui data ini di atas, para bettor dapat melihat tren dan pola yang ada dalam permainan, serta membuat strategi bermain yang lebih baik untuk mendapatkan angka jitu dan kemenangan dalam bermain togel Oregon.
Discover New Buyers and Sellers
Including customs declaration data, bill of lading data, shipping data
Data Administrator (DA) adalah seseorang yang mengelola perancangan logika dari struktur dan integritas data dalam suatu organisasi. Tujuan diperlukannya data administrator pada suatu organisasi agar dapat membantu organissi dalam memastika data yang dimiliki aplikasi dari organisasi tersebut terstruktur dengan baik.
Berikut ini tanggung jawab dari data administrator:
Database Administrator (DBA) adalah seseorang yang berfokus melaksanakan implementasi atas keamanan dan pengoperasian manajemen sistem basis data dari database dalam organisasi. Tujuan diperlukannya database administrator pada suatu organisasi agar dapat membantu organissi dalam memastikan bahwa sistem basis data berjalan dengan aman, efisien, dan optimal, sehingga data dapat digunakan dengan mudah dan aman untuk mendukung kebutuhan bisnis dan organisasi.
Berikut ini tanggung jawab dari database administrator:
Basis data berorientasi objek
Basis data berorientasi objek berevolusi pada tahun 1990-an sebagai respons terhadap munculnya pemrograman berorientasi objek. Pemrogram dan desainer mulai memperlakukan data dalam basis data mereka sebagai objek. Misalnya, Anda dapat memetakan atribut kursi, seperti warna dan ukuran, ke objek data kursi. Objek ini adalah representasi virtual dari kursi nyata di basis data berorientasi objek.
SQL adalah bahasa kueri yang digunakan untuk mengambil, mengakses, dan mengedit data dalam basis data relasional. NoSQL mewakili sebaliknya, mekanisme basis data yang tidak menggunakan hubungan tabular dalam pemodelan data. Basis data NoSQL dibuat pada awal abad kedua puluh satu ketika komputasi klaster dan arsitektur basis data terdistribusi muncul. Arsitektur terdistribusi menyimpan satu basis data besar melalui beberapa perangkat penyimpanan yang mendasarinya. Pengaturan ini disebut penskalaan horizontal. Mekanisme perangkat lunak yang digunakan dalam NoSQL adalah kecepatan tinggi, tidak ada persyaratan untuk skema tabel tetap, kemampuan untuk menyimpan data yang digandakan atau dikelompokkan, dan kemampuan untuk menskalakan secara horizontal.
Rasa uses YAML as
a unified and extendable way to manage all training data,
including NLU data, stories and rules.
You can split the training data over any number of YAML files,
and each file can contain any combination of NLU data, stories, and rules.
The training data parser determines the training data type using top level keys.
The domain uses
the same YAML format as the training data and can also be split across
multiple files or combined in one file. The domain includes
the definitions for responses and forms.
See the documentation for the domain for information on how to format your domain file.
Looking for Markdown data format? It's removed in Rasa 3.0, but
you can still find the documentation for markdown NLU data and markdown stories.
If you still have your training data in Markdown format then the recommended approach is to use Rasa 2.x
to convert your data from Markdown to YAML. The migration guide
explains how to do this.
Basis data relasional
Pada tahun 1980-an, basis data relasional muncul sebagai model perusahaan yang populer karena produktivitas, fleksibilitas, dan kompatibilitasnya dengan perangkat keras yang lebih cepat. Basis data relasional mengatur catatan sebagai beberapa tabel, bukan daftar tertaut.
Dalam model basis data relasional, setiap kategori memiliki sebuah tabel, dengan atribut kategori sebagai kolom dan catatan data sebagai baris. Misalnya, Anda dapat memodelkan toko ritel furnitur sebagai satu set tabel—Kamar dan Furnitur. Tabel ditautkan oleh kolom—Nomor kamar dan Nama furnitur. Kedua kolom ini juga disebut kunci primer.
Meja samping tempat tidur
Basis data yang paling awal adalah kaset magnetik dengan catatan data yang disimpan secara berurutan. Basis data terus berevolusi seiring dengan kemajuan teknologi. Basis data sekarang telah menjadi sistem yang kompleks dan beperforma tinggi dengan bidang studi khususnya sendiri. Mari kita lihat bagaimana model data berevolusi.
Basis data hierarkis menjadi populer di tahun 1970-an. Alih-alih menyimpan catatan data secara berurutan, basis data hierarkis menyimpannya dalam struktur pohon, membuat hubungan induk-turunan antara dua file. Misalnya, membuat sistem basis data untuk toko ritel furnitur, Anda dapat menentukan kamar tidur sebagai catatan induk dengan tempat tidur, meja samping tempat tidur, dan lemari pakaian sebagai catatan turunan. Catatan tempat tidur selanjutnya dapat memiliki lebih banyak catatan turunan seperti tempat tidur tunggal, tempat tidur ganda, tempat tidur queen, dan sebagainya. Sayangnya, model data hierarkis rumit untuk diterapkan dan tidak dapat menangani beberapa hubungan induk-turunan tanpa duplikasi data yang signifikan.
Basis data awal lainnya, model data jaringan, memungkinkan satu catatan turunan memiliki beberapa catatan induk dan sebaliknya. Jadi dalam contoh toko furnitur, jika Anda memiliki dua catatan induk, kamar tidur dan kamar anak-anak, keduanya dapat tertaut ke catatan turunan lemari pakaian.
High-Level Structure#
Each file can contain one or more keys with corresponding training
data. One file can contain multiple keys, but each key can only appear
once in a single file. The available keys are:
You should specify the version key in all YAML training data files.
If you don't specify a version key in your training data file, Rasa
will assume you are using the latest training data format specification supported
by the version of Rasa you have installed.
Training data files with a Rasa version greater than the version you have
installed on your machine will be skipped.
Currently, the latest training data format specification for Rasa 3.x is 3.1.
Here's a short example which keeps all training data in a single file:
- hey there [Sara](name)
- intent: faq/language
- What language do you speak?
- Do you only handle english?
- story: greet and faq
- action: utter_greet
- action: utter_greet
To specify your test stories, you need to put them into a separate file:
tests/test_stories.yml
- story: greet and ask language
- action: utter_greet
what language do you speak
Test stories use the same format as the story training data and should be placed
in a separate file with the prefix test_.
As shown in the above examples, the user and examples keys are followed by |
(pipe) symbol. In YAML | identifies multi-line strings with preserved indentation.
This helps to keep special symbols like ", ' and others still available in the
training examples.
NLU training data consists of example user utterances categorized by
intent. Training examples can also include entities. Entities are structured
pieces of information that can be extracted from a user's message. You can also
add extra information such as regular expressions and lookup tables to your
training data to help the model identify intents and entities correctly.
NLU training data is defined under the nlu key. Items that can be added under this key are:
- intent: check_balance
- What's my [credit](account) balance?
- What's the balance on my [credit card account]{"entity":"account","value":"credit"}
- credit card account
- regex: account_number
Training examples are grouped by intent and listed under the
examples key. Usually, you'll list one example per line as follows:
However, it's also possible to use an extended format if you have a custom NLU component and need metadata for your examples:
The metadata key can contain arbitrary key-value data that is tied to an example and
accessible by the components in the NLU pipeline.
In the example above, the sentiment metadata could be used by a custom component in
the pipeline for sentiment analysis.
You can also specify this metadata at the intent level:
In this case, the content of the metadata key is passed to every intent example.
If you want to specify retrieval intents, then your NLU examples will look as follows:
- intent: chitchat/ask_name
- May I know your name?
- What do people call you?
- Do you have a name for yourself?
- intent: chitchat/ask_weather
- What's the weather like today?
- Does it look sunny outside today?
- Oh, do you mind checking the weather for me please?
- I like sunny days in Berlin.
All retrieval intents have a suffix
added to them which identifies a particular response key for your assistant. In the
above example, ask_name and ask_weather are the suffixes. The suffix is separated from
the retrieval intent name by a / delimiter.
As shown in the above examples, the / symbol is reserved as a delimiter to separate
retrieval intents from their associated response keys. Make sure not to use it in the
name of your intents.
Entities are structured pieces of information that can be extracted from a user's message.
Entities are annotated in training examples with the entity's name.
In addition to the entity name, you can annotate an entity with synonyms, roles, or groups.
In training examples, entity annotation would look like this:
- intent: check_balance
- how much do I have on my [savings](account) account
- how much money is in my [checking]{"entity": "account"} account
- What's the balance on my [credit card account]{"entity":"account","value":"credit"}
The full possible syntax for annotating an entity is:
[]{"entity": "", "role": "", "group": "", "value": ""}
The keywords role, group, and value are optional in this notation.
The value field refers to synonyms. To understand what the labels role and group are
for, see the section on entity roles and groups.
Synonyms normalize your training data by mapping an
extracted entity to a value other than the literal text extracted.
You can define synonyms using the format:
- credit card account
You can also define synonyms in-line in your training examples by
specifying the value of the entity:
- intent: check_balance
- how much do I have on my [credit card account]{"entity": "account", "value": "credit"}
- how much do I owe on my [credit account]{"entity": "account", "value": "credit"}
Read more about synonyms on the NLU Training Data page.
You can use regular expressions to improve intent classification and
entity extraction using the RegexFeaturizer and RegexEntityExtractor components.
The format for defining a regular expression is as follows:
- regex: account_number
Here account_number is the name of the regular expression. When used as features for the RegexFeaturizer the name of the regular expression does not matter. When using the RegexEntityExtractor, the name of the regular expression should match the name of the entity you want to extract.
Read more about when and how to use regular expressions with each component on the NLU Training Data page.
Lookup tables are lists of words used to generate
case-insensitive regular expression patterns. The format is as follows:
When you supply a lookup table in your training data, the contents of that table
are combined into one large regular expression. This regex is used to check
each training example to see if it contains matches for entries in the
lookup table.
Lookup table regexes are processed identically to the regular
expressions directly specified in the training data and can be used
either with the RegexFeaturizer
or with the RegexEntityExtractor.
The name of the lookup table is subject to the same constraints as the
name of a regex feature.
Read more about using lookup tables on the NLU Training Data page.