Great, that makes sense!
Flair looks nice too, but one of the thing that I like about RASA is that it also has a dialogue manager (RASA Core) that uses a machine learning model trained on example conversations to decide what to do next, so you don’t have to code a complex mess of if/then/else statements. And it also has an action server to do something with the recognized intents. For instance, I have now running RASA NLU + Core + actions on a toy example that lets me ask information about the state of a specific Home Assistant entity (using Home Assistant’s REST API) and answers me.
This is all using a text interface for now. But I have taken a look at the RASA integration in Rhasspy’s code and I’ll see if I can link my RASA setup to Rhasspy. I noticed that Rhasspy only uses RASA NLU, so I have to try if the RASA Core part keeps working then, because when I only train the NLU manually my RASA actions don’t work (they need a trained Core model too).
I’m not sure yet I will take the full RASA stack route. It’s impressive, but I’m probably not going to need it all. Currently I’m running no dialogue manager and I’m running actions in Home Assistant’s AppDaemon and that works fine for simple stuff. So just linking RASA NLU to Rhasspy is already very useful.
I also wasn’t able to run their latest Docker image, but after some debugging the reason became clear: their TensorFlow package is compiled with AVX extensions and my CPU doesn’t have these. So I just set up RASA in a Python virtual environment with an alternative TensorFlow wheel and this works.