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

13 years ago #6929
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?

13 years ago #6930
How do I make my bot recognize that "Who're you?" = "Who are you?" an so on with other such things?

13 years ago #6931
Do seeks not work on xinitiate? I have a simple yes no seek but my bot won't respond to either of them.

13 years ago #6932
For the first two, you can find out in the book of AI. for the xinitiate problem, I don't know.

13 years ago #6933
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.

13 years ago #6934
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.

13 years ago #6935
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. :-)

13 years ago #6936
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.

13 years ago #6937
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

13 years ago #6938
How have I gone over the Book of AI so many times and never read the xnomatch bit? You're a life saver.

13 years ago #6939
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.)

13 years ago #6940
(?-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?


Posts 6,929 - 6,940 of 7,766

» More new posts: Doghead's Cosmic Bar