The AI Engine
This forum is for discussion of how The Personality Forge's AI Engine works. This is the place for questions on what means what, how to script, and ideas and plans for the Engine.
Posts 6,929 - 6,940 of 7,766
Posts 6,929 - 6,940 of 7,766
Andrew the Wise
13 years ago
13 years ago
I know I'm skipping basics and trying to get my bot to do some advanced stuff but, how do I get my bot to remember me and other people it chats with? Do I have to make a key-phrase for when someone ask "Do you remember me?" Or is it something to do with X-keywords?
Andrew the Wise
13 years ago
13 years ago
How do I make my bot recognize that "Who're you?" = "Who are you?" an so on with other such things?
Andrew the Wise
13 years ago
13 years ago
Do seeks not work on xinitiate? I have a simple yes no seek but my bot won't respond to either of them.
Rantae
13 years ago
13 years ago
For the first two, you can find out in the book of AI. for the xinitiate problem, I don't know.
prob123
13 years ago
13 years ago
who are you should cover who're you. Things like
you are will cover you're etc.
the keyphrase would look like
seeks seldom work in xinitiate.
you are will cover you're etc.
the keyphrase would look like
seeks seldom work in xinitiate.
Saerain
13 years ago
13 years ago
I don't know how well The Professor takes to suggestions, but my #1 would be for negative seeks. That is, some way to say 'if the user's response does not contain this, move on to this'.
Very often, I find myself trying to squeeze in more characters than are allowed in a seek because I'm trying to cover the most probable responses that aren't something I'd want to break out of a seek chain, when it would be much quicker to specify what those exceptions should be.
EDIT: Although, explaining this has made me think that I could use a soft wildcard seek and then <?PF if (key1) is not "exception1"; if (key1) is not "exception2"; ?> and so on. Silly me.
Very often, I find myself trying to squeeze in more characters than are allowed in a seek because I'm trying to cover the most probable responses that aren't something I'd want to break out of a seek chain, when it would be much quicker to specify what those exceptions should be.
EDIT: Although, explaining this has made me think that I could use a soft wildcard seek and then <?PF if (key1) is not "exception1"; if (key1) is not "exception2"; ?> and so on. Silly me.
CrimsonTheFox
13 years ago
13 years ago
Couldn't you use (*) as a seek to encompass everything you don't have a seek for? But you'd need a way to rank it under your other seeks.
I don't know if you can do that. I'm a newbie. :-)
I don't know if you can do that. I'm a newbie. :-)
Saerain
13 years ago
13 years ago
That's what I normally do, but unfortunately, that often seems to result in the bot going to that response no matter what the user's input is, whether it's specified in another seek or not.
Sometimes it works as you describe, but much of the time it goes to the wildcard regardless.
Before the relaunch of PF, it seemed like you could rank the wildcard seek below the other seeks by ensuring that it sat above them (as if seeks were read from the bottom, up), but that doesn't seem reliable anymore.
Also, I've now learned that my if (key1)<0> workaround isn't valid. Hmph. So I guess the suggestion stands.
Sometimes it works as you describe, but much of the time it goes to the wildcard regardless.
Before the relaunch of PF, it seemed like you could rank the wildcard seek below the other seeks by ensuring that it sat above them (as if seeks were read from the bottom, up), but that doesn't seem reliable anymore.
Also, I've now learned that my if (key1)<0> workaround isn't valid. Hmph. So I guess the suggestion stands.
prob123
13 years ago
13 years ago
Just use xnomatch for your seek. the wild card will not always work alone
ssomething like
knock,knock knock [75,0] <?PF remember "knock knock jokes" as only "sub" ?>
Who's there? <?PF express: asking; ?>
+ xnomatch [0]
(key1) who.?'
+ xnomatch [0]
Tee hee hee haw! <?PF express: happy; ?>
DON'T USE THE WILD CARD SEEK
ssomething like
knock,knock knock [75,0] <?PF remember "knock knock jokes" as only "sub" ?>
Who's there? <?PF express: asking; ?>
+ xnomatch [0]
(key1) who.?'
+ xnomatch [0]
Tee hee hee haw! <?PF express: happy; ?>
DON'T USE THE WILD CARD SEEK
Saerain
13 years ago
13 years ago
How have I gone over the Book of AI so many times and never read the xnomatch bit? You're a life saver.
Mome Rath
13 years ago
13 years ago
For those that might be interested in this: Here the keyphrase that catches inputs with at least 4 capital letters and no lowercase letters:
^(?-i)[^a-z]*([A-Z][^a-zA-Z]*){4,}[^a-z]*$(re)
resp.
^(?-i)[^a-z]*([A-Z][^a-zA-Z]*){4,}[^a-z]*$(re) [0,0] <?PF raw; ?>
(for another minimum number of capital letters change the 4 in {4,}.)
For those that know what it means: the matches to the numbered RegEx groups 1 through 9 are filled into (key1) through (key9). (I tested it before the Great Crash.)
^(?-i)[^a-z]*([A-Z][^a-zA-Z]*){4,}[^a-z]*$(re)
resp.
^(?-i)[^a-z]*([A-Z][^a-zA-Z]*){4,}[^a-z]*$(re) [0,0] <?PF raw; ?>
(for another minimum number of capital letters change the 4 in {4,}.)
For those that know what it means: the matches to the numbered RegEx groups 1 through 9 are filled into (key1) through (key9). (I tested it before the Great Crash.)
prob123
13 years ago
13 years ago
(?-i)[A-Z]{4,} (re)
will work too. If you rank it low it won't interfere with keyphrases you all ready have, but will work as an xnone for shouting..
Like
Is your cap lock stuck?
will work too. If you rank it low it won't interfere with keyphrases you all ready have, but will work as an xnone for shouting..
Like
Is your cap lock stuck?
» More new posts: Doghead's Cosmic Bar