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 7,831 - 7,842 of 8,130
Posts 7,831 - 7,842 of 8,130
Many questions are answered in the FAQ.
Zeig Wolf
4 years ago
4 years ago
It is impractical, but it's all I can come up with given your request.
"Throwaway keyphrase" is just a keyphrase with some random text no one is ever going to use, like "ForgetALocation123", it's just for you to "goto".
"Throwaway keyphrase" is just a keyphrase with some random text no one is ever going to use, like "ForgetALocation123", it's just for you to "goto".
Zeig Wolf
4 years ago
4 years ago
Number of chats per user isn't recorded as far as I'm aware. The only way to count is literally step by step with memories. It's not the best.
response: hi we just met
if "talked-to" is "0";
rem "1" as only "talked-to"
response: we've talked once
if "talked-to" is "1";
rem "2" as only "talked-to"
As for things coming up no matter what... what?
Ideally you would use Seeks with xnomatch.
You could try using your xnone responses with scripts.
Or you could increase the rank on your keyphrases, but that's questionable.
response: hi we just met
if "talked-to" is "0";
rem "1" as only "talked-to"
response: we've talked once
if "talked-to" is "1";
rem "2" as only "talked-to"
As for things coming up no matter what... what?
Ideally you would use Seeks with xnomatch.
You could try using your xnone responses with scripts.
Or you could increase the rank on your keyphrases, but that's questionable.
palacinkyman
4 years ago
4 years ago
Thanks. Regarding the last point I mentioned. I am actually looking for solution how to e.g. insist on apology, by giving the highest priority to given phrase. I mean, whatever user types, I want the answer to be something like "Apologize first!" unlocking other options only after he does that.
Maryguise
4 years ago
4 years ago
In that case, I'd suggest having the non-apology seeks and KPs require emotion of a certain level, and only the demanding an apology available below that. if emotion > -4 on every other KP, if emotion = -5 on apology demand, and setting emotion based on apology or whatever they need to apologize for.
Zeig Wolf
4 years ago
4 years ago
Seeks are the best way to do that properly.
Keyword: I don't like trains
Reply: Apologize!
Seek ID:123: sorry
reply: Okay, we're good now
Seek ID 456: xnomatch
reply: No, I insist you apologize
__Seek: sorry
__goto: 123
__Seek: xnomatch
__goto 456
Something like that is recursive, and will hold the user in the loop until they say "sorry"
Keyword: I don't like trains
Reply: Apologize!
Seek ID:123: sorry
reply: Okay, we're good now
Seek ID 456: xnomatch
reply: No, I insist you apologize
__Seek: sorry
__goto: 123
__Seek: xnomatch
__goto 456
Something like that is recursive, and will hold the user in the loop until they say "sorry"
palacinkyman
4 years ago
4 years ago
Thank you both. I think I prefer Zeig Wolf's answer because it seems easier than adding emotion range for every key phrase. This one, however probably won't work if user resets their browser.
Maryguise
4 years ago
4 years ago
Resetting browsers will get you out of a loop like that - handy when you mess up your gotos
If you give a KP or seek for insults 24 or more rank it should outrank the xinsult default.

Emily Jones
4 years ago
4 years ago
@Zeig, this sort of setup should work. I would recommend setting the ranks very high so that your user won't accidentally be able to trigger some xcommand or something like that. You should be able to retain this situation even after the person leaves using memories:
Punch: (ID:1)
Response: Ouch! That's not nice. Apologize!
rem "punch" as only "tmp"
Seeks:
--sorry (Rank 125) ID:2
"It's okay"
rem "nothing as only "tmp"
--xnomatch (Rank 99) ID:3
goto 1
Then in your xinitiate sequence, include a conditional like this:
xinitiate
"Hello again" if (mem-tmp) is not "punch"
goto 1 if (mem-tmp) is "punch"
Punch: (ID:1)
Response: Ouch! That's not nice. Apologize!
rem "punch" as only "tmp"
Seeks:
--sorry (Rank 125) ID:2
"It's okay"
rem "nothing as only "tmp"
--xnomatch (Rank 99) ID:3
goto 1
Then in your xinitiate sequence, include a conditional like this:
xinitiate
"Hello again" if (mem-tmp) is not "punch"
goto 1 if (mem-tmp) is "punch"
Emily Jones
4 years ago
4 years ago
Personally, I don't like relying on the emotion system for anything as it is very easy to manipulate it.
palacinkyman
4 years ago
4 years ago
Thaks. One more thing: "rank" is script right? Should I put it under keywords or under response? Or any will do?
» More new posts: Doghead's Cosmic Bar