Some feedback about Rasa-related stuff in general

These are just my thoughts, perhaps not everyone would agree with all of them.

  1. It took me 2 weeks of googling NLP and NLTK before I came across Rasa, that was only when I started looking for a way to extract entities. Before that I didn’t find you guys so I spent time working on a different kind of chatbot based on NLTK. Better SEO on your side could have saved me 2 weeks.
  2. You need to set up some spam filter on this forum or limit the posts of spammers in some way.
  3. There is a stunning lack of documentation for building a non-english language chatbot (not only from you but in general on the web), especially for languages without a pretrained dataset or even a proper corpus. Nobody cares about this topic even though almost all languages fall under the category of “not English” and most of them have no pretrained datasets. I’m Hungarian, I’m trying to develop a chatbot that communicates in Hungarian, so I have all kinds of issues what I don’t see documented or shown in videos or tutorials.
  4. A lot of words you guys use in your docs are difficult to define for someone who is not as advanced at NLP (or at programming in general) as you, especially if English is not even one’s native language. It would be great if you’d have at least some definition of such words, like what you call policy for example - or if you’d have tutorials for beginners where regular words are used instead.
  5. More descriptive, longer code examples for how things get added to a program would help greatly. I still can’t figure out how form events work, for example.
  6. Please annotate Youtube videos you have of using older versions of Rasa to make viewers understand that your software no longer works that way, and possibly even link to videos of using the current version if you have such.
1 Like

Hi @ggabor

Firstly, I wanted to thank you for taking your time to write out these detailed thoughts and suggestions.

  1. I will pass your feedback along to see if there are improvements to be made on the SEO side, of course we don’t want people having trouble finding Rasa! :slight_smile:

  2. To give some insights, we currently have a system that helps us detect spam on the forum, and we actively monitor both that and the forum itself on a day to day basis. In case you spot someone intentionally spamming or breaking our Code of Conduct in another way, we also encourage you to also use the Flag function, which is indicated by a flag icon at the bottom of each post. Finally, in the long-term we also hope to expand our moderation team to support us in keeping the forum a tidy and pleasant space.

  3. I just wanted to ensure that you have found this section of our docs Language Support. If you check specifically Training a Model in any Language it explains how Rasa’s supervised_embeddings pipeline can be used to train models in any language. If you have further ideas on how we could expand it in a way that would be beneficial for you and other developers, please let us know. We are always happy to support you along the way here on the forum too.
    Provided that you decide to give this your best shot and pave the way for others by contributing it, we also add these sorts of contributions to our newsletter and social media which could help finding others interested in expanding the project. I’m happy to give more insights on how our contributor program works if you’re interested to know more.

  4. To understand correctly, you would like to have a Glossary of words, terms and acronyms? Did you manage to check this one? We can certainly grow this section, and would welcome any additional suggestions you have.

  5. You mentioned specifically “More descriptive, longer code examples on how things are added to a program”, could you expand a little more on this? Is it specific to Stories, or do you have more examples?
    Of course, if you have any questions regarding Rasa or Rasa X that you need help with, always feel free to start a question topic here on the forum.

  6. That’s a great suggestion, we are planning to make improvements to our YouTube channel and this will certainly go on the list.

Hope this is helpful, please do not hesitate to get in touch if you have any feedback or questions.

Thank you for your reply. Here are my answers to your questions.

  1. I did find the language support page, but it only deals with the simplest, most common solutions, it doesn’t deal with anything more problematic. For example there is no SpaCy language pack for Hungarian, so I had to convert a fastText version into SpaCy. I was told in a response to another question I asked here on the forum to simply switch out pretrained_embeddings_spacy to pretrained_embeddings to make it work. But where should I put the files? How will my model find them? - I already solved these problems by now, but it gave me quite a headache to find a solution. Your forum proved to be the best place for it though, which is great.
  2. Yes that glossary is what I was thinking of - I didn’t notice it before but now I checked and see it’s actually in the menu. That’s obviously on me. What I would suggest though is to actually connect the words to the glossary definition via links or little popups or something, so one wouldn’t have to scroll all around in the glossary - granted, it’s not a big glossary right now but if you’ll extend it later, it’ll quickly become burdensome.
  3. What I mean in this point is actually not only about codes (as I have come to realize in the meantime that your system works quite differently), it’s also about explanations in general. I must admit that I’m not very advanced with machine learning, so this may just be me but I think it could help reduce the amount of time people would spend browsing your docs trying to figure things out instead of actually doing it.
    In every other method of creating a chatbot I’ve encountered so far it always started with writing Python code, importing the packages the bot will be based on like nltk and such, and then creating the bot - in Python, with code. Then in the end you’d fire up a server and run your Python code on it, like you do with a Flask website or similar. Normal stuff. Your system works basically the opposite way, and it took a lot of reading to just grasp this fact because I was expecting to end up with a similar system to what I saw before in the end, and not having found anything related to that “normal stuff” in your docs confused me. So the fact that your bot is essentially an API ran on a different server and you can send calls to it from any other python script should, in my opinion, be made more apparent at the very beginning of your docs. But again, it may just be me who had an issue with this.
    Another example: if you go to the Lookup Tables menu in your docs, you see that it jumps right into how to deal with lookup tables, there’s nothing about what they are or why you’d want / need to use one (and it’s also not in the Glossary). I had to comb through a big chunk of the docs before I got around to have some idea about what these could be about. But I still don’t understand why use lookup tables instead of databases, for example. Dbs are typically what we use for storing product information, so what’s the point of lookup tables? It’s not discussed.
    And regarding codes, two things: first, what makes actions with utter_ and respond_ special? Why are they separate? It doesn’t get explained in the docs and from videos I’ve seen these seemed completely arbitrary names, nothing special. Second, I only found a single custom action code example in the documentation, one about ordering mexican food. I can’t find any details on other cases, special cases, and everything else related to Rasa what needs to be coded manually in Python. For example: this is a line of code in the example action: cuisine = tracker.get_slot('cuisine') which returns one item. But what happens if there are more "cuisine’ entities given by the user because for example they want italian or mexican? How will the returned value change, or is there perhaps a get_slots() method for multiple items? Where do I find info about this?

This turned out to be a lot longer than I planned, I apologize.

1 Like

Hey again @ggabor,

Hope you had a pleasant weekend.

I’d definitely be interested to know if others are experiencing the same issues. We appreciate you sharing your feedback and examples on our docs, this helps us to locate issues much faster and prioritise improvements, and I will be sure to note down each of your points and take a look into it.

Right now, if you cannot find the information you’re looking for on our Docs, it could also mean that simply does not exist yet. Then as previously mentioned, the best thing to do is to create a separate topics here on the forum, in the correct category, so that information does not get confused or lost. This way our team can take a look and support you asap.

If you have more feedback on our docs or anything at all, always feel free to share it with us.