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,078 - 6,093 of 7,766
Posts 6,078 - 6,093 of 7,766
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.
The Clerk
17 years ago
17 years ago
Okay, thanks for that part, Ulrike. Now how do I save the answer (like, yes or no)? I am slow with this. Sometimes the variable's on the left, sometimes it's on the right, sometimes it's in quotations, sometimes it's in parentheses and quotations . . . I do go looking for this stuff, but when I try regex, it doesn't quite work all the time, and there's not really much about it in the Book of AI. (In my defense, because I feel like a pox upon the forums.) 

Ulrike
17 years ago
17 years ago
Ummm... I'm not sure why you want to save the answer, if it's the gender in particular you're after. But you could add on something like
<?PF rem "female" as only "(sex)"; rem "yes" as only "variablename"; ?>
You only need parentheses to call up the variable in a response, or to separate off (key)s.
<?PF rem "female" as only "(sex)"; rem "yes" as only "variablename"; ?>
You only need parentheses to call up the variable in a response, or to separate off (key)s.
» More new posts: Doghead's Cosmic Bar