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,082 - 7,093 of 7,766
Posts 7,082 - 7,093 of 7,766
Mome Rath
11 years ago
11 years ago
Is there any way to compare a memory with another memory?
The AIScript
<?PF if (self-talkedto) is "(name)" ?>
fails unless the self-memory "talkedto" contains a literal entry "(name)". "Mome Rath" doesn't help as entry in (self-talkedto).
The AIScript
<?PF if (self-talkedto) is "(name)" ?>
fails unless the self-memory "talkedto" contains a literal entry "(name)". "Mome Rath" doesn't help as entry in (self-talkedto).
Pound
11 years ago
11 years ago
Is there a way to have a value stored as a memory, and then have that value increase if a certain event is triggered multiple times? In other words, could a bot remember how many times a certain action has occurred?
Mome Rath
11 years ago
11 years ago
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"
<?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"
Pound
11 years ago
11 years ago
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?
Mome Rath
11 years ago
11 years ago
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).
<?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).
Mome Rath
11 years ago
11 years ago
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"; ?>
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"; ?>
Greg222
11 years ago
11 years ago
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.
Greg222
11 years ago
11 years ago
Also I've run into a problem where a word needs to be capitalized unordered for it to work in messages. Any solutions?
prob123
11 years ago
11 years ago
The amount of responses and the amount of keyphrases increase development. What word? I have never run in to that
» More new posts: Doghead's Cosmic Bar