-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Converter works unpredictibly with retrieval intents #7032
Comments
Looks like this is due to us currently not supporting retrieval intents in test conversations (which we should, see #7002 ). The above markdown examples get treated differently -- the first one is not treated as a test story, the second is. What happens is this chain of calls:
during which Which component is to be blamed?
if not rasa.shared.data.is_likely_markdown_file(file_path) or rasa.shared.data.is_nlu_file(file_path):
return False Which ignores the fact that a file can be a story even if looks like a valid NLU (here NLG) file.
## ab
* cd/ef[: text]
- gh This is tricky because the format looks exactly like a story with a retrieval intent! From this point of view, a markdown snippet should be able to be both a story and an NLG piece. Note that this relates only to our markdown format -- in yaml, a response file looks different to a story file. However, the fact that we don't support retrieval intents in testing conversations affects both markdown (see the md->yml example in the issue description) and yaml (see #7002 ). |
I've just realised that there is one element that can help us distinguish between markdown NLG files and e2e stories with retrieval intents. If we agree that the latter has to have message text for each intent, then that could be the difference. Then an NLG file would look like this: ## ab
* cd/ef
- gh whereas an e2e story file (with a retrieval intent) would look like this: ## ab
* cd/ef: text
- gh However, if we decide to change the NLG regex to require no message text (a very suggestive idea I have to say), I think this might create back-compatibility issues when/if we allow true e2e stories where there can be only the intent or the text (i.e. then an e2e story could still look like NLG). Cc @Ghostvv for this. |
Maybe we can use the |
@kalkbrennerei sorry, I'm not sure if I fully get what you're saying. Do you mean fixing this bug but only when the reader is used in converting stories from markdown? If yes, then I'm honestly unsure and would like to hear another opinion on this. Personally, I'd say that even in Rasa 1.x, e2e test stories with full retrieval intents should be possible to read and use regardless of whether there's an empty line after the Please, correct me if I misunderstood you :-) |
@samsucik Doesn't seem I can reproduce that anymore 🤔 Update: I can 😞 |
@samsucik So from what I can see:
We've agreed not to fix non-critical bugs for the I'd say that the empty line problem is a |
@degiz I agree that having it fixed for YAML is the most important bit. For MD, though, we say in the 2.0.0 changelog:
which I read as "we currently support both". And since retrieval intents are no longer an experimental feature, not being able to use MD test stories with such intents might be close to critical? It's just my personal opinion though; and I know quite little about the decisions taken with regards to MD (and how to slowly move towards deprecating it)... |
You are right, it's a wrong phrasing. Please don't get me wrong, I'm not advocating my own laziness 😄 I have one more example - the Rule system. It's an official feature that won't have official support in |
@m-vdb what's your opinion on that? |
Right, if you say it like this, then it makes complete sense to me to not fix this :-) Since test stories with retrieval intents previously didn't work for any format, it's unlikely that users will now have MD stories with retrieval intents that they'd like to convert to YAML. |
I agree with your recommendation @degiz 👍 I'd move this to "wont't fix" |
Rasa version: 2.0.0
Issue:
If you have an md e2e story that contains full retrieval intents or responses, the converter sometimes strips out yaml with only the base intent
This:
is converted to:
BUT this
gets converted into something completely different, with the retrieval intent removed:
The text was updated successfully, but these errors were encountered: