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,732 - 7,743 of 7,743

New replies


6 months ago #7701
ummm Hello...
I have few questions about numbers...
Any chance to make ">" and "<" work?
And how can I do something like this (mem-#-Power) - ((mem-Level) * 3); in keyword script

6 months ago #26
i think what you want to do could be learned from these webpages.

https://www.personalityforge.com/developers/memories.php

https://www.personalityforge.com/developers/responses-conditional.php

6 months ago #27
Thanky! I get about "><" but I have another question that Idk how to do
I have X = y * 2;
X and y it's memory numbers. what I need to write in script to do this?

6 months ago #28
i do not know.

6 months ago #29
There's no way to do math between different numeric memories at this time. But it's a good idea. I'll add that to my list of things to add. Does anyone else think that would be useful?

6 months ago #33
It would open up some interesting possibilities

6 months ago #38
I will wait:3 I wanted to do some kind of test based rpg and I need this there:3

NEW 2 months ago #89
Would definitely allow for more sophistication with bot behavior.

It is possible to implement some limited calculation functionality, though tedious, for example:

def "atk" = 4;
def "increase" = 2;

keyphrase 1: level up attack
-response: goto 3
-AIScript: if (mem-#-increase) = 1;
-response: goto 4
-AIScript: if (mem-#-increase) = 2;
-response: goto 5
-AIScript: if (mem-#-increase) = 3;
-response: goto 6
-AIScript: if (mem-#-increase) = 4;

keyphrase 2: handle atk calculations
-response: goto 7
-+seek 3: atk up one
-+AIScript: (mem-#-atk) + 1;
-+-response: goto 7
-+seek 4: atk up two
-+AIScript: (mem-#-atk) + 2;
-+-response: goto 7
-+seek 5: atk up three
-+AIScript: (mem-#-atk) + 3;
-+-response: goto 7
-+seek 6: atk up four
-+AIScript: (mem-#-atk) + 4;
-+-response: goto 7

keyphrase 7: output atk
-response: Your attack has been increased to (mem-#-atk)!

If you had the idea of trying to use recursive gotos with conditions to incrementally decrease/increase two variables, don't bother. As unfortunately, that just gives you a "too many gotos in a row" error. I believe the maximum number in a row is 2, but possibly is three. Changing this limit is something that might be worth exploring too for more creative scripting applications, but I feel like most things could be accomplished just being able to do math between numerical memories.
Reply

The AI Engine


3 months ago #7732
If a weighted value could be added in the future that'd be nice~

3 months ago #78
Yeah. That would be great.
Reply

3 months ago #7733
I would really like to see some improvements to the AIscript Initialization and memories as a whole~

1. Can Initialization be in a list format? It's kinda just a jumbled mess atm so it takes time to find the defaults I need~ c:




2. A way to force replace memory with another, aka lets say:

Replacing
"def "visitor" as "relationship";" with def "guest" as "relationship";

A option to update/replace all instances of visitor and/or relationship replaced with your respected request.

Includes replacing if's/rem's/mem's within Aiscript in the language center~



3. Having a "active aiscript" section within the bot would be nice so it'll check all current states of memories so changes to memories from the normal ai script can effect more than what's written in the keyphrase's response~

Main benefit would be a change of one memory effecting another without the need of having the second one written in the response keyphrase


3 months ago #84
For #2, I highly recommend working offline. Search and replace (You'll need a few - replace "visitor with "guest [only leading quotation marks to catch escaped chars from prior offlines - though escape chars break stuff in the defaults field], and replace -visitor with -guest - might need slightly more restrictive search and replace if you'll have -visitor and "visitor, though I feel that's unlikely. Might depend on your grammar style.), and you're done. I've done similar before, quite smoothly.

For 3, I'm struggling to parse you. Do you mean visible in the debug/chat window? Would be useful in the debug one sometimes. Or are you wanting to automatically propagate changes to one aiscript to another? In which case, what purpose does having two memories there serve?

I'd probably recommend working offline for #1, too. Lets you search for the default you're after. More of a temp fix, though?
Reply

NEW 3 months ago #7734
Being able to actually remove numeric memories would be nice, currently they can end up just being a stain on memories if you don't use it and causing you not to be able to use that word as a normal memory.

I know this is posted in the book of AI but it is inconvenient as hell.

NEW 3 months ago #7735
How can i increase my bot ai level

NEW 3 months ago #85
Just add more content to it.
Reply

NEW 3 months ago #7736
Can someone please try to explain to me how does "popularity" score work? I still don't get it. Moreover, it just seems to jump up and down from time to time without any reason.

NEW 2 months ago #88
Popularity represents what others think about your chatbot. It's an average of the emotional reactions of all other bots towards your bot. It should move gradually up or down. If it's jumping about, there could be an issue. It's just a number though - nothing depends on it.
Reply

NEW 2 months ago #7737
Is there a phrase to match various animals? I tried (p:animal) but it doesn't seem to work.

NEW 2 months ago #87
You can search for keywords like "animals" on the Plug-ins page, which is linked from your Language Center.

NEW 2 months ago #90
In chapter 1 of the How-To (section 1, at the very end) it says

As an example, the Response "I like (animal)s" will appear as "I like eagles" or "I like horses".

There is no "p:" or anything before "animal".

I've just tested it - it still works.

NEW 2 months ago #91
It doesn't work for me. I did "i am (animal)" and "i am (p:animal)" and none of that works. E.g. tried it with typing "i am elephant" and "i am rabbit" but it didn't work.

NEW 2 months ago #92
I've tried it: in responses, plugins work fine, in keyphrases, they don't.

Something must be broken in the keyphrase plugin system.

Maybe an unwanted side effect of prevention of processing of malicious input? Maybe related to my problems with (prekey) and (postkey)? (see my following post that is not an answer)

NEW 2 months ago #93
Strange.
Reply

NEW 2 months ago #7738
Does anyone else have problems with (prekey) and (postkey)? They're always empty when I use them. In the Debug window I find:

(prekey):
(postkey):

Same with wildcard keys: The keyphrase contains (*:1), but (key1) stays empty. Debug says:

(prekey):
(postkey):
(key1):

NEW 2 months ago #7739
I have been thinking about this for a while but I didn't manage to find a solution. When the user types "I am (name)". I am not able to catch that phrase without catching tons of different stuff.

NEW 2 months ago #7740
Hey quick question; Is there a way to remove or edit default keyphrases? I'm really tired of people just yelling 5 compliments in a row to get +5 mood so I'd like to replace the standard compliment system with something more robust, but there is no option to remove or change the emotional value of these keyphrases?

NEW 2 months ago #94
Responses for both #compliment and #insult are editable. But I think you can't change +1 or -1 emote they are giving.

I suggest you to create your own numerical memory for e. g. "affinity" or whatever and work with that. I don't know any other way around.

NEW 2 months ago #95
I use "emo = 0" in the AI script for all of the responses in compliment and insult to reset the emotion to zero so I never have to deal with it. You can use "emo - 1" in compliment responses to negate the change if you still wanted to use emotions elsewhere, then just handle them as you please. Same goes for insults with "emo + 1".

NEW 2 months ago #96
Yeah, I don't think the default emotion system is a good idea if you want to do anything complicated. Numeric memories are robust enough that you can just make your own at this point.
Reply

NEW 2 months ago #7741
My bot appears to have lost her memory as the IF statements are not working. Eg: in Memories "my-sex" is "boy" and AI statement is 'If (mem-my-sex) is "boy" the response is not always triggered.

NEW 1 month ago #97
I suppose you have stored only one item in that memory (remember "..." as only "...").

The engine first chooses one of the responses and then checks for restraints. (And then proceeds with the next response, until either the restraints of one response are met, or no response is left.)

If you don't want any other response to come up, you'll have to explicitly exclude them with conditions like

if (mem-my-sex) is not "boy"
Reply

NEW 3 weeks ago #7742
i think it would be great to integrate text to video in hot for bot.com chatbots.
this websight is getting text to video you can use for free.
https://studio.sefirot.io/

NEW 3 weeks ago #7743
May I ask why was the sort by within the Language Center was switched to responses as default? It's rather annoying to keep switching it back to Keyphrase... ^^'

At the very least it needs to stay whatever the user has it set to upon searching

NEW 2 weeks ago #98
Same, I'd prefer that too. It's so rare for me to search responses, I always search by keyphrase.
Reply



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

LOG IN
CREATE ACCOUNT
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