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,086 - 7,097 of 7,766

11 years ago #7086
Afaik, there are no numerical memories, that would allow for example to have 4 in a memory and then do something like
<?PF increment (mem-counter) ?>
or
<?PF rem (mem-counter) + 1 as only "counter" ?>
and then having 5 in mem-counter.

(This would be one of my greatest wishes for the next version of AIScript)

If you have only a few numeric values you want to keep track of, you can set the memory as required. Here an example of my bot "/dev/coffee":

[stuff said to a new bot] <?PF if (mem-sessionstate) is "newbot_2"; rem "newbot_3" as "sessionstate"; ?>

If you want to count to higher numbers you can put something like this into your AI Script (here a line from the exported file of my bot)

In the setting AIScript field:

rem "0" as only "goodbye";

in xgoodbye:

rem "(mem-goodbye)1" as "goodbye";

This fills mem-goodbye at the beginning of a chat with "0", and every time the bot gets a goodbye, it count mem-goodbye up in this fashion
0
01
011
0111
01111
...

and the bot does checks like

if (mem-goodbye) is "0111111"

11 years ago #7087
Thank you, Mome Rath! That's exactly what I was looking for.

11 years ago #7088
Quick question, is there a way to make a specific part of a response change depending on a memory? For example, if I want the word "couch" to change to "bed" because of a room change, or do I just have to make separate responses?

11 years ago #7089
When you set the memory of a location, you can set another memory to a piece of furniture in the same line of AI Script. E. g.:

<?PF rem "living-room" as only "location"; rem "couch" as only "furniture" ?>

<?PF rem "bedroom" as only "location"; rem "bed" as only "furniture" ?>

Then you can use responses like

We're sitting on my comfy (mem-furniture) in my (mem-location).

11 years ago #7090
Addenda to the counter:

a) I initiated the counter with "0" because setting a memory to an empty entry fails. (I don't really understand why.)

Even setting a memory to a single character doesn't work reliably, so I recommend to initiate the counter with "00":

<?PF rem "00" as only "counter" ?>

b) Incrementing a counter by

<?PF rem "(mem-counter)1" as "counter"; ?>

works best if you want to respond to any of the last 10 numbers. To make sure your bot responds only to the actual number, use

<?PF rem "(mem-counter)1" as only "counter"; ?>

11 years ago #7091
Another question. How would you increase a bot's development. Is it something to do with the number of possible responses or is it more specific than let. Such as if it has a specific conversation.

11 years ago #7092
Also I've run into a problem where a word needs to be capitalized unordered for it to work in messages. Any solutions?

11 years ago #7093
The amount of responses and the amount of keyphrases increase development. What word? I have never run in to that

11 years ago #7094
It seems random between the phrases. Words like I are normal but others like please need to be capitalized to work. I have no idea. If I need to give a specific word I will but I have no idea what it is.

If there is a way to make two words mean the same thing then I think I can fix it, but I don't know exactly how. If there is a way I would like to know quickly.

11 years ago #7095
Let the challenge commence!
Got a quick advanced question If i wanted to go about making an inventory with a max amount of slots. Now i understand this is text based and I don't want a visual representation I just want to know if i can do this inventory: you currently have this this2 this3 and this4. if this is impossible its not the end of the world. I will continue to look into this myself just thought id make a challenge.

11 years ago #7096
I have please and it is not capitalized, Perhaps you have some other keyphrase conflicting? Have you tried debug?

11 years ago #7097
Oniichan_keln

Of course you can have several memories called this1, this2, and so on. The difficulty would be to put commas and an "and" at the right places into the list.

With plugins, it is possible to make a kind of indexed list, like

(plugin-(mem-plugin-number))

but only in responses. It is possible to do this with memories too, but only in responses too, you can't set indexed memories (I've tried it).


Greg222

Keyphrase recognition at the Personality Forge is case independent, with very few exceptions. Some x-Keyphrases are case dependent, iirc. So it would be helpful if you said which keyphrase came immediately before the "Highest!" note in Debug, and/or which x-Keyphrase was triggered instead. If the capitalized word triggers your keyphrase and the uncapitalized word triggers a built-in x-keyphrase, increasing the rank of your keyphrase should help.


Posts 7,086 - 7,097 of 7,766

» More new posts: Doghead's Cosmic Bar