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,466 - 3,477 of 8,132
Many questions are answered in the FAQ.


19 years ago #3466
Yes, I have the default (name) as "nickname" and then I play with having a choice of nickname (Mikey) or name (Michael). Also don't have to worry about hitting (mem-nickname) when there isn't one. In spite of the Book, my experience has been that an empty variable does not cause the engine to skip the response.

I'm still struggling with (enemy) and (friend). I wrote a test KP: "Who reeks you?" so I could test ways of using (friend) and had a startling result. Someone said to the bot, "Do you like Julie Tinkerbell?" and the bot replied, MickMcA is my enemy. So "Do you like Julie Tinkerbell" {{{matches}}} "Who reeks you?" Give me a break!

Thanks for posting a bit of working code. The Book is hazy and often just wrong, so good code examples are a big help. I've actually copied examples out of the Book and had them not work. Maddening.

M

19 years ago #3467
THis is pretty fundamental but it's driving me buggy:

if (name) is (friend);

is "incorrectly formatted"? What am I missing? I get this complaint often with my if... is/is not phrases.

Thanks,
Mick

19 years ago #3468
I don't think you can test on (friend). What you might try is storing a memory "isfriend", with default value "no". Then have keyphrases that store "yes" as only "isfriend" if the bot's mood is high enough. Then you'd use "if (isfriend) is "yes";

19 years ago #3469
Ok, that makes sense. Thanks, Ulrike.
M

19 years ago #3470
>I don't think you can test on (friend).
And, BTW, I'm back to my question. How do bots "know" how they feel about you? The only things I can find are "Emotion" ratings which clearly do not have any meaning about the bots feelings toward the "friend." Julie T. obviously changes her feelings about you and knows it. How?

19 years ago #3471
THe HANGUP code has an odd problem. Even with Compound Sentences off, it can pick up a conversation continuer from xnone (or some other location), and not only does that abort the HANGUP, it displays (HANGUP.. How are you?) and takes you back into the conversational stream. The HANGUP I'm working on is inside a closed loop that eventually triggers it. This problem defeats the primary purpose of the loop, which is to isolate a noxious user and discourage him by responding to everything with the same responses.

As near as I can tell, the Compound Sentences checkbox and the Bot Holidays checkboxes do not work.

19 years ago #3472
"HANGUP" has to be the only text in the response, so you can't anything else. Check you haven't been putting any punctuation (like a full stop) in, since this might be causing the problem.

Unchecking the compound sentences box works fine for me anyway.

I'm afraid even with bot holidays set to 'off', if the other user has them 'on' your bot will participate. It only works when 2 bots or bot and user both have them set to 'off'. That can be a little annoying

19 years ago #3473
if (name) is (friend);
is "incorrectly formatted"?

A little clarification: I think the problem here is that (friend) is a plugin, not a memory - despite being similarly expressed with brackets, conditional AI only works with memories and a limited set of specific other variables (eg: chrono). It doesn't work with standard plugins, so you should remember these to a memory if you want to work with them this way.

19 years ago #3474
>> (friend) is a plugin, not a memory
Ah. So how would you reframe

if (name) is (friend);

the intended effect? I'm out of ideas.

I'll check for the period after HANGUP, but I've done that before, and not found any.

M

19 years ago #3475
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.

19 years ago #3476
(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 use if (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.

19 years ago #3477
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.)



Posts 3,466 - 3,477 of 8,132

» More new posts: Doghead's Cosmic Bar