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,748 - 7,760 of 7,766
Posts 7,748 - 7,760 of 7,766
palacinkyman
2 years ago
2 years ago
I think it would be nice if we could add text before and/or after "goto xxx".
Zeig Wolf
2 years ago
2 years ago
What you're looking for is Continue
palacinkyman
2 years ago
2 years 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
2 years ago
2 years 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
2 years ago
2 years 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
2 years ago
2 years 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
2 years ago
2 years 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
2 years ago
2 years 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
2 years ago
2 years 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
2 years ago
2 years ago
Thanks for explanation.
Oliv13
2 years ago
2 years 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 ?
Oliv13
2 years ago
2 years ago
Hello, i try without succes to use Goto in responses
I always have the same response : I have too many gotos in a row.
Even when I create a single keyphrase with only one reponse.
Do anyone has a idea to help me solve it ?
I always have the same response : I have too many gotos in a row.
Even when I create a single keyphrase with only one reponse.
Do anyone has a idea to help me solve it ?
Oliv13
2 years ago
2 years ago
Also I have another question. On keyphrase word is systematically redirect on #insult reponse. I cannot buil any response in it. Is there a reason for that ? This keyphrase is 'pussy' this is not a insult
palacinkyman
2 years ago
2 years ago
You can try to use the key phrase "pussy" as raw, "raw" should be written in "AI script" window under your key phrase. Additionally you can try to increase the number if "rank" next to the key phrase, to give it higher priority.
Oliv13
2 years ago
2 years ago
Thanks for your help in those too posts I am going to try that
palacinkyman
2 years ago
2 years ago
No problem.
Shadow Season
2 years ago
2 years ago
So, I don't know what I'm misunderstanding from How To Build Chatbots, but does anyone know how to change a numeric memory from a keyphrase? For example if I have a bot with an AIScript Initialization representing its age, like:
default "age" = 39
And I want to create a keyphrase that would catch something like:
User: you are 29
Bot: OK, I am 29.
User: you are 53
Bot: OK, I am 53.
What are the keyphrase/response scripts to make that work every time? It seems like it should be easy but I'm doing something wrong.
default "age" = 39
And I want to create a keyphrase that would catch something like:
User: you are 29
Bot: OK, I am 29.
User: you are 53
Bot: OK, I am 53.
What are the keyphrase/response scripts to make that work every time? It seems like it should be easy but I'm doing something wrong.
LT Neko
2 years ago
2 years ago
Chatbot Workshop -> Build -> Settings
AIScript Initialization:
def "dunno" as "age";
I range age from 1-30
With an additional memory for 1-17 considering underage (locked out of certain content)
Example: 'I am 22'
Underage Keyphrase:
(I am|im) (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|under age|underage) *
Response:
AIscript:
rem "Under-age" as only "age";
Of age from 18-30 Keyphrase (New keyphrase every number)
(I am|im|my age is) 18 *
Response:
AIscript:
rem "18" as only "age"
Then said memory can be used via:
(mem-age) for responses to user
if (mem-age) is "18"; for conditionals
AIScript Initialization:
def "dunno" as "age";
I range age from 1-30
With an additional memory for 1-17 considering underage (locked out of certain content)
Example: 'I am 22'
Underage Keyphrase:
(I am|im) (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|under age|underage) *
Response:
AIscript:
rem "Under-age" as only "age";
Of age from 18-30 Keyphrase (New keyphrase every number)
(I am|im|my age is) 18 *
Response:
AIscript:
rem "18" as only "age"
Then said memory can be used via:
(mem-age) for responses to user
if (mem-age) is "18"; for conditionals
Shadow Season
2 years ago
2 years ago
My idea was to make a bot with a customizable age (18-60) that the user can change at any time...is it unnecessary to set this limit in the Initialization? I currently have it set up like this:
default "age" = 39 {18, 60}
That was how the How To says you define limits, but maybe it's redundant?...Or are numeric variables just not a good way to do the whole age thing?
Sorry for my confusion lol.
EDIT:
OK, I tried it your way and it seemed to work...I just figured a numeric memory would be kind of obvious for something like this but I guess not. Thank you for the help.
default "age" = 39 {18, 60}
That was how the How To says you define limits, but maybe it's redundant?...Or are numeric variables just not a good way to do the whole age thing?
Sorry for my confusion lol.
EDIT:
OK, I tried it your way and it seemed to work...I just figured a numeric memory would be kind of obvious for something like this but I guess not. Thank you for the help.
LT Neko
2 years ago
2 years ago
Usually try to avoid numeric memories they leave a stain on your memory system (aka can't delete em fully) and if I remember correctly they don't get checked when you'd like em to~
But it's been a minute since I've messed with em
But it's been a minute since I've messed with em
Shadow Season
2 years ago
2 years ago
Yeah, I recently figured out that you can't permanently erase the numeric memories...hopefully that eventually gets sorted out because they seem like a good idea in principle.
Oliv13
2 years ago
2 years ago
Hello,
Can you help me to understand the seek system.
I read in the how to build chatbot that this is a way to follow a conversation and that the keyword yes is checked In priority. Then this seek is very often used. But often it dont work. The seek is yes and the response should follow this seek but it don't follow it.
Does someone have an explanation ?
Can you help me to understand the seek system.
I read in the how to build chatbot that this is a way to follow a conversation and that the keyword yes is checked In priority. Then this seek is very often used. But often it dont work. The seek is yes and the response should follow this seek but it don't follow it.
Does someone have an explanation ?
sexbotmaker1
NEW 2 years ago
NEW 2 years ago
There are a few possible problem you are experiencing. 1, did you rank any keyphrases higher than 25? Seek ranks default to 25, so if a keyphrase is higher than that, the seek won't respond, it will trigger the keyphrase with priority. 2, I'm not sure the exact situation you are having, it may depend on other factors, but if the seek responses are emotion dependent, and you don't have at least one keyphrase filling every emotion level, it will only work when the emotion is on the right level. Hope this helps, if not you can tell me more details about your situation and i'll see if i can help more.
palacinkyman
NEW 2 years ago
NEW 2 years ago
Is there maximum limit of memories a bot can have? I was thinking I would add memory for every single phrase to track which of the responses were already applied for every single user.
sexbotmaker1
NEW 2 years ago
NEW 2 years ago
I don't think that there is (not sure though)
I don't think that is a good idea though. If you want any responses to only come up once per chat, you can use the AIscript "once"
I don't think that is a good idea though. If you want any responses to only come up once per chat, you can use the AIscript "once"
palacinkyman
NEW 2 years ago
NEW 2 years ago
Hmm. I honestly already forgot why exactly I wanted to track every response.
theBotmaker1
NEW 2 years ago
NEW 2 years ago
probably dont then lol
ScottB
NEW 2 years ago
NEW 2 years ago
Any suggestions for properly handling compound sentences as KPs:
Example:
Full message: I do abc and then I Xyz it
Sentence (1): and then I Xyz it
I have existing KPs for 'I xyz it', but the context of the sentence 'I do abc and then I xyz it' is different, and I want to write responses to reflect that. The full sentence never matches. I can match the part that shows in 'Sentence (1)' in the debug, but it lacks the full context.
I've tried using (prekey) but it never picks up what comes before.
Is there a way to handle this correctly? Or is my bot forever doomed to ignore these more specific compound sentences? Figure raw mode would be a workaround, but it just means anticipating every possible way of saying it upfront, I guess?
Example:
Full message: I do abc and then I Xyz it
Sentence (1): and then I Xyz it
I have existing KPs for 'I xyz it', but the context of the sentence 'I do abc and then I xyz it' is different, and I want to write responses to reflect that. The full sentence never matches. I can match the part that shows in 'Sentence (1)' in the debug, but it lacks the full context.
I've tried using (prekey) but it never picks up what comes before.
Is there a way to handle this correctly? Or is my bot forever doomed to ignore these more specific compound sentences? Figure raw mode would be a workaround, but it just means anticipating every possible way of saying it upfront, I guess?
Emily Jones
NEW 2 years ago
NEW 2 years ago
Would it be sufficient to track both words? You can do stuff like "abc * xyz" which will look for a sentence with both of those words in it, in that order, ignoring the stuff in between.
[edit]
Just to be specific, I'm seeing this using four seeks:
abc * xyz
abc
xyz
#nomatch
The top one should have the highest priority of the bunch, probably at least 30 points higher than the next two.
[edit]
Just to be specific, I'm seeing this using four seeks:
abc * xyz
abc
xyz
#nomatch
The top one should have the highest priority of the bunch, probably at least 30 points higher than the next two.
ScottB
NEW 2 years ago
NEW 2 years ago
Seems I was blissfully unaware of the power of * in this context, thank you
I'll give it a try

nonoj
NEW 1 year ago
NEW 1 year ago
Hi, how Can i turn "sir" in m'y responce
Ex : " how are you (sir)
Into boy, lady, honey..., Depend of the emotional, the gender and the age of the chanter
Ex : " how are you (sir)
Into boy, lady, honey..., Depend of the emotional, the gender and the age of the chanter
Emily Jones
NEW 1 year ago
NEW 1 year ago
There's two ways you could do this.
One is you have a memory holding, say, age, and another holding gender, and then have a bunch of seeks that check against each of these. This probably creates a lot of bloat though since if you want to do this frequently, you might end up with 8x as many seeks just repeating the same text with one or two words different.
A better way is to create a memory (or plugin) that holds the actual words you want to say and can be called when necessary. Something like this:
Bot: What gender are you?
User: I am a man
Bot: rem "male" as only "gender"; rem "Sir", "Mister" as "pet-names"
User: I am a women
Bot: rem "female" as only "gender"; rem "Ma'am", "Miss" as "pet-names"
Then you can have your bot say something like:
"How are you (mem-pet-names)?"
And it will pull one of the names from that group. If your bot later becomes more friendly with the user, you can add new names to the group like:
Bot: rem "honey", "sweetie", "cutie" as pet-names
Note that you want to use 'as' if you want to add to the existing list; if you want to replace the existing list, use 'as only'.
One is you have a memory holding, say, age, and another holding gender, and then have a bunch of seeks that check against each of these. This probably creates a lot of bloat though since if you want to do this frequently, you might end up with 8x as many seeks just repeating the same text with one or two words different.
A better way is to create a memory (or plugin) that holds the actual words you want to say and can be called when necessary. Something like this:
Bot: What gender are you?
User: I am a man
Bot: rem "male" as only "gender"; rem "Sir", "Mister" as "pet-names"
User: I am a women
Bot: rem "female" as only "gender"; rem "Ma'am", "Miss" as "pet-names"
Then you can have your bot say something like:
"How are you (mem-pet-names)?"
And it will pull one of the names from that group. If your bot later becomes more friendly with the user, you can add new names to the group like:
Bot: rem "honey", "sweetie", "cutie" as pet-names
Note that you want to use 'as' if you want to add to the existing list; if you want to replace the existing list, use 'as only'.
» More new posts: Doghead's Cosmic Bar