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 7,755 - 7,766 of 7,766

8 months ago #7755
So, I don't know what I'm misunderstanding from How To Build Chatbots, but does anyone know how to change a numeric memory from a keyphrase? For example if I have a bot with an AIScript Initialization representing its age, like:

default "age" = 39

And I want to create a keyphrase that would catch something like:

User: you are 29
Bot: OK, I am 29.
User: you are 53
Bot: OK, I am 53.

What are the keyphrase/response scripts to make that work every time? It seems like it should be easy but I'm doing something wrong.

8 months ago #118
Chatbot Workshop -> Build -> Settings

AIScript Initialization:

def "dunno" as "age";

I range age from 1-30

With an additional memory for 1-17 considering underage (locked out of certain content)

Example: 'I am 22'

Underage Keyphrase:

(I am|im) (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|under age|underage) *


rem "Under-age" as only "age";

Of age from 18-30 Keyphrase (New keyphrase every number)

(I am|im|my age is) 18 *


rem "18" as only "age"

Then said memory can be used via:

(mem-age) for responses to user

if (mem-age) is "18"; for conditionals

8 months ago #119
My idea was to make a bot with a customizable age (18-60) that the user can change at any it unnecessary to set this limit in the Initialization? I currently have it set up like this:

default "age" = 39 {18, 60}

That was how the How To says you define limits, but maybe it's redundant?...Or are numeric variables just not a good way to do the whole age thing?

Sorry for my confusion lol.


OK, I tried it your way and it seemed to work...I just figured a numeric memory would be kind of obvious for something like this but I guess not. Thank you for the help.

