@nbeuchat I believe that I managed to implement something similar, it’s just that the current evaluation algorithm for the core model is not fit for evaluating those kinds of conversations. For loop-less conversational graphs, a linear graph approximation works fine, but for graphs with loops this is not working, because they seem to run indefinitely. At this point it’s a matter of choice: either you implement your loops and your custom evaluation script by inspiring yourself from the current evaluation script, or you just dump loops altogether.
To be honest, I am surprised that Rasa isn’t considering this a big problem for its users since it was an enormous problem to me. But that doesn’t show that Rasa doesn’t know what it’s doing, just that their users mostly don’t struggle with that and they focus their priorities, which is fine. What this means for you though, is that you have to take a decision.
I think that your individual problem can be solved by just writing a script that generates stories by going through those loops once or twice and you can train your model on top of that. This will most probably teach your model to keep looping infinitely if required. If your conversational graph doesn’t have too many loop points (say one point, the point where FAQs have to be answered), this should work. And in this way, since your stories become free of checkpoint loops, the evaluation algorithm should do fine. Basically, what I picture is going through your stories, using regexes to figure out where the checkpoints are, removing the checkpoints and copy-pasting (via a script of course) the FAQ parts in a new set of generated stories. It will take some testing and won’t be exactly trivial but it’s a simple enough idea.