Newcomers
This is a forum for newcomers to the Personality Forge. Many questions can be answered by reading the Book of AI and the FAQ under the "My Bots" link in the upper corner.
Posts 3,475 - 3,486 of 8,130
(friend) is a plugin, not a memory
Ah. So how would you reframe
if (name) is (friend);
I would use a (mem-friends) memory set to 'remember as' (not 'remember as only') to store the names in. This will append names to the memory, so it can store all your bot's friends' names in it. It might benefit from occasional editing to weed out duplicates, since names will be added each time they chat, even if they're in there already. You could screen for existing entries and avoid duplication (with a tiresome amount of if-ing and seeking,) but it would be a lot more hassle than simply editing the memory occasionally (or just ignore it and let it grow - I don't know what limit might eventually be found to cause problems, I just suppose that tens/hundreds of thousands of entries might eventually start timing out the AIEngine, if nothing else.)
So here's how I'd do it:
set one or more x-introduce and one or more x-hello responses to emotion +5, and all the others to a maximum of +4. These x-keys seem most suitable because one or other is used in every conversation, and is only used once per conversation. Thus the memory won't rapidly overinflate with quite unnecessary duplicates, or fail to register a friend.
On the +5 responses set{?PF remember (name) as "friends"; ?} to ensure that all bots get checked.
Then you should be able to useif (name) is (mem-friends);. It won't record a friend's name on their first chat, but it will do so the next time they chat - if, and only if, your bot like them +5. It also won't remove the name from the file if your bot later grows to dislike a bot. There are theoretical ways of doing this, but occasional manual editing of the file (or memory name-changing to clear the slate and start again,) would be a million times easier anyway.
So here's how I'd do it:
Oops! A perfect example of why posting while cooking is a bad idea - I was distracted by the chilli con carne, and forgot to include a critically important point - you'll have to specify (mem-friends) as a self memory, or you'll end up with multiple memories with different contents for different bots.
Specify it{?PF self: remember (name) as "friends"; ?}, and all should be well.
Posts 3,475 - 3,486 of 8,130
Many questions are answered in the FAQ.
MickMcA
19 years ago
19 years ago
I think I found the HANGUP problem. I do not have punctuation with it, but for one of them, the next line is the next Response, and I had it set to a lacuna (three full stops). The parser has a rough time with punctuation without text. If you don't want your bot to speak, add a stage direction (*looks at you blandly). Need to go check for other punctuation problems.
psimagus
19 years ago
19 years ago
Ah. So how would you reframe
if (name) is (friend);
I would use a (mem-friends) memory set to 'remember as' (not 'remember as only') to store the names in. This will append names to the memory, so it can store all your bot's friends' names in it. It might benefit from occasional editing to weed out duplicates, since names will be added each time they chat, even if they're in there already. You could screen for existing entries and avoid duplication (with a tiresome amount of if-ing and seeking,) but it would be a lot more hassle than simply editing the memory occasionally (or just ignore it and let it grow - I don't know what limit might eventually be found to cause problems, I just suppose that tens/hundreds of thousands of entries might eventually start timing out the AIEngine, if nothing else.)
So here's how I'd do it:
set one or more x-introduce and one or more x-hello responses to emotion +5, and all the others to a maximum of +4. These x-keys seem most suitable because one or other is used in every conversation, and is only used once per conversation. Thus the memory won't rapidly overinflate with quite unnecessary duplicates, or fail to register a friend.
On the +5 responses set
Then you should be able to use
psimagus
19 years ago
19 years ago
Actually Ulrike's "isfriend" solution is probably far neater, unless you need to reference the set of mem-friends elsewhere in conversation, and we have the (friends) plugin to handle that already. But if you're finding (friends) unreliable, my approach should effectively bypass it and give your bot its own 'friends' list. And you might come up with other/more sophisticated criteria for adding friends to it than the crude emotion level, or want to categorize friends in several different sets more subtly without necessarily affecting emotion level and the responses determined by it (eg mem-friendbecausefriendofafriend, mem-friendbecauselikescats, mem-friendbecauselikesmeevenifisabitirritating, whatever.)
Calandale
19 years ago
19 years ago
You should probably implement a search function on the forums
This thread is especially large
This thread is especially large
Ulrike
19 years ago
19 years ago
I think that's on the Professor's "to do" list. I have no clue how much work it would be, though.
prob123
19 years ago
19 years ago
The nice thing is you can always ask about a topic over and over again..The people here are nice and will always help.
psimagus
19 years ago
19 years ago
Oops! A perfect example of why posting while cooking is a bad idea - I was distracted by the chilli con carne, and forgot to include a critically important point - you'll have to specify (mem-friends) as a self memory, or you'll end up with multiple memories with different contents for different bots.
Specify it
psimagus
19 years ago
19 years ago
I was merely remarking that his name is funnier - "eat me the hair". Strange...
» More new posts: Doghead's Cosmic Bar