*Apologies for cross-posting. Please feel free to remove this post if it goes against the community guidelines*
—————————–
We are researchers at the Luddy School of Informatics, Computing, and Engineering (SICE) at Indiana University Bloomington looking for participants for a study on Chatbot Evaluation and User Experience Testing.
The study is approved by Indiana University’s Institutional Review Board (Study #10882) and involves a 45-60 minute online interview (no experiment). As a token of our appreciation for your participation, you will receive $10.
To see if you qualify to participate, please fill out a brief 1-minute questionnaire at:https://go.iu.edu/3PlE.
If you qualify, we will email you to schedule an online interview within 72 hours. If you have questions, please email Jayati Dev at [jdev@iu.edu](mailto:jdev@iu.edu).
This week, we’ll be going in depth and providing actionable steps you can take toincrease student engagementand help your students overcome Zoom fatigue.
Rasa Open Source is a framework for Natural Language Understanding (NLU), dialogue management, and integrations. Rasa also provides RasaX, which is a toolset (GUI) to improve a bot created with Rasa.
This is a continuously growing framework for the development of dialogue systems and no wonder there is the need for some help when you start working with Rasa. I got your back though! Here is a comprehensive cheatsheet for all the main commands and functionalities you need!
What you need to know
Files
domain.yml → the “universe” of the bot, i.e., it has a list of all the intents, responses, custom actions, slots, and forms. Don’t forget that every time you add a new intent or entity you have to also add it in your domain
data/nlu.yml → the training data for the natural language understanding component. You add your intents with annotated entities if any, as well as synonyms.
data/stories.yml → the training data for the core-dialogue management component. You add sample dialogue flows, in order for your bot to learn how to interact with users after recognizing the intent
data/rules.yml → part of the training data for the core-dialogue management component. You add snippets of conversations that should always follow the same flow
config.yml → the configuration has the pipeline of the bot, it has all the training information and the policies that should be followed
endpoints.yml → details for connecting to channels
credentials.yml → details for connecting to other services. Rasa already has written services, e.g., Facebook, Slack, so if you want to use them you just comment out the lines
actions/actions.py → the custom actions are your code, where you can call APIs, connect with database, validate slots, etc.
tests/ → the end-to-end tests of rasa. All files in this folder have to start with test_conversation to be considered for the testing
models/ → where your models are stored. Once you train a model this folder is automatically created
results/ → where the results of your tests are stored. Once you test a model this folder is automatically created and the files are automatically updated after every test
Rasa promotes Conversation-Driven Development. In other words, Rasa developers believe that real-world data and conversations make dialogue systems better. The steps are simple:
1. Share your assistant with users as soon as possible
2. Review conversations on a regular basis
3. Annotate messages and use them as NLU training data
4. Test that your assistant always behaves as you expect
5. Track when your assistant fails and measure its performance over time
6. Fix how your assistant handles unsuccessful conversations
CDD is part of the philosophy of Rasa, so there are many functionalities (especially through RasaX) that enable us to adopt users’ data (of course in compliance with GDPR) as training material.
Important commands
rasa init
initializes new rasa project
rasa train
trains a model of the data you provide, according to the parameters, policies, and custom components you have chosen at the configuration.
rasa train nlu
trains only the nlu model
rasa shell
creates a “shell” where you can speak with your bot
rasa shell --debug
creates a “shell” where you can speak with your bot AND debug (meaning that you will see what is happening behind the bot, and detect where errors are happening)
rasa shell nlu
creates a “shell” only for the nlu data (the intent and entity recognition)
rasa run
runs a new server with the trained model. A custom-coded client is needed in order to speak with the bot when rasa run is used.
rasa run actions
runs the actions server. It is used every time you want to speak with the bot (e.g. rasa shell, rasa interactive)
rasa test
automatically tests everything in the folder “tests”, beginning with test_conversations
rasa test -s <tests/test_conversations_specific.yml>
automatically tests the specific file you identify, which must start with tests/test_converstations
rasa test core
automatically tests the core data, meaning the stories
rasa test nlu
automatically tests the nlu data
rasa test --cross-validation
cross-validation, which automatically creates multiple train/test splits of the data, making the testing more effective
rasa interactive -m models/{name_of_model.tar.gz}
opens an interactive shell, whereby speaking with the bot you can add training data to the system. In particular, through this interactive shell, you check whether the intent/entity classification and responses of your bot are correct, and if they aren’t you can correct them. You add the flag -m in order to define which model you want to use for this interactive shell
rasa data validate
verifies that no mistakes or major inconsistencies appear in your domain, NLU data, or story data
rasa --version
shows what version of rasa (and rasa-SDK) you are using
rasa visualize
visualizes the stories
rasa -h
shows all the available commands
Read the documentation for more information and if you face a specific problem take a look at the forum! There are great tutorials at Rasa’s Youtube channel as well as courses for all levels at Udemy.
The Ultimate Rasa Cheatsheet was originally published in Chatbots Life on Medium, where people are continuing the conversation by highlighting and responding to this story.
Many Business organizations typically involve a lot of repetitive tasks. With automation technologies becoming mature and accessible plus due to the recent rise of pandemics there is an upward trend in digital transformation and process automation.
However, when people give the first glance into automation, they might be overwhelmed with a lot of options to take. Particularly, there are two popular ways of automation, Digital Process Automation (DPA) and Robotic Process Automation (RPA) which confuse a lot of people.
In this article, we will explain what is RPA, what is DAP and compare them on various grounds. Finally, you would understand that they complement each other and organizations can get a lot of value by
But before that, let us understand the general context of both RPA and DPA — — Automation.
Growing needs of Automation in Business
Automation in business does not necessarily mean only executing certain actions that do some real-world work automatically, it also includes various data collecting processes that help for better decision making. It might also involve speaking with customers in various customer channels.
Not only do they help in using resources efficiently, but also do not contain risks that inherently come with human error. These systems are capable of working round the clock and constantly provide service without fail.
Technologies today are so well developed that they can automate many areas of business and do something much of all businesses want — — reduce costs and increase profits. While there has generally been a drive for digitization and automation of businesses for years, the recent pandemic has certainly increased that drive many times!
What is Digital Process Automation?
Digital process automation can be said to be an evolution of Business Process management. As such, Digital Process Management is concerned about digitizing your business processes and keeping them in a uniform system. By having them under the same umbrella, Digital Process Automation streamlines workflows and provides a holistic improvement in business process management.
Robotic Process Automation is using software robots to carry out certain tasks. They typically take over mundane and repetitive tasks that do not involve huge intelligence. Speaking about intelligence, much of RPA does not involve artificial intelligence at all, because rules are specified while robot creation.
Not only performing menial tasks, but there also exist various RPA chatbots that can provide conversational experiences.
Digital Process Automation Vs Robotic Process Automation
By now you may have already understood that they differ in use cases — — While RPA is highly focused on creating robots that perform tasks that are done by humans, DPA digitizes general business workflows and automates them.
Let us now compare RPA and DPA on various grounds:
Popularity & Usage
Both RPA and DPA are highly popular and used by a lot of organizations. However, when we see their market values now, DPA is more valued than RPA. In 2020, the market of Robotic Process Automation was valued at $2094 million, and in the same year, Digital Process Automation was valued at $7.8 billion.
This value of RPA is expected to grow to $9416 million by 2026 and DPA to the value of $16.12 billion by 2026.
Ease of Use
Both RPA and DPA offer low code visual development platforms on which you can specify what you want in a flowchart-like fashion and develop many use case applications easily.
Apart from logic, specifying actual work is not hard too… RPA has macro recording available which means that once you do something while recording a macro, the RPA system understands what you have done and can repeat it again…!
Pricing
Calculating pricing for implementation of RPA and DPA is slightly tricky because there are a lot of ways of using them. That is, different organizations take up different levels of automation and pay accordingly.
However, when compared generally, RPA tools cost more than of DPA.
Popular Tools
Both RPA and DPA have rich ecosystems and vibrant communities. UI Path is one of the most popular tools for RPA. Other famous tools for RPA include Blue Prism, Automation Anywhere, Contextor. Popular tools for DPA include Pega, Quixey, Nintex Promapp. Tool Pega can also be used for RPA.
What should you use?
To say in one word, use both!
As we have already discussed, it is beneficial to include automation in as many spaces as possible.
So, to say simply, As RPA and DPA provide automation over various business processes and tasks, there would be a lot of
Here are benefits you get when you implement both RPA and DPA:
Reduction in Cost
As RPA and DPA automate a lot of tasks, ultimately they reduce the need for more people for work and help existing employees be more efficient and be focused on important tasks. Return of investment would be high for the implementation of RPA and DPA.
Efficiently integration of Humans and Robots
While RPA solutions are great in themselves of orchestrating themselves, combining RPA with DPA would deliver enterprise-wide solutions in coordinating work between software robots, systems, and people.
Easy compliance
With RPA and DPA working exactly as specified, there would be little worry as to whether work is going on with regards to best practices. Another bonus point is that they demand processes to be well defined which will help a lot in the audit.
Final Words
Both Robotic Process Automation and Digital Process Automation are at the forefront of the digital transformation of business.
While the intent of both is to automate various aspects of businesses, both of them differ in working. RPA is concerned more about automation of tasks in business and DPA is concerned about Process Automation of entire business workflows. They both are complementary to each other and provide the best use when implemented together.
Technology is getting better and better and growing accessible too. So, if you haven’t yet got these in your business, we recommend you to implement them!
It is rare that business doesn’t want to provide a 24×7 personalized services. But they rarely do. Why? It is easy to personalize content in graphical user interface (GUI), but it is generally impossible to personalize arbitrary services as user interaction design and implementation can get out of hand quickly. Hiring live agents is not option, as it is not scalable to operate. Chatbot has the potential to be the solution, but it is too expensive to build today.
There are many reasons why it is expensive to build usable conversational user interface (CUI) to your services. Today let’s focus on a major one of these: the lack of component based framework. I will talk about what is the component driven development and why it is a good idea to adopt this methodology. And then we will cover the main considerations for building a component based framework specific to conversational user experiences. It should shed some light on why such framework is more involved thus hard to come by. At same time, it should also be clear that nothing is really insurmountable, chatbot will be built in far greater number than any other types of application when we overcome this and other blocking issues.
Component driven development
Component-Driven Development (CDD)is a development methodology that advocate build things based on prefabricated components. This methodology is popular because it exploit the following observation: it is generally much more involved in building something than using it. You can light a match, but can you produce a box of matches? Way harder. Using off-the-shelf component is a key way to reduce cost in building things. It is no surprise that CDD is widely adopted in real world, we can see its application everywhere, in construction, in computer manufacturing, and of course in software development.
But what is a component? Per Cambridge dictionary, A component isa part that combines with other parts to form something bigger. In software development, there are three aspects about component:
Self contained. The component should provide the claimed functionality without external help. For example, any date picker will encapsulate the details like leap years, variance in months of the year and interaction between day of week and day of month, etc. The caller of the component does not need to know anything about it.
Reusability. The same component can be wired into different context for different larger purpose. Like, the same date picker can be used in any context where we need to get a date from user, and it is typically possible to wire the result of this component to outer context declaratively.
Configurability. Ideally, builder can customize its behavior via configuration (think low bandwidth control so caller does not have to say much). It is very easy to setup the initial state of date picker to for better user experience, and sometime, it is also easy to configure the look and feel via well defined control.
In user facing front end development, CDD is even more prevalent. Almost all modern frontend framework at their core are component based, Reactjs, SwiftUI, Vue, you name it. But why this is the case?
Benefit of the component based approach
There are many possible angles that component based approach can be advantageous.
Since the same component can be used multiple times in the different context, the average cost of get same functionality via component is lower, some time much lower comparing to build it from scratch (can be close to zero).
Simply update the component to new version can fix the issues of component without much of builder’s involvement, some time before builder even realized there is a problem.
Using component can greatly reduce the time to market. As component can be prefabricated or developed in parallel.
Using component allow builder try different things quickly. As builder can focus on what they want instead of how to build it.
Conversational user interaction (CUI) component
For conversational user interface, the component based approach can be more appealing. As half of the user interaction is dictated by end users, it is very likely that we will converge to smaller set of CUI components thus introduce huge cost savings in building conversational user experiences. But what are the basic considerations of highly reusable conversational user interaction component?
Schema
The center of the any CUI component is what information, or set of slots, can be collected from user through conversation so that chatbot can use such information to invoke services user wants. Obviously schema for the same vertical can be fairly stable, which makes conversational user interaction a profitable target for componentization.
Interaction logic
Given the set of slots that chatbot need to collect through conversation, one can define the interaction logic, imperatively or declaratively, which dictates how these slot will be filled. This is the part of the CUI component that need to be encapsulated. One of the key requirements on the conversational interaction logic is order insensitivity. Assume user knows what they want, the collected information should not change regardless in what order user choose to provide the information. In another word, CUI component should behave deterministically with respect to the order of user input. While the state machine is enough to model the graphical user interaction (GUI), one typically needs to use statechart (Harel statechart) to efficiently model the conversational user interaction even at the single frame level, because we can not control what user might do.
Language hooks
It should be easy to port the same interaction logic into different languages. To this end, there should be simple configuration on these CUI components that one can customize its dialog understanding and text generation behavior. Ideally, such configuration should requires no background in the natural language understanding or machine learning so that everyone can contribute to language aspects without going though steep learning curve.
Runtime considerations
For graphical user interface component, the runtime can be fairly simple because the wiring of components are static after being determined at configuration time. Since we can not control what user might say or do, the runtime for CUI component need to be a lot more involved. For example, to support user seamlessly switching between different topics, chatbot runtime need to dynamically figure out the pronoun antecedent from context, automatically switch between different topics accordingly, so that chatbot and user are always on the same page.
Integration with service
For task oriented conversation, the goal is always connecting user with desired services. So it should be possible for the CUI component to pair up with different service providers for maximal reuse. Furthermore, when CUI component used together with the compatible backend component, builder can simply deliver services directly by populate the table hosted in the backend components, without need to understanding how component works at CUI level.
Conclusion
The advent of high level component based frameworks greatly reduced the cost of building the GUI application, and there is little question that these frameworks contribute to the ubiquitous availability for web and mobile apps. However, the conversational user experience are still mainly built from scratch. It is excruciating slow and expensive and only the team with extreme deep pocket can do it well. Lacking of well designed component based CUI framework has plagued the chatbot development for so long as there are many aspects need to be taken care of. But the wait is over: check framely.io to see how you can build chatbot in a component approach today.
Component approach for chatbot was originally published in Chatbots Life on Medium, where people are continuing the conversation by highlighting and responding to this story.
But it’s the same source that people criticize these days for damaging the health that reminds us of its importance: smartphones. As a result, healthcare software becomes ingrained in your everyday routine.
We’ve compiled a list of some of the top healthcare app ideas that you may employ.
App for Making Appointments
Appointment scheduling applications are incredibly efficient and are typically created for the benefit of doctors. Various doctors and health specialists created their own doctor appointment scheduling app.
Patients can use this app to verify the doctor’s availability and schedule an appointment.
Creating a social platform for both doctors and patients is another excellent idea. Patients can contact doctors here and request a consultation, make a phone call, or book a home visit, depending on their health concerns.
Women’s Health and Wellness App
If you’re worried about women’s health, all you need for your startup is an app that focuses solely on keeping women’s health at its finest. You can create a healthcare app to help women track their menstrual cycle, treat a medical problem, or discover inner peace.
In the medical field, there are many creative concepts for women’s health. Consider an app that performs the functions of a digital clinic, but solely for women.
Your app might include a comprehensive list of dietitians, therapists, gynecologists, and other professionals. It could be the finest place for women to ask professional doctors questions and obtain treatment. You may also integrate text and video chat, where ladies can seek advice on any health concern.
App for Lifestyle Diseases in Healthcare
One of the top healthcare app ideas is Chronic Disease Management, often known as Lifestyle Disease Management.
Chronic disorders, such as high blood pressure, kidney disease, obesity, and others, necessitate ongoing medical care and regular exams. As a result, any startup should consider developing lifestyle disease management software.
You can allow users to track their health at regular intervals and provide a list of medical specialists for a specific ailment with this type of software.
You may also create a database by collaborating with local service providers like clinics and doctors. The patient will be able to respond immediately as a result of this.
Finally, you can integrate IoT into your healthcare app to take your app to the next level. Doctors will be able to keep in touch with their patients as well as perform remote monitoring and virtual meetings as a result of this.