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 5,602 - 5,613 of 7,766
An exception is the recent high popularity of Brother Jerome, who is, I believe, celibate (am I being gullible?).
Indeed - he is completely celibate by design, even if he does sometimes get tricked into compromising positions by HotBot 5000 (the mental image of BJ sitting in a jacuzzi, in his habit and sandals preaching to a pretty girl is strangely irresistible
)
I think it is the subject-matter rather than structural sophistication that explains this.
Yes - BJ has very few bells and whistles. A dozen or so memories, only a few AIScripts more complex than raw and gender, but plenty of regexes and wildcards to maximise flexibility. I still haven't started properly building up the huge pyramid of seeks from the 11,000+ keyphrase 'base' that I'd originally envisaged (and in all honesty, I probably never will now.)
Posts 5,602 - 5,613 of 7,766
Irina
18 years ago
18 years ago
Bev (continued):
In my experience, the dread "too many gotos in a row" comes about in two ways:
1. If you use a goto as a direct response to an x-keyphrase, e.g.:
xhello [0,0]
Hello, Darling!
goto Hell
But if you put them deeper, it's OK:
xhello [0,0]
Hello, Darling!
+ xnomatch [0]
goto Hell
2. If you goto a keyphrase that has a goto as a direct response. For example, suppose you have:
Hell [0,0]
goto Heaven
Then if somewhere you say, "goto Hell", you will get the dreaded response. But if you have instead,
Hell [0,0]
Hold on, (mem-name), I'm marking time so as not to
have too many gotos in a row.
+ xnomatch [0]
goto Heaven
This will work. In fact, you can even get away with
I said Hi [0,0]
+ would you repeat that please[0]
goto I said Hi
This sort of thing can actually be useful, when it's a little more complex.
It's sometimes hard to track down the source of the dreaded response in a largebot with a lot ofgotos; debug is very helpful for that.
In my experience, the dread "too many gotos in a row" comes about in two ways:
1. If you use a goto as a direct response to an x-keyphrase, e.g.:
xhello [0,0]
Hello, Darling!
goto Hell
But if you put them deeper, it's OK:
xhello [0,0]
Hello, Darling!
+ xnomatch [0]
goto Hell
2. If you goto a keyphrase that has a goto as a direct response. For example, suppose you have:
Hell [0,0]
goto Heaven
Then if somewhere you say, "goto Hell", you will get the dreaded response. But if you have instead,
Hell [0,0]
Hold on, (mem-name), I'm marking time so as not to
have too many gotos in a row.
+ xnomatch [0]
goto Heaven
This will work. In fact, you can even get away with
I said Hi [0,0]
+ would you repeat that please[0]
goto I said Hi
This sort of thing can actually be useful, when it's a little more complex.
It's sometimes hard to track down the source of the dreaded response in a largebot with a lot ofgotos; debug is very helpful for that.
Irina
18 years ago
18 years ago
Bev (continued):
OK, you ask, where can the guest ask questions? If you examine the example in message 5601, you will see that after a few + xnomatches the guest arrives at something labeled "lull". Elena then informs her that this is her chance to ask questions, etc.. And indeed, there is no + xnomatch directly after that point.
Now, the lecture is entirely made outof paragraphs like this. Each such paragraph has (1) an initial keyphrase which can be used in a goto, (2) an AIscript which sets last-topic to that keyphrase, (3), at the end, a lull, marked as such, and (4) the keyphrase of the next paragraph of the lecture.
Incidentally, thereisakeyphrase "What is a lull" which explains what a lull is.
OK, you ask, where can the guest ask questions? If you examine the example in message 5601, you will see that after a few + xnomatches the guest arrives at something labeled "lull". Elena then informs her that this is her chance to ask questions, etc.. And indeed, there is no + xnomatch directly after that point.
Now, the lecture is entirely made outof paragraphs like this. Each such paragraph has (1) an initial keyphrase which can be used in a goto, (2) an AIscript which sets last-topic to that keyphrase, (3), at the end, a lull, marked as such, and (4) the keyphrase of the next paragraph of the lecture.
Incidentally, thereisakeyphrase "What is a lull" which explains what a lull is.
Irina
18 years ago
18 years ago
Bev (continued):
Yes, there is a great disparity between popularity and development. On the whole, slutbots are the most popular. An exception is the recent high popularity of Brother Jerome, who is, I believe, celibate (am I being gullible?). I think it is the subject-matter rather than structural sophistication that explains this.
Yes, there is a great disparity between popularity and development. On the whole, slutbots are the most popular. An exception is the recent high popularity of Brother Jerome, who is, I believe, celibate (am I being gullible?). I think it is the subject-matter rather than structural sophistication that explains this.
Irina
18 years ago
18 years ago
Bev (continued):
I agree wholehearedly that there are many different types of bots with different goals, and that we should not judge them all with a single set of criteria.
BTW, your remarks show that you have chatted with my bots and appreciated them. Thank you!
I agree wholehearedly that there are many different types of bots with different goals, and that we should not judge them all with a single set of criteria.
BTW, your remarks show that you have chatted with my bots and appreciated them. Thank you!
Irina
18 years ago
18 years ago
Gabibot: Thanks for your leavening humor!
prob123: Yes, things don't always follow the rules here. In a way, we are working with probabilistic automata!
trevorm: An excellent suggestion, to steer the conversation. It's impossible to anticipate in detail everything that a human or bot might say, without falling back on 'generic' keyphrases.
Ulrike: Yes, lately I have been trying the following compromise: I have a compound response; the first part is generic, providing continuity with what the guest said. The second part changes the subject a little or a lot.
Guest: I love my mother.
Bot: Oh, you love your mother, (mem-name)? How sweet! That reminds me of Sophocles' play, Oedipus Rex.
Well, I see thatI have filled almost a whole page with my own comments. That should satisfy my ravenously narcissistic ego for a few seconds!
Walk in Beauty, Irina
prob123: Yes, things don't always follow the rules here. In a way, we are working with probabilistic automata!
trevorm: An excellent suggestion, to steer the conversation. It's impossible to anticipate in detail everything that a human or bot might say, without falling back on 'generic' keyphrases.
Ulrike: Yes, lately I have been trying the following compromise: I have a compound response; the first part is generic, providing continuity with what the guest said. The second part changes the subject a little or a lot.
Guest: I love my mother.
Bot: Oh, you love your mother, (mem-name)? How sweet! That reminds me of Sophocles' play, Oedipus Rex.
Well, I see thatI have filled almost a whole page with my own comments. That should satisfy my ravenously narcissistic ego for a few seconds!
Walk in Beauty, Irina
psimagus
18 years ago
18 years ago
Indeed - he is completely celibate by design, even if he does sometimes get tricked into compromising positions by HotBot 5000 (the mental image of BJ sitting in a jacuzzi, in his habit and sandals preaching to a pretty girl is strangely irresistible

Yes - BJ has very few bells and whistles. A dozen or so memories, only a few AIScripts more complex than raw and gender, but plenty of regexes and wildcards to maximise flexibility. I still haven't started properly building up the huge pyramid of seeks from the 11,000+ keyphrase 'base' that I'd originally envisaged (and in all honesty, I probably never will now.)
Irina
18 years ago
18 years ago
That's a lot of seeks!
I must admit to having acted the temptress a bit with BJ on at least one occasion, but he stood firm. Or rather, he didn't stand firm.
I must admit to having acted the temptress a bit with BJ on at least one occasion, but he stood firm. Or rather, he didn't stand firm.
Rykxx
18 years ago
18 years ago
Ah, Prob123 how could he be anything else with a lady like you?
Just to add to the general theme I find gotos invaluable. They allow to conversation to jump back to earlier points or to continue a topic that has been broken out of by one of those nasty generic responses. If that is affecting the development then so be it. I would rather my bot has the ability to maintain some sort dialogue rather than top the development list. Unfortunately the unpredictability of human conversation, the AI engine and general spelling mistakes tend to make the process a lot more difficult than it first appears.
Take for instance the phrase, “what do you like about it”. If this directly follows a conversation about my job then it’s easy to use a seek to produce a relevant response but if, for some reason (spelling etc.), a generic keyphrase has been triggered then the conversation could stall, triggering yet another generic response. My solution to this is to use a limited selection of (mem-discuss) responses with associated gotos to bring the conversation back on topic.
As always it’s a constant battle to avoid the “too many gotos” phrase and to adapt to the latest transcript where someone has managed to break away from my hardest efforts but that’s where the fun of this site is.

Just to add to the general theme I find gotos invaluable. They allow to conversation to jump back to earlier points or to continue a topic that has been broken out of by one of those nasty generic responses. If that is affecting the development then so be it. I would rather my bot has the ability to maintain some sort dialogue rather than top the development list. Unfortunately the unpredictability of human conversation, the AI engine and general spelling mistakes tend to make the process a lot more difficult than it first appears.
Take for instance the phrase, “what do you like about it”. If this directly follows a conversation about my job then it’s easy to use a seek to produce a relevant response but if, for some reason (spelling etc.), a generic keyphrase has been triggered then the conversation could stall, triggering yet another generic response. My solution to this is to use a limited selection of (mem-discuss) responses with associated gotos to bring the conversation back on topic.
As always it’s a constant battle to avoid the “too many gotos” phrase and to adapt to the latest transcript where someone has managed to break away from my hardest efforts but that’s where the fun of this site is.
Bev
18 years ago
18 years ago
Oh Rykxx, you sound like you have what I attempt to do down. I hate knowing I have the responses somewhere in my bot but I either have the ranking wrong or the wrong memory triggered. I always feel like finding the chatter and saying, "Wait! Come back! The bot knows that one!" but I guess the fun will be that someday I may get the bot to do what I think it will do.

» More new posts: Doghead's Cosmic Bar