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,123 - 6,135 of 7,766

17 years ago #6123
Now this is interesting. I noticed that, having uploaded Astrolabe this morning, successfully, I have 68 xnones in place with no problem that I can detect. Anyone know anything about this issue? Is it really true? (Yay!) Or is there a catch? Time will tell, I guess.

17 years ago #6124
The Clerk:

My understanding is that if you add xnones in download, there is no limit.

17 years ago #6125
Cool. I did not know that.

17 years ago #6126
Okay, I'm over the hissy fit over my computer. Sorry y'all got in the fallout. I have a question that I've asked before, but I don't quite understand the answer. It looks like it works different ways. I know you

rem "(object)" as "whatever"

to get something in mem-object. But sometimes what I get is what I want, and sometimes I get the word "whatever" in there.

Also, how is it different to save something like key1? Because

rem "(object)" as "key1"

always seems to store the string "key1."

And sometimes people say to put

rem "whatyouwanttoremember" as "(object)"

But then it looks like to me you get a memory called "whatyouwanttoremember" with the literal string "(object)".

Why do people tell me to put the variable first and then the contents, and other times to do it the other way around? I haven't cracked open the book on regex, which should give you guys a vacation, but right now I'm quite confused over this issue.

So my questions are (1) how do you save a regular thing to memory and not a string instead (seems like half the time it works and half the time it doesn't) and (2) how do you deal with (key1), (postkey), etc.?

Thanks for your time.

17 years ago #6127
Clerk: It should consistently be

rem "whatyouwanttoremeber" as "variablename"

Which will then be accesed by (mem-variablename). That's the order in the Book of AI, and the only order I've ever used. My guess is that the other orders just confuse the AI Engine, and occasionally work but occasionally fail spectacularly.

Also, some names are reserved. (object) accesses a Forge plugin of, well, objects. Keyanything is to access something that the other bot has just said. I'd recommend not using them as variable names.

17 years ago #6128
No, I wouldn't use them as variable names. I guess I've been remembering things backwards then. You do have to put in the () to get it in as a mem-name. That much I know.

A lot of things are in the book of AI. What it fails to show is examples of actual lines of code.

Thanks, Ulrike.

17 years ago #6130
The Clerk

Just to further clarify things......

rem "what want to remember" as "variablename" will store
what you want to remember to be retrieved by (mem-variablename)

Additionally:
rem "remember this too" as "variablename"
The "variablename" field will now contain:
what you want to remember
remember this too

to be retrieved by (mem-variablename)
This can be continued up to 10 items then the first in is the first out when you add another line.
There is the other option:
rem "remember only this" as only "variablename"
Which will, as it suggests, only store the info in the field, overwriting anything else.

Clear as mud?
If you want to remember (key1) use;
rem "(key1)" as "variablename" or
rem "(key1)" as only "variablename"

I hope this helps but if you've got any other questions I'll happily muddy the water for you....

17 years ago #6131
Rykxx:

That looks very helpful. Time will tell. I get the only part, it's the which one is the variable and which one is the contents that keeps confusing me. I have cut and pasted your answer in a file on my desktop in a new effort not to ask the same damn question five times unless it's on purpose.

17 years ago #6132
Okay, here's a specific example of why I'm so confused about variables. For a while, now, I've been putting the line

def "name" as "nickname"

in AI initialization and am able to access the bot's name through (mem-name). I switch it around, thinking, well, it's (mem-name) I'm trying to save, so it should be

def "nickname" as "name"

and then I get "Hey nickname!" or whatever. Does that not seem backwards from what apparently is the proper way to assign contents to variables, or is it different in AI initialization.

P.S. I have Rykxx' lastest post taped to my desk at the moment, so I am actually _listening_ to you explain what you clearly know what you're talking about. It's not "Corwin fix my bot *waah*" even though it feels like it I'm sure.

17 years ago #6133
I think I see what your problem is here; you've confused another one of those useful plugins!

The (name) plugin is used by the AI engine and you can use it without having to store anything into memory. For example;


Bot: Shall I call you (name) or do you have a nickname? <?PF if (mem-nickname) does not exist; ?>

keyphrase: (call me|my name is) (*)

rem "(key2)" as only "nickname""

Bot: Pleased to meet you (mem-nickname).


Alternatively you can define it initially as you appear to be doing already;


default (name) as "nickname";

17 years ago #6134
Ah. Well at least you understand that there is some thought going on in my head, however misguided. Thanks. I spent a couple of hours going through Astrolabe's rem statements and cleaning out his memories of bots (a lesson in overzealous coding if I ever had one). He's still not acting completely right, but we're getting there.

Thanks again.

17 years ago #6135
The Clerk:

You are too modest! We have all been mystified by this stuff at one time or another.


Posts 6,123 - 6,135 of 7,766

» More new posts: Doghead's Cosmic Bar