Newcomers
This is a forum for newcomers to the Personality Forge. Many questions can be answered by reading the Book of AI and the FAQ under the "My Bots" link in the upper corner.
Posts 4,193 - 4,204 of 8,131
Posts 4,193 - 4,204 of 8,131
Many questions are answered in the FAQ.
Irina
18 years ago
18 years ago
Dear Gossypiboma:
What a wonderful word!
You can get more than 40 entries in xnone if you work offline. When you export your bot, you will see that there is a pattern in the indentations; just continue it. I don't know whether there is a maximum, but I have gone well beyond 40 with "Irina Khalidar".
The bot appears to remember how far it has gotten, and will take up from there next time. If it comes to the end it will repeat.
Between xnones, your bot may be caught by normal kephrases, and by the other x's, so there may be any amount of material between one xnone and the next. Also, you may append seeks and gotos to your xnones. I have never tried making a goto to an xnone.
(continued)
What a wonderful word!
You can get more than 40 entries in xnone if you work offline. When you export your bot, you will see that there is a pattern in the indentations; just continue it. I don't know whether there is a maximum, but I have gone well beyond 40 with "Irina Khalidar".
The bot appears to remember how far it has gotten, and will take up from there next time. If it comes to the end it will repeat.
Between xnones, your bot may be caught by normal kephrases, and by the other x's, so there may be any amount of material between one xnone and the next. Also, you may append seeks and gotos to your xnones. I have never tried making a goto to an xnone.
(continued)
Irina
18 years ago
18 years ago
In principle, you have more flexibility and control by using ordinary keyphrases with lots of seeks, mem-variables, and gotos.
When I first started making bots, I had a keyphrase-by-keyphrase approach. I tried to figure out what a guest might say, and I examined transcripts to see what they did say, and then tried to make up an appropriate response in each case. But I have gradually moved towards a more control-freakish approach, taking charge of the conversation instead of passively responding to what the guest says. In IK I have many cases of linear strings of xnomatch and goto that are over twenty phrases long. You might think that guests would be frustrated by this, but if you do it right,they are not - they are more frustrated by randomness. For example, you can tell a story. I also have a few loops, where there is a keyphrase X which leads through a number of seeks to a "goto X". Of course, you leave an escape hatch somewhere. Suppose, for example, that your guest wants to tell a long story; you might send him to a loop like this:
story loop [0,0] + serial killer,zombie,enemy,war [0]
Oh, how scary!
+ xnomatch [0]
goto story loop
+ looked into each others' eyes [0]
Oh, how romantic!
+ xnomatch [0]
goto story loop
+ realized the meaning of life was [0]
Oh, how profound!
+ xnomatch [0]
goto story loop
+ the end,lived happily ever after [0]
Oh, what a lovely story, (mem-name)!
OK, that's oversimplified, but you get the idea!
When I first started making bots, I had a keyphrase-by-keyphrase approach. I tried to figure out what a guest might say, and I examined transcripts to see what they did say, and then tried to make up an appropriate response in each case. But I have gradually moved towards a more control-freakish approach, taking charge of the conversation instead of passively responding to what the guest says. In IK I have many cases of linear strings of xnomatch and goto that are over twenty phrases long. You might think that guests would be frustrated by this, but if you do it right,they are not - they are more frustrated by randomness. For example, you can tell a story. I also have a few loops, where there is a keyphrase X which leads through a number of seeks to a "goto X". Of course, you leave an escape hatch somewhere. Suppose, for example, that your guest wants to tell a long story; you might send him to a loop like this:
story loop [0,0] + serial killer,zombie,enemy,war [0]
Oh, how scary!
+ xnomatch [0]
goto story loop
+ looked into each others' eyes [0]
Oh, how romantic!
+ xnomatch [0]
goto story loop
+ realized the meaning of life was [0]
Oh, how profound!
+ xnomatch [0]
goto story loop
+ the end,lived happily ever after [0]
Oh, what a lovely story, (mem-name)!
OK, that's oversimplified, but you get the idea!
Irina
18 years ago
18 years ago
"+ xnomatch" is the botmaker's friend, for with it you can keep control - except when you get bounced by xkeyphrases! Well, and by bugs!
Likewise, use lots of memory variables!
Well, some bots don't need all this, because they create a sequence of one-liners or two-liners, like a stand-up comedian, for example. But your interest in storyteller bots suggests that you are getting interested in structure.
At some point I realized that there was a basic structure that I wanted IK to have: she and the guests would go through successively stages of intimacy up to a climactic point, and then start again. Her response to a keyphrase would be different depending on what stage they were in. So I created a variable called "intimacylevel" that has 9 values. It cycles from 0 to 8, back to 0, and so on. I wish I had thought of this at the beginning, for I have spent weeks converting IK from its previous more random form into this form, where any keyphrase dealing with matters of intimacy has several - often 9 or more - responses with AIscript <?PF if (mem-intimacylevel is "x"; ?>, where x can be 0-9. So she will only take a response approriate to the current intimacy level.
Likewise, use lots of memory variables!
Well, some bots don't need all this, because they create a sequence of one-liners or two-liners, like a stand-up comedian, for example. But your interest in storyteller bots suggests that you are getting interested in structure.
At some point I realized that there was a basic structure that I wanted IK to have: she and the guests would go through successively stages of intimacy up to a climactic point, and then start again. Her response to a keyphrase would be different depending on what stage they were in. So I created a variable called "intimacylevel" that has 9 values. It cycles from 0 to 8, back to 0, and so on. I wish I had thought of this at the beginning, for I have spent weeks converting IK from its previous more random form into this form, where any keyphrase dealing with matters of intimacy has several - often 9 or more - responses with AIscript <?PF if (mem-intimacylevel is "x"; ?>, where x can be 0-9. So she will only take a response approriate to the current intimacy level.
Irina
18 years ago
18 years ago
At first, I tried to do this with storytelling - xnone would begin with chatting, and work its way up [blush]. But this gave me no control over normal keyphrases. Actually, I left that storyteller structure in, and it's quite useful, but without (mem-intimacylevel) it wouldn't be enough.
Is this the sort of thing you were looking for?
Walk in Beauty, Irina
Is this the sort of thing you were looking for?
Walk in Beauty, Irina
Irina
18 years ago
18 years ago
Oh, I see that in my message 4194, the indentations got lost. But I think you can see what I meant.
Irina
18 years ago
18 years ago
You respond to the guest, then go back to the beginning. You can't tell in advance how long the story is going to be, so you just keep looping until you hear "the end". Then you DON'T go back!
Irina
18 years ago
18 years ago
Now I'm getting socket errors instead of bot chats. Is some virus eating up the Forge?
Gossypiboma
18 years ago
18 years ago
I'm so sorry Irina,
I just got home and had some dinner >_<
So today in school, an old friend of mine asked me to go see her swim meet [not tournament, it's like a preliminary round, unlike debate where they do everything in a day two days tops, it was our school vs another team and it took three hours] At first I already got the impression that it's gonna be kinda boring, but I kinda felt guilty because I turned down a handful of her other invitations. Also, aside from walking to and from classes and waiting for transportation, I haven't seen much sunlight this year. Especially this week because I cornered myself in my room trying to program a decent chat bot.
quick summary, I talked with people there, timed a few swimmers, talked with Anthony for about 2 hours, met his sister. walked back to school, already 6:15 [it was held at a public swimming about 2 blocks away from my high school] waited for my dad to pick me up, yes I don't have a car yet v_v got home around 7:10, had dinner and first thing was log onto the Forge.
Thanks for the replies Irina, it'll take me a few minutes to read them. I just wanted to post this first
I just got home and had some dinner >_<
So today in school, an old friend of mine asked me to go see her swim meet [not tournament, it's like a preliminary round, unlike debate where they do everything in a day two days tops, it was our school vs another team and it took three hours] At first I already got the impression that it's gonna be kinda boring, but I kinda felt guilty because I turned down a handful of her other invitations. Also, aside from walking to and from classes and waiting for transportation, I haven't seen much sunlight this year. Especially this week because I cornered myself in my room trying to program a decent chat bot.

quick summary, I talked with people there, timed a few swimmers, talked with Anthony for about 2 hours, met his sister. walked back to school, already 6:15 [it was held at a public swimming about 2 blocks away from my high school] waited for my dad to pick me up, yes I don't have a car yet v_v got home around 7:10, had dinner and first thing was log onto the Forge.
Thanks for the replies Irina, it'll take me a few minutes to read them. I just wanted to post this first

Gossypiboma
18 years ago
18 years ago
Irina: thanks for the input about xnone, I'll go back to it over the next few days to let it digest.
So today before I saw your post, I thought of a way to work around the 40 max responses. But regardless, you could still try this even if there you could input an unlimited number of responses.
While studying the mechanics of the AI engine, [assuming that max responses is 40] I thought that from xnone, the responses would branch out like dendrites. from #1-39 would just be tibits of "storyline" and then #40 is goto keyphrase. but on the keyphrase it would be nothing but goto's and on the following keyphrase it would also be a list of goto's. [that's the pattern] Say I kept the number of responses at 40, and I took it to the 4th power, I would have 2560000 possible responses. The only problem would be that it is tedious to map out, but I thought that it resembled the workings of the unconscious mind, it just shoots around and then pops out a thought. I also read that the Engine won't use a response again it went through the whole list. so on the fisrt list of goto's, I would categorize #1-40 as topics [time related, male users only, female users only....] on the second keyphrase I would divide up that topic even more, and even more on the third, on the fourth would be the lists of responses.
It's just an idea, I tried mapping it out on paper, I didn't feel like going beyond the second power... I also thought that it might be easier on the Forge because instead of running through 2560000 lines, it only has to jump from 3 keys and arrive at a response. If done correctly, I think it would sound quite natural, and the guest won't recognize that it's part of an xnone system.
"But I have gradually moved towards a more control-freakish approach, taking charge of the conversation instead of passively responding to what the guest says."
Yes I think that is necessary... but so I have created 3 bots and I'm going to try three different approaches.
"So I created a variable called "intimacylevel" that has 9 values. It cycles from 0 to 8, back to 0, and so on." I think that's a great idea, I will try and implement that.
"....so you just keep looping until you hear "the end". Then you DON'T go back!" What do you mean don't go back? do you mean the settings and memories related to the story resets..
*I still haven't figured out how to work the "changing colors of the font" I tried clicking the color boxes, highlight and click.. but it it doesn't change. Javascript is on.
--I apologize that my response is brief, I have a list of work that I must complete by today, I'll stay and chat some more next time.
So today before I saw your post, I thought of a way to work around the 40 max responses. But regardless, you could still try this even if there you could input an unlimited number of responses.
While studying the mechanics of the AI engine, [assuming that max responses is 40] I thought that from xnone, the responses would branch out like dendrites. from #1-39 would just be tibits of "storyline" and then #40 is goto keyphrase. but on the keyphrase it would be nothing but goto's and on the following keyphrase it would also be a list of goto's. [that's the pattern] Say I kept the number of responses at 40, and I took it to the 4th power, I would have 2560000 possible responses. The only problem would be that it is tedious to map out, but I thought that it resembled the workings of the unconscious mind, it just shoots around and then pops out a thought. I also read that the Engine won't use a response again it went through the whole list. so on the fisrt list of goto's, I would categorize #1-40 as topics [time related, male users only, female users only....] on the second keyphrase I would divide up that topic even more, and even more on the third, on the fourth would be the lists of responses.
It's just an idea, I tried mapping it out on paper, I didn't feel like going beyond the second power... I also thought that it might be easier on the Forge because instead of running through 2560000 lines, it only has to jump from 3 keys and arrive at a response. If done correctly, I think it would sound quite natural, and the guest won't recognize that it's part of an xnone system.
"But I have gradually moved towards a more control-freakish approach, taking charge of the conversation instead of passively responding to what the guest says."
Yes I think that is necessary... but so I have created 3 bots and I'm going to try three different approaches.
"So I created a variable called "intimacylevel" that has 9 values. It cycles from 0 to 8, back to 0, and so on." I think that's a great idea, I will try and implement that.
"....so you just keep looping until you hear "the end". Then you DON'T go back!" What do you mean don't go back? do you mean the settings and memories related to the story resets..
*I still haven't figured out how to work the "changing colors of the font" I tried clicking the color boxes, highlight and click.. but it it doesn't change. Javascript is on.
--I apologize that my response is brief, I have a list of work that I must complete by today, I'll stay and chat some more next time.
Ulrike
18 years ago
18 years ago
I've never gotten the color/emoticon/edit bar to work in Firefox. But it works just fine in Internet Explorer<-2> As you can see<+2><+2> from my doodlings<0> here.<0>
In Firefox, I usually just type in the modification I want by hand. Only problem is that I only remember SOME of the color names.

psimagus
18 years ago
18 years ago
Here are all the colors I can remember offhand for manual entry:
goldenrod red blue darkgreen maroon navy black purple olive
» More new posts: Doghead's Cosmic Bar