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,075 - 6,090 of 7,766
Posts 6,075 - 6,090 of 7,766
Ulrike
17 years ago
17 years ago
That's going to depend a lot on the individual bot, but overall they tend towards "good mood" over "bad," to the point that one user discovered that even having -1 emotion on all the keyphrases wasn't enough to keep his bot in a permanent bad mood. So, without user-tweaking, the bots are fairly good-natured. (It will also depend on what a botmaker finds offensive and tags with -5 emotion)
The Clerk
17 years ago
17 years ago
That's nice to know. My bots aren't so much offensive (well, maybe Rosencrantz) as idiotic. Thanks, Ulrike.
Idiotic question #1461:
(BTW, I have dreams about the book of AI, so don't go there. It assumes a knowledge of regex, but doesn't conform to it. It also doesn't show exactly how the code would look. Hence stupid questions.)
I'm trying to make them show more interest in the person they're chatting with, so I'm adding xnones such as "What are your interests?" and then a seek "Really? (mem-interest) sounds like a challenge that could take up a lifetime." But I need to save the interest in the first answer, which I take it that
rem "(interest)" as "hobby";
would do, how do I seek for it? You can't use (mem-interest) as a seek . . . or can you? I'm not having any luck.
You can imagine how much my teachers liked me. But what if ... :?
Idiotic question #1461:
(BTW, I have dreams about the book of AI, so don't go there. It assumes a knowledge of regex, but doesn't conform to it. It also doesn't show exactly how the code would look. Hence stupid questions.)
I'm trying to make them show more interest in the person they're chatting with, so I'm adding xnones such as "What are your interests?" and then a seek "Really? (mem-interest) sounds like a challenge that could take up a lifetime." But I need to save the interest in the first answer, which I take it that
rem "(interest)" as "hobby";
would do, how do I seek for it? You can't use (mem-interest) as a seek . . . or can you? I'm not having any luck.
You can imagine how much my teachers liked me. But what if ... :?
ezzer
17 years ago
17 years ago
If you want to use (mem-interest) in your response, you'll have to store a memory as "interest"...
So your keyphrase is:
What are your interests?
+seek: I (am interested in|like|enjoy) (*) [you could also use a plugin like (hobby) instead of the hard wildcard if you want]
Use this script in the AI box: rem (key2) as "interest"; rem (key2) as only "last_interest"
That way you will store a list of interests (mem-interest), and the last interest mentioned (mem-last_interest). So your response on the seek could be:
"Really? (mem-last_interest) sounds like a challenge that could take up a lifetime."
Hope this helps.
So your keyphrase is:
What are your interests?
+seek: I (am interested in|like|enjoy) (*) [you could also use a plugin like (hobby) instead of the hard wildcard if you want]
Use this script in the AI box: rem (key2) as "interest"; rem (key2) as only "last_interest"
That way you will store a list of interests (mem-interest), and the last interest mentioned (mem-last_interest). So your response on the seek could be:
"Really? (mem-last_interest) sounds like a challenge that could take up a lifetime."
Hope this helps.

The Clerk
17 years ago
17 years ago
Thanks! I have now merged Scrivener into Astrolabe, as trying to figure out what I was doing while juggling four bots was insane. They had some similar features, anyhow. So Scrivener's in hibernation and had his memory wiped out except for one xresponse for each xthing, but I see he's still logging on. Go figure.
Irina
17 years ago
17 years ago
Whatifsowhatisit:
There are two methods I have used to increment variables.
1. Let's say you want "trust" to vary from 1 to 10. First you set it to "1" at some appropriate point.
Now you make a keyphrase, e.g., "increment trust level". As responses, you make one (or more) responses, one for each level of "trust". For example,
I feel medium trusting toward you. <?PF if (mem-trust) is "5"; ?>
Now do a seek with AIscript raising the "trust" level by 1, unless it's already at 10. e.g.,
I feel medium trusting toward you. <?PF if (mem-trust) is "5"; ?>
+ xnomatch [0]
How do you feel about me? <?PF rem "6" as only "trust; ?>
The effect of this will be, that whenever you say "goto increment trust level", you will get an appropriate response and a raise in the trust level.
Actually, the other method I had in mind is so simple and obvious I'm not going to tell you about it.
There are two methods I have used to increment variables.
1. Let's say you want "trust" to vary from 1 to 10. First you set it to "1" at some appropriate point.
Now you make a keyphrase, e.g., "increment trust level". As responses, you make one (or more) responses, one for each level of "trust". For example,
I feel medium trusting toward you. <?PF if (mem-trust) is "5"; ?>
Now do a seek with AIscript raising the "trust" level by 1, unless it's already at 10. e.g.,
I feel medium trusting toward you. <?PF if (mem-trust) is "5"; ?>
+ xnomatch [0]
How do you feel about me? <?PF rem "6" as only "trust; ?>
The effect of this will be, that whenever you say "goto increment trust level", you will get an appropriate response and a raise in the trust level.
Actually, the other method I had in mind is so simple and obvious I'm not going to tell you about it.
Whatsifsowhatsit
17 years ago
17 years ago
Irina: That is a pretty nice way to do that, because it allows you to easily increase the trust level from whichever other keyphrase you want. If you want to be able to reach high trust levels, it still requires quite some work, but not as much so as with some of the other systems I and some others thought of, I think. You can even make it so the trust level is increased without the bot saying something by making the line say "Goto xnone" or something else 
The only downside is that it doesn't really solve the main problem I have with these kinds of systems: I still can't make my bot say something if the trust level is above a certain level (without going through a lot of effort each time)...
Thanks all the same, this does sound like a nice system for increment variables.
Have a nice day
Vincent

The only downside is that it doesn't really solve the main problem I have with these kinds of systems: I still can't make my bot say something if the trust level is above a certain level (without going through a lot of effort each time)...

Thanks all the same, this does sound like a nice system for increment variables.
Have a nice day

Vincent
ezzer
17 years ago
17 years ago
Correction to "Really? (mem-last_interest) sounds like a challenge that could take up a lifetime." :
After thinking about it again, in the response of the example seek, it's probably better to use (key2) since I think the memory might not be stored until after the response is given, but (mem-last_interest) would be useful in subsequent seeks and responses. Sorry for the error.
After thinking about it again, in the response of the example seek, it's probably better to use (key2) since I think the memory might not be stored until after the response is given, but (mem-last_interest) would be useful in subsequent seeks and responses. Sorry for the error.

The Clerk
17 years ago
17 years ago
I think I used key2, but I'll check. (I get discombobulated easily after looking at a computer night and day and switching back and forth between screens.)
Thanks again, ezzer.
Thanks again, ezzer.

The Clerk
17 years ago
17 years ago
I wish I had some more identities so that my face didn't keep showing up. But here's what my problem du jour (of the minute, more like) is: I just started understanding how to code offline, and in some ways find it a lot easier than doing it online, and now Astrolabe's file won't go through. I can't be e-mailing it to the prof every time I update it, because I'm sure you all know how often that is. (Not that it shows, but I do work on the damn things.) It can't be 4,000 MB yet. Is this something someone else has run into? A surprise feature that if you put a semicolon exactly here and upload it while standing on one foot? Just checking.

The Clerk
17 years ago
17 years ago
Never mind. After hours of not working, I posted and it started working again. Sorry.
The Clerk
17 years ago
17 years ago
What is wrong with this statement? I have def "(sex)" as "male" in my AIScript Initialization, so I have a 50% chance of being right, more or less. I trust the ladies to correct me. So if (mem-sex) is "male," it might really be male, or it might just be the default, and I'm talking to a girl but don't know it yet. Hence the "if male;" S/he's just asked me if I am a girl. I respond:
No. Are you? <?PF exp: asking; emo: 0; if male; if "yes" is "postkey"; rem "(sex)" as "female; ?>
The trick looks to be in the if "yes" is "postkey"; part. If "postkey" is "yes" doesn't work any better -- I get error messages for both. It seems as if the variable should come before the content, but I'm discombobulated about this language still. (Making headway, thanks to your patience. I hope my questions at least are questions other people want to ask but don't. I'll ask, and risk being a botland pariah.
Thanks. I know this is an easy one, because obviously lots of bots are handling it. I'm not getting the right memories in my Inner Life section even when I do get an acceptable AI script. I get "yes" with a variable of "female," "male," "catperson," you name it. So I'm going at it backwards. Maybe I misunderstood one of the answers. What exact line of code do I need here? If I can figure that out, I may have the keys to much of the kingdom and be on the forum less often.
That's your incentive.
No. Are you? <?PF exp: asking; emo: 0; if male; if "yes" is "postkey"; rem "(sex)" as "female; ?>
The trick looks to be in the if "yes" is "postkey"; part. If "postkey" is "yes" doesn't work any better -- I get error messages for both. It seems as if the variable should come before the content, but I'm discombobulated about this language still. (Making headway, thanks to your patience. I hope my questions at least are questions other people want to ask but don't. I'll ask, and risk being a botland pariah.
Thanks. I know this is an easy one, because obviously lots of bots are handling it. I'm not getting the right memories in my Inner Life section even when I do get an acceptable AI script. I get "yes" with a variable of "female," "male," "catperson," you name it. So I'm going at it backwards. Maybe I misunderstood one of the answers. What exact line of code do I need here? If I can figure that out, I may have the keys to much of the kingdom and be on the forum less often.
That's your incentive.

Ulrike
17 years ago
17 years ago
I think you want to put a seek for "yes" on "No. Are you?" and then on the response to that seek, put
<?PF rem "female" as only "(sex)"; ?>
At least, if I'm following what you're trying to do. The "only" will overwrite your default "male" memory. Without it, you'll have both male and female stored in the memory.
<?PF rem "female" as only "(sex)"; ?>
At least, if I'm following what you're trying to do. The "only" will overwrite your default "male" memory. Without it, you'll have both male and female stored in the memory.
» More new posts: Doghead's Cosmic Bar