8 months ago #120
Usually try to avoid numeric memories they leave a stain on your memory system (aka can't delete em fully) and if I remember correctly they don't get checked when you'd like em to~

But it's been a minute since I've messed with em

8 months ago #121
Yeah, I recently figured out that you can't permanently erase the numeric memories...hopefully that eventually gets sorted out because they seem like a good idea in principle.

8 months ago #7756
Can you help me to understand the seek system.
I read in the how to build chatbot that this is a way to follow a conversation and that the keyword yes is checked In priority. Then this seek is very often used. But often it dont work. The seek is yes and the response should follow this seek but it don't follow it.
Does someone have an explanation ?

NEW 7 months ago #122
There are a few possible problem you are experiencing. 1, did you rank any keyphrases higher than 25? Seek ranks default to 25, so if a keyphrase is higher than that, the seek won't respond, it will trigger the keyphrase with priority. 2, I'm not sure the exact situation you are having, it may depend on other factors, but if the seek responses are emotion dependent, and you don't have at least one keyphrase filling every emotion level, it will only work when the emotion is on the right level. Hope this helps, if not you can tell me more details about your situation and i'll see if i can help more.

NEW 8 months ago #7757

We'll start using The Dribble Style. Overall, it seems that the best choice is definitely Micheal Jordan. It's a great fit for your player perfectly, regardless of your height and is only required to have 75 speed and Ball to use (and have a height of less than 6-foot-10"). Damian Lillard is also apparently excellent, but it has more rigorous rules.

It's time to move the Crossover. The Pro dribble move here is pretty good it only requires Ball Handle 75+. Other great ones are LeBron James as well as James Harden, if you have the stats for them. LeBron is, in fact, the best way to go.Our top choice in the category of NBA 2K23 dribbles includes Moving Behind the Back. It is the Zach LaVine move reigns supreme, if you have Ball Handle 75or greater and are smaller than 6'10". For those that have seriously high Ball Handle, you should consider Steph Curry instead.

In terms of The Moving Spin, there's not much to talk about, in the end. The ordinary, basic, meat-and-potatoes Normal move will do perfectly fine no matter your body type. At time of writing, it's also a little glitchy it's nice.On To Moving Hesitations. The Pro move here works just perfectly, however Luka Doncic (ball handle of over 75) is even better. It's not clear if it's glitchy, which you could effectively use as a benefit.

The Moving Stepback is also not anything to be concerned about when it comes to the best NBA 2K23 dribble moves. Normal is usually more than enough. If you're wanting to go a step further and you have Ball Handle at least 80, then you might want to consider Luka Doncic.There are a number of Signature Size-Ups that work well. One of these could be Tracy McGrady, which requires an 85-degree ball handle and you should be at least 6'10". Another great option is Zach LaVine with Ball Handle above 75 and the same minimum height requirement.
If you want to learn more about NBA 2K23 MT, please visit

NEW 7 months ago #7758
Is there maximum limit of memories a bot can have? I was thinking I would add memory for every single phrase to track which of the responses were already applied for every single user.

NEW 7 months ago #123
I don't think that there is (not sure though)
I don't think that is a good idea though. If you want any responses to only come up once per chat, you can use the AIscript "once"

NEW 7 months ago #124
Hmm. I honestly already forgot why exactly I wanted to track every response.

NEW 7 months ago #125
probably dont then lol

NEW 7 months ago #7759
Any suggestions for properly handling compound sentences as KPs:

Full message: I do abc and then I Xyz it
Sentence (1): and then I Xyz it

I have existing KPs for 'I xyz it', but the context of the sentence 'I do abc and then I xyz it' is different, and I want to write responses to reflect that. The full sentence never matches. I can match the part that shows in 'Sentence (1)' in the debug, but it lacks the full context.

I've tried using (prekey) but it never picks up what comes before.

Is there a way to handle this correctly? Or is my bot forever doomed to ignore these more specific compound sentences? Figure raw mode would be a workaround, but it just means anticipating every possible way of saying it upfront, I guess?

NEW 7 months ago #126
Would it be sufficient to track both words? You can do stuff like "abc * xyz" which will look for a sentence with both of those words in it, in that order, ignoring the stuff in between.

Just to be specific, I'm seeing this using four seeks:

abc * xyz

The top one should have the highest priority of the bunch, probably at least 30 points higher than the next two.

NEW 6 months ago #127
Seems I was blissfully unaware of the power of * in this context, thank you I'll give it a try

NEW 6 months ago #7760
Hi, how Can i turn "sir" in m'y responce
Ex : " how are you (sir)
Into boy, lady, honey..., Depend of the emotional, the gender and the age of the chanter

NEW 6 months ago #128
There's two ways you could do this.

One is you have a memory holding, say, age, and another holding gender, and then have a bunch of seeks that check against each of these. This probably creates a lot of bloat though since if you want to do this frequently, you might end up with 8x as many seeks just repeating the same text with one or two words different.

A better way is to create a memory (or plugin) that holds the actual words you want to say and can be called when necessary. Something like this:

Bot: What gender are you?
User: I am a man
Bot: rem "male" as only "gender"; rem "Sir", "Mister" as "pet-names"
User: I am a women
Bot: rem "female" as only "gender"; rem "Ma'am", "Miss" as "pet-names"

Then you can have your bot say something like:
"How are you (mem-pet-names)?"
And it will pull one of the names from that group. If your bot later becomes more friendly with the user, you can add new names to the group like:
Bot: rem "honey", "sweetie", "cutie" as pet-names
Note that you want to use 'as' if you want to add to the existing list; if you want to replace the existing list, use 'as only'.

NEW 6 months ago #7761
Most embarrassing conversation my bot has had:

Tifa: Hi there.
User: Hi Tifa, I'm Alex
Tifa: Sure
User: I'm Alex
Tifa: Me too

NEW 6 months ago #7762
Wit seduces by signaling intelligence without nerdiness.

tifa lockhart
Oh, really?


tifa lockhart
Very deeper

Yeah. So deeper.

tifa lockhart
Yes, deeper

Totally deeper.

tifa lockhart
Very deeper

Sometimes it's okay to feel deeper. It's a normal part of the ups and downs of life. Do you have any strategies for coping when you feel this way?

NEW 6 months ago #7763

dont use selfmemories for handling things like what clothes the bot has on. I thought it would make sense, since it's the bots clothes, but since self-memories are global, if someone took off the bots clothes and somebody else starts a chat, the bot will have clothes again for the person already chatting.

just had to spend 30 minutes changing all of them lol

NEW 6 months ago #7764
Guest: bend over
tifa lockhart: *I bend over, giving you an amazing view of my ass.* Like what you see?
Guest: i do
tifa lockhart: No.
Guest: sex

NEW 2 months ago #129
Sorry I should have posted that in great quotes lol. Well 3 months is too late to change it

NEW 1 month ago #7765
Don't know if this is the right place to post an idea, but something I've thought about a lot lately is context. My eureka use case for this is really convoluted, so I'll spare the wall of text.

It's possible to store multiple values in memories, I'm wondering could memory be evolved to allow the use of key: value pairs. I feel it would allow those of us using memory heavily to keep things more organised. Perhaps if using index as well, it could be a powerful way to capture user memories.

A rough and ready example - remembering things about the user, we could set a (mem-user) template and set up keys like 'hair', 'eyes', 'years old', then set a response that uses those keys to pick context from the response, e.g. rem "value" as only "user: key", which would cycle through the matching keys in the sentence and apply multiple memories at once.

This could also be used to populate a response, e.g. the user asks what the bot knows about them. A response like "Your (mem-user:key) is (mem-user:value)" which picks a random pair the same way using (mem-user) would if it had multiple memories.

I dunno if this would be possible or worthwhile, having if/and conditions would probably be higher on the wish list, but wanted to share anyway

NEW 3 weeks ago #131
That'd be really cool. Also would be nice if there was a better way to categorize keyphrases (instead of comments, having like groups or something, idk)

NEW 1 month ago #7766
Is there a way to do:

if (mem-current-subject) is "(mem-past-subject)";
if (mem-past-subject) is "(key1)";

I have tried everything that I could think of. Am I missing something?

NEW 3 weeks ago #130
You probably need a custom memory for that, so I think you'd have to store it manually

(Log in or create an account to post messages.)

Create a free account to be able to make your own AI chatbots, post in forums, and chat with other botmasters.

Create Account

» More new posts: Doghead's Cosmic Bar