I am working on a chatbot with Rivescript and am trying to use keyword triggers in conditional responses.
In the tutorial on the site, it is explained that you can use...
[*]
optionals to ignore parts of a message...
This works fine in the initial prompt + [*] you [*]
but when I try to use this method to capture any response that contains yes
or no
as part of a conditional response it seems to break it? I don't get an error code, but it simply defaults to - So, back to the matter at hand...
as a response.
+ [*] you [*]
- Oh, so we're talking about me now?
+ *
% oh so we are talking about me now
* <star> == [*] no [*] => Whatever...
* <star> == [*] yes [*] => This should be fun.{topic=myself}
- So, back to the matter at hand...
If this were to work I would expect the conversation to go, for example:
User: What do you do?
Bot: Oh, so we're talking about me now?
User: Yes, I suppose so
Bot: This should be fun.
So, is there any way to use conditional responses without an explicit user input? But rather one that just contains a certain response? I imagine this is a problem with using the *
in two instances, both as <star>
and [*]
, but can't work out a solution within the framework? Maybe I'm missing something? I've also tried using *yes*
and *no*
.
Update:
Perhaps, it is a problem with the conditional operator I am using? Maybe ==
is not the correct method for comparing two values when I am simply trying to find out whether one is contained in the other? I've since found the Working Draft but no luck here either...