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,740 - 7,751 of 7,763
Posts 7,740 - 7,751 of 7,763
saltwatersalmon
8 months ago
8 months ago
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?
palacinkyman
7 months ago
7 months ago
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.
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.
Zeig Wolf
7 months ago
7 months ago
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".
Emily Jones
7 months ago
7 months ago
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.
Miss Niki
7 months ago
7 months ago
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.
Mome Rath
7 months ago
7 months ago
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"
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"
hero of loopy fun
6 months ago
6 months ago
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/
this websight is getting text to video you can use for free.
https://studio.sefirot.io/
LT Neko
6 months ago
6 months ago
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
At the very least it needs to stay whatever the user has it set to upon searching
MistyForest
5 months ago
5 months ago
Regarding numeric memories
In addition to the idea of being able to do math between two different numeric memories, if (mem-#-x) = (mem-#-y);
It would be interesting to be able to have the ability to use numeric variables in gotos/continues:
Here's a simplified example:
/* from a certain conversation line; want to call a seek which configures memories a certain way that can be reused in other conversation lines */
(mem-#-nextSeekID) = 234;
goto 123;
/* this seek could be called by multiple conversation lines to do some memory processing, and then the conversation could continue by continuing to the predefined nextSeekID value */
Seek 123:
do processing / configure memories
continue (mem-#-nextSeekID);
/* this seek continues the original conversation, if replied to, the sleep which does memory processing can be run again and then sent to seek 512 */
seek 234:
Response 1 (blah blah)
seek 235: blah blah
(mem-#-nextSeekID) = 512;
goto 123
This can reduce duplicate seeks and add reusability possibilities
In addition to the idea of being able to do math between two different numeric memories, if (mem-#-x) = (mem-#-y);
It would be interesting to be able to have the ability to use numeric variables in gotos/continues:
Here's a simplified example:
/* from a certain conversation line; want to call a seek which configures memories a certain way that can be reused in other conversation lines */
(mem-#-nextSeekID) = 234;
goto 123;
/* this seek could be called by multiple conversation lines to do some memory processing, and then the conversation could continue by continuing to the predefined nextSeekID value */
Seek 123:
do processing / configure memories
continue (mem-#-nextSeekID);
/* this seek continues the original conversation, if replied to, the sleep which does memory processing can be run again and then sent to seek 512 */
seek 234:
Response 1 (blah blah)
seek 235: blah blah
(mem-#-nextSeekID) = 512;
goto 123
This can reduce duplicate seeks and add reusability possibilities
Miss Niki
5 months ago
5 months ago
Converting regular memory to numeric does not work for me.
Rem "1650" as only "year"
(Mem-#-year) + 1
Does not work as a numeric
Rem "1650" as only "year"
(Mem-#-year) + 1
Does not work as a numeric
Miss Niki
5 months ago
5 months ago
On a seek when a space or carriage return or < is entered get "message missing" or "I was just born..." message.
How to trap these to avoid this?
How to trap these to avoid this?
palacinkyman
5 months ago
5 months ago
Is it possible to add general rule to all of the responses? For example, adding 10 into memory "seconds elapsed" for each response?
palacinkyman
4 months ago
4 months ago
I think it would be nice if we could add text before and/or after "goto xxx".
Zeig Wolf
4 months ago
4 months ago
What you're looking for is Continue
palacinkyman
4 months ago
4 months ago
There is already feature like that?
This is like what I had in mind:
Seek: whatever
Response: "Sure," goto xxx "and then we can go for lunch."
This is like what I had in mind:
Seek: whatever
Response: "Sure," goto xxx "and then we can go for lunch."
Zeig Wolf
4 months ago
4 months ago
Copied from the book:
Example:
Message: This story is awesome!
Response: I know! Let me continue..
+ AIScript: continue 1234; (the Keyphrase ID where the story continues)
= Bot says: I know! Let me continue.. Then I climb up on top of the fountain with my pants on my head..
Example:
Message: This story is awesome!
Response: I know! Let me continue..
+ AIScript: continue 1234; (the Keyphrase ID where the story continues)
= Bot says: I know! Let me continue.. Then I climb up on top of the fountain with my pants on my head..
palacinkyman
4 months ago
4 months ago
Nice. So The first half is already implemented. Does continue work the same way as goto? I mean with all the seeks available for next replies, applying same conditions and saving all the memories.
Miss Niki
4 months ago
4 months ago
I had a problem with a numeric memory becoming a self memory and not updating the guest's memory. This was caused by the "m" being capitalized.
(mem-#-Today) = 1 GOOD
(Mem-#-Today) = 1 BAD
(mem-#-Today) = 1 GOOD
(Mem-#-Today) = 1 BAD
kb86
4 months ago
4 months ago
What's the accepted correct way to have a KP override the emotion override?
Specifically, using get+s in a KP wasn't producing a response, debug showed this was being interpreted as emotion (below) and tried #emote, rather than the specific KP
Emotional Analysis:
EMOTION WORD = get (effect)
As a workaround I just bumped up the rank of the KP until it took priority, but that doesn't seem like the best practice, so wondered if there's a better way around it?
Specifically, using get+s in a KP wasn't producing a response, debug showed this was being interpreted as emotion (below) and tried #emote, rather than the specific KP
Emotional Analysis:
EMOTION WORD = get (effect)
As a workaround I just bumped up the rank of the KP until it took priority, but that doesn't seem like the best practice, so wondered if there's a better way around it?
palacinkyman
4 months ago
4 months ago
Why would you want to override emotion locked keyphrase/seek? I am just curious. I mean, you can just add new seek with specific requirement copy the first restricted response and use gotos. I am usually not using emotion system at all anyway. If you want to restrict the user for some reason, you can always just create new memory with yes/no value, or some numerical memory. E. g. memory for number of compliments or memory whether the user has been on date already. Whatever.
kb86
4 months ago
4 months ago
Hi palacinkyman,
It's possible I didn't explain very well. I'm not trying to override an emotion locked KP, I wrote a fresh KP using 'get+s' as part of the KP, and the AI engine was determining that 'get' is a word warranting an emotional response, and serving #emote rather than the responses within my KP.
It's possible I didn't explain very well. I'm not trying to override an emotion locked KP, I wrote a fresh KP using 'get+s' as part of the KP, and the AI engine was determining that 'get' is a word warranting an emotional response, and serving #emote rather than the responses within my KP.
palacinkyman
4 months ago
4 months ago
Thanks for explanation.
Oliv13
4 months ago
4 months ago
Hello,
i don't achieve to implement Aiscripting in my bot.
Even folowing the guide samples, noothing never work. Is there some tips or a tuto to make ai scripting working ?
i don't achieve to implement Aiscripting in my bot.
Even folowing the guide samples, noothing never work. Is there some tips or a tuto to make ai scripting working ?
» More new posts: Doghead's Cosmic Bar