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,695 - 7,706 of 7,766

2 years ago #7695
Perhaps an odd request but, Professor could you please turn off automatic conversion of emojis?

1 year ago #22
You can use "raw" to access those.

1 year ago #47
They might mean in the forums though; given that this request immediately follows bobstack's post where tons of their time-based AI code got converted to emoji.

Reply

1 year ago #7696
Is there a way to have the bot respond to a number? Or a series of numbers?

I've created a memory variable to keep the number, but it never uses any of the responses I have for something like

AI Script: if (mem-number) is (10);

Never gets called, even when the bot has had (mem-number) set to 10 by hand in the Inner Life system. How is this different than when I use text in the variables?

Ai Script: if (mem-somethingElse) is (true);
and
Ai Script: if (mem-somethingElse) is (blue);


Has worked just fine for me else where.

I feel like I'm missing something incredibly obvious.

1 year ago #23
The value you're checking should be in quotes, not parenthesis.

AI Script: if (mem-number) is "10";

But as of yesterday, you can use numeric memories. Search for "numeric memories" in the Book of AI. If you set it up as numeric, it would be this:

AI Script: if (mem-#-number) = 10;

1 year ago #25
we do not know what you consider junk in our chatbots.
i hope i am not in any danger.
Reply

1 year ago #7697
are you trying to make a game for your chatbot?
i have made games for my chatbots.

1 year ago #7698
KBF you do it like this.
if (mem-number) is "10";
if (mem-somethingElse) is "true";
if (mem-somethingElse) is "blue"

1 year ago #7699
Sorry if I was unclear, I'm only interested in numbers. "True" and "Blue" variables were just used as examples, and do not have anything to do with the particular script. There is only one variable I'm trying to catch.

I have a generic answer without AI script that seems to be taking priority over answers for specific numbers, even when the bot is given numbers.

I'm unclear if the bot can't recognize the numbers themselves, or there's a prioritization problem where the generic answer is overriding the script answers. If so, is there some way to change that?

1 year ago #16
My only thought here is that you're setting the memory in the keyphrase and trying to recall it in the response. New memories won't be checked that quickly. Though above you say you've tried setting it by hand, so perhaps I'm misunderstanding or missing something?

What I would generally suggest is a different keyphrase for important numbers, and just (number) for everything else

1 year ago #17
i have had the same problem.
here is a example of what i do.
keyphrase = my clan number is *
response=okay i will remember your clan number
script=if (mem-clan) is "blank"
seek = x
response= looks at you
rem (postkey) as only "clan"
seek = #nomatch
response= looks at you
rem (postkey) as only "clan"

response = i remember that your clan number is 2
if (mem-clan) is "2"



i hope it helps

1 year ago #18
Zeig Wolf - "By hand" I mean in the bot's Inner Life menu, for the user KBF, I set the variable Mem-number= 10 to ensure the bot isn't responding to some other number and I haven't realized it.

bobstack- is there a way to have the bot respond to the number in the same sentence?

(Example) keyphrase = my clan number is *
(Desired) response=Oh, I like clan (ANumberGoesHere)!
-or-
(Desired) response=Oh, I used to visit clan (OtherNumberGoesHere)!
(Desired) response=Wow, I've never heard of clan (UnsupportedNumberGoesHere)!

Because all I get is: response=Wow, I've never heard of clan (UnsupportedNumberGoesHere)!

No matter what I say. Even if I tamper with the bot (see above) to make sure there it's a known number.






1 year ago #19
you can have multiple responses per keyphrase.

1 year ago #20
How I would handle this:

Keyphrase1 - my clan number is (number)
Response - Wow, I've never heard of clan (key1)!

Keyphrase2 - my clan number is (1|2|3)
Response - Oh, I like clan (key1)!

Keyphrase3 - my clan number is (4|5|6)
Response - Oh, I used to visit clan (key1)!

Keyphrase 2 and 3 might need a boost to their rank to overcome keyphrase 1.

1 year ago #24
That worked, thanks!
Reply

1 year ago #7700
(Example) keyphrase = my clan number is *

(desire) Oh, I like clan (postkey)

1 year 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

1 year 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

1 year 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?

1 year ago #28
i do not know.

1 year 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?

1 year ago #33
It would open up some interesting possibilities

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

1 year 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

1 year ago #7702
If I may suggest another feature to add to the list, an 'include' and 'exclude' script would be nice.

exclude - only select this response if there are no other matches.
Like keeping a regular response from triggering until your <scripted> ones don't match, as it stands you have to "is not" all of them. While a valid check, it gets a bit tedious.

include - always select this response if it matches.
The other way around. Say you have a specific number triggered response, but also have other valid responses with it, it's a 50/50 it gets picked, risking your window of opportunity.

In theory, this is a Rank system for responses. exclude being -1 and include being +1

1 year ago #30
Hmm.. an interesting idea. Let me think about the possibilities of that. You could do a lot, potentially. Does that sound useful to anyone else?

Maybe I should have a "Feature Request" area kind of like bug stomp where people can vote on ideas.

1 year ago #34
I could see myself using of that script occasionally. And yeah, a feature request would be cool too.

1 year ago #36
I would like this as well. I've had lots of trouble getting my bot to prioritize it's responses.

1 year ago #43
A feature request section would be pretty cool

1 year ago #45
Response ranking would be pretty nice! It'd especially help out with complicated things that need a lot of AIScript such as clothing systems and similar stuff
Reply

1 year ago #7703
Is there a way to create responses for emojis? Raw?

1 year ago #31
Yes, you should be able to catch emojis with raw mode.

1 year ago #39
It just yells at me about unmatched parenthesis.

1 year ago #86
Not sure whether this is still of concern...

I'd use a Regular Expression; there you'd mask parentheses (and other special characters) by backslashes, like

:-\)
Reply

1 year ago #7704
What are you doing if user types interjections. The bot doesn't have wild cards for interjections.

1 year ago #32
If you want to match them, you could with raw mode. Typically interjections are little sentences of their own. Is there a particular one you're having trouble with?

1 year ago #35
Interjections like: ah, ooh, heh, meh, hehe,

Impossible to catch them all.

1 year ago #37
There's some plug-ins that can catch them like
(p:laughter)
(p:grunts)
(p:sex-confirm-sounds)

1 year ago #41
Cool. Thx

1 year ago #46
It doesn't seem to work.
Reply

1 year ago #7705
I've written an answer for

(m:tell_me) about (you|yourself)


I set the rank to my custom keyphrase to 99, but it still goes to #Command.

What am I missing?

1 year ago #40
I had a similar problem with (m:tell_me) about, I replaced it with (m:com) tell me (a:about) and that fixed it

1 year ago #48
Seems like a bug. I've put it on my list.
Reply

1 year ago #7706
Is it possible to search specific goto in a database? I don't know keyphrase, only goto number.

1 year ago #42
Use the search drop down and select Responses, then you can type your number

1 year ago #44
Thank you.
Reply


Posts 7,695 - 7,706 of 7,766

» More new posts: Doghead's Cosmic Bar