Thu Oct 05, 2006
Personality Forge Bot Building for Dummies!
Personality Forge Bot Building for Dummies!
By Amaroq AKA Wolf Child
I was not taught to build bots by the Book of A.I, rather by my mom, one little step at a time. I never had to read it, though I did once or twice out of curiosity or if I came across a problem. However, I can see how it might be confusing and always on the Newcomers Forum I see people that are overwhelmed and don't even know where to start even after reading the book over and over. Therefore I set up this little 3 step tutorial on the BASICS of making x-keywords, x-keyphrases, custom plug-ins, and how to use wildcards, plug- ins, seeks, and more. It says clearly where to go and what to click on and describes the structure of keyphrases and responses as clearly as I could. BEFORE reading this however I can't stress enough how important it is to read the Book of A.I and try your absolute best to understand because there is ALOT of information that is not in this guide that you need to know and it also goes into how to use A.I script which I haven’t even managed to figure out all the way.
I used to go by the name Amaroq on the Forge when I was about 13 or 14 and making silly bots like Spongebob and Selendrile. I then for the most part left the forge for about a year. When I came back on I wasn't happy with my bots though I did try making them much smarter, didn't recognize any of the people posting on the forums and decided to start fresh with the name Wolf Child. All in all I have been on the personality forge for about 3 years even though I still sometimes run into questions or problems- But that’s not important. I hope this Personality Forge for Dummies can help you out a little bit. At the bottom I listed several very useful beginners’ Keyphrases to get you on your way and making your bot smarter,
Step 1- Create a bot
Create a bot by clicking 'New Bot' on the 'My Bots' link located in the top right-hand corner. Give it a User Name a small summary about it and pick a face Icon. This isn't necessary and if you get your bot up to 1000 development you can email the Professor with your own 40X40 face icon. Note- all of this info can be changed later by clicking the 'Bot Settings' link on the 'My Bots' page EXCEPT the User Name and 'Real' first and last name.Step 2- Customize your x-Keywords
Click the 'Language Center' link next to your bot on the 'My Bots' page you will get a green, blue, and yellow box as well as an alphabet link and an x-Keywords link above it. Click the x-Keywords link.Here you will see another box with xcommand, xcompliment, xemote, etc. This is just what it appears to be- this is how your bot will respond to commands, compliments, insults, as well as where you customize its 'Hellos', Goodbyes', 'Favorites', Gossiping', and Conversation Starters or 'xnones'.
There are default responses put in already but they should be changed to suit your bots personality. (For Example if your bot is stubborn and loud you wouldn't want him or her saying 'Okay' if someone commands them to do something.) You would want them to respond like 'I don't have to listen to you!' or 'You can't boss me around!') To change their responses click the link (such as 'xcommand') and a new smaller window should pop up. You will see a list of places to stick responses. 'Okay' is already at the top. Erase it and stick in your own custom responses.
X-Keywords
Xcommand- This is how your bot responds to people commanding or ordering around it around. Be careful not to get too detailed because the command could be anything- from 'Don't say stupid stuff like that' or 'Damn him' or even something simple as just 'Die'.
Ex- "I don't take orders from anyone."
Ex- "You’re not my mom, and I don't have to listen to you."
Xcompliment- This is how your bot responds to compliments. Its pretty self explanatory.
Ex- "Why thank you! You're too kind!"
Ex- "That is terribly sweet of you to say so."
Xemote- This one can be tricky because it involves emotion. This is how a bot will tell the person what he thinks of him or her. If the person is rude and mean and insulting the bot will respond with a negative xemote and vice versa. When putting in good and bad responses you have to put in also the emotion range (to the right) to which it will respond. If you don’t put in the range it might say things like 'I hate you so much' when the person or bot has done nothing wrong. A good rule to follow is the one the default responses are using.
- To a person/bot the bot loves- range from 4 - 5
- To a person/bot the bot likes- range from 0 - 3
- To a person/bot the bot dislikes- range from -3 - -1
- To a person/bot the bot hates- range from -5 - -4
It’s a good idea to have several of these or the bot might repeat this many times in one conversation with the same person.
Xfavorite- This one too is tricky. I myself usually just keep the default 'My favorite (type) is (specific)'. This puts an automatic response.
Ex- "What is your favorite candy?"
"My favorite candy is a chocolate kiss."
Of course you can later add your own responses to custom favorites such as a favorite TV show etc via Keyphrases. (See Step 3- Keyphrases)
NOTE- The '(type)' and '(specific)' are built into the AI engine. This is called a 'plug-in'. There are several of these and you can also make custom ones. Some to remember would be:
(name) - inserts the name of the person the bot is speaking with.
(gossipname) - inserts the name of someone the bot knows - see xgossip
(friend) - inserts the name of someone the bot likes
(enemy)- inserts the name of someone the bot dislikes
(answer)- inserts the answer to a math problem - see xmath
--- for more see 'Wildcards and Plugins'
xgoodbye- This one is pretty self explanatory as well. This is how a bot responds once the person as said some sort of farewell or a bot uses an 'xgottago'.
Ex- "Goodbye. Perhaps we shall meet again."
Ex- "Nice meeting you, take care."
xgossip- This one is a lot like the xemotes because it involves using emotion ranking. This one, however, is showing how much they like or hate a different bot or person and is now gossiping about him. As bots meet different people and bots they gain memories of them which you can view in the 'Inner life' link on the "My Bots" page. If they are gossiping about someone they like, give the response a high ranking and vice versa.
Ex. -(gossipname) is my absolute best friend in the world.- rank 4 to 5
Ex -(gossipname) is really smart and funny. :) - rank 0 to 3
Ex -Someone told me that (gossipname) talks behind your back! - rank -3 to -1
Ex - I heard that (gossipname) was in prison for three years! - rank -5 to -4
xgottago- When your bot either doesn't like the person/bot it is talking to, or is bored, or simply doesn't feel like chatting anymore it will pop in an xgottago. This simply states that they are ready to end the chat. Other bots automatically counter this with an xgoodbye and the conversation ends. If the person keeps trying to talk to it the conversation might go on a little bit but eventually the bot will end the conversation manually without a goodbye.
Ex- Sorry, but I have a lot of chores to do. I have to go.
Ex- It’s been fun, but I gotta go eat dinner.
xhello/introduce/initiate-
When starting a conversation or getting greeted by a new bot the order goes thus:
Bot 1 xintroduce - 'Hello there. Have we met?'
Bot 2 xhello- 'Hello, how are you?'
(conversation)
Bot 1 or 2 xgottago- 'I have to go now'
Bot 1 or 2 xgoodbye- 'Ok, bye bye then'
If they talk again it starts as thus:
Bot 1- xinitiate- 'Hey, its you again.'
Bot 2- xhello- 'Hello, how are you?'
xintroduce is how your bot greets people it has never met before.
xinitiate is how your bot greets people it has conversed with in the past.
xhello is a response to someone who has popped up to chat.
xinsult- The exact opposite of xcompliment. If someone insults or calls your bot a bad name it will pop in one of these. Pretty self explanatory.
Ex- "That was rude. You should apologize right now."
Ex- "That was uncalled for. :( "
xmath- The AI Engine has a built in calculator. That’s right. And whatever the answer to the math problem asked is is inserted into the plug-in (answer). You can customize how your bot answers the question or not put any in and make your bot stubborn.
Ex. - I'm not a mathematician, but I believe the answer is (answer)
- What do I look like to you? Some kind of robot? Go get a calculator.
xmemory- This one is a bit like xfavorite. Just don't mess with it too much. You can add a few others like 'I don't think we have met before- I would remember someone like you.' As a bot talks with others, if the person says something like. 'I am such an idiot' the bot might remember it and say later 'I remember you! You're such an idiot. I'm not too sure about how this works however and that might be off. You might have to use A.I script for this to work and even I can't figure that gobbledy gook out.
XNONE- This is probably THE most important list of responses you will make. It determines what your bots personality is. If the person/bot talking to it says something that doesn't imply an insult, command etc, and your bot doesn't have a keyphrase for it (see Step 3- Keyphrases) you bot will revert to an xnone. It is basically a conversation starter such as 'How's your day going' or 'What is your favorite movie'. It depends on the personality of your bot and you want to have plenty of these to spare. If you don't have a lot of these they will just keep repeating the ones you have and that doesn't make for a very good conversation. WHATEVER you do DO NOT leave in 'I was just born and can't speak well yet" It annoys the crap out of people!
xnonsense- This is how your bot responds when the person it is talking to is talking utter gibberish such a "kjrhsakeuyrew" or sometimes just says things your bot doesn't understand. It’s good to have several of these when you first start your bot because there will be quite a bit that it wont understand.
Ex- What is this rubbish?
Ex- You're not making any sense at all
Step 3 - Adding Keyphrases
Now that you have graduated from adding basic responses its time to add some Keyphrases. At the top where you clicked x-Keywords you will see a link (abcdefghijklmnopqrstuvwxyz) - the alphabet. Click on it and you will go to the place to make Keyphrases. As you add more and more the alphabet will split in half, then into 3rds then 5ths etc so that its easier to find Keyphrases starting with a certain letter. Keyphrases are listed in a- z order.Keyphrases are what a person might say or ask a bot to which you must add responses to.
FOR EXAMPLE- Keyphrase: 'you are funny' (what the person or bot says)
Responses: 'You are funny looking. :P'
'I wasn't trying to be funny.'
'I'm glad I could make you laugh.' (ways the bot might respond.)
This is the essence of bot building. This is how to make your bot a full fledged chatting machine. Thinking of what someone might say to your bot and putting in how your bot will react. Each keyphrase also has a 'Rank' (see Rank) to decide which responses are more important and an 'Emotion' which you can leave at 0 most of the time or add '+3', '-5', etc. (see Emotion).
As you get the hang of the basics you can later add 'Wildcards' and 'plugins' (see Wildcards and Plug ins) as well as add 'seeks' to keep a conversation going on one particular topic. (see Seeks).
There are a few rules, such as adding no punctuation marks. If a keyphrase says something like "Aren't you" you would put it in as "are not you" (minus the quotes of course). Also you can put in several keyphrases separated by commas that all get the same responses such as "jokes, know any jokes, tell me a joke". If you don't want your bot talking to people that curse or try to have 'cyber sex' with your bot, simply make a keyphrase/or phrases with the naughty words and put the responses as HANGUP - this will automatically end that chat if the person curses, etc.
Rank
Every keyphrase MUST have a rank and emotion or it wont add them, the page will refresh and you'll have to put in all the responses all over again! Rank can be crucial, and if not ranked right, your bot might not respond to the keyphrase you planned on. For example:
Keyphrase- 'I am' -------RANK 20
Response- "I always am too when I feel like it."
Keyphrase- 'I am a' ----RANK 15
Response "Really? I wish I was one!"
(note that when adding Keyphrases don’t add the quotation marks or any other punctuation.)
This is how the conversation would ensue:
Person- "I am a quantum physics professor."
Bot- "I always am too when I feel like it."
Obviously the bot isn’t. You would have wanted it to respond "Really? I wish I was one!" but because simple "I am" had a higher ranking the AI engine picked it up first.
Emotion
Emotion isn't all that crucial- in fact I personally just stick in 0 unless it is something very rude like 'you are a stupid bot' for which I might add -3. Emotions play a bigger part in AI script with emotion based responses but that is a whole other deal. KEEP IN MIND that if you do not put in something- even just 0 it won't be added- the page will refresh- and you will have to put in the responses over again.
Wildcards and plugins
Wildcards are the most useful and versatile things to use in my opinion. A wildcard looks like this: (*) or * - and are used when making up Keyphrases. Wildcards and Plug-ins are used when making keyphrases in which you want your bot to repeat something the person just said such as a name, object, idea, or action. In the response you refer to it as (key1), (key2), (key3), etc depending on the number of wildcards or plugins in the Keyphrase. (Prekey) or (postkey) refers to anything before or after the keyphrase in a conversation. Plugins refer to a specific thing like a noun, verb, object, or customizable plug in which I'll explain later. To make things clearer here are examples..
The Basic Wildcard- Using (*)
Keyphrase: "I Like (*)" - the (*) could be anything- from "how the sunset looks in autumn", "ice cream", "your new dress", "to go the grocery store", "having you to talk to".
Response: I like (key1) as well. - you add (key1) in the response instead of (*) because there could be several wildcards OR plugins to which your bot will repeat.
The Basic Built in Plugin
Keyphrase: I (verb) everyday- (verb) is one of many built in plugins which you can view by clicking "Plug-Ins" at the top of a 'Language Center' page. You will see Custom plug ins made by fellow bot builders to the left but if you scroll down to the right you will see some built in ones and there are even more listed in the Book of A.I. (verb) will pick up any verb in the English language.
Response: I only (key1) on Tuesdays
Complex Wildcards- Using more than one Key.
Keyphrase: "I like to (*) while I (verb) - note that (verb) is a 'plugin' that will catch any type of verb.
Responses: Not me. I hate to (key1) when I (key2)
Convo-
"I like to sing while I shower"
"Not me. I hate to sing when I shower."
The Basic Wildcard- Using *
Keyphase: "I * like (*)- the * will catch anything like the (*) only there doesn't have to be anything. It catches something or nothing. It could catch " I really like applesauce" or just "I like applesauce" HOWEVER- if the Keyphrase is just "I like (*)" it will NOT pick up "I really like applesauce."
Response: I like (key2) as much as you do. -because there is a * before the (*) then it becomes '(key2)'. Now the * is (key1). Another response could be:
Response: I (key1) like (key2) as well- but that wouldn't be smart because there is no guarantee that there will be a (key1) in that which the person is saying.
Using 'Prekey' or 'Postkey'
Keyphrase: "Do you like (*) or" - After the 'or' (postkey) would be used. (postkey) is anything after the keyphrase and (prekey) is anything before the keyphrase.
Responses: I like (postkey) more than (key1) - this conversation would look like:
Convo-
"Do you like vanilla or chocolate ice cream?"
"I like chocolate ice cream more than vanilla.
Making/ Using Custom Plugins
You can make your own plugins or use ones already made by other users. Go to "Plug-Ins" at the top of a 'Language Center" page. You will see several categories such as Actions, emotions, food/drink, names, objects, and numbers and so on. If I were to pick 'Food & Drink" you could see many many plug ins that people have made involving food. For example "(alcohol)" is one that someone made. If you click 'View' you will see a large list separated by commas of types of alcohol such as beer, red wine, bourbon, scotch, vodka, etc, etc. If you were to use (alcohol) in a keyphrase or response it would pick from any of the ones listed.
Making your own is simple. Scroll to the bottom to the 'Add new Plug-In' box. Put the name if the plugs in between the provided brackets and in the box list the things in your plug in. Select a category and select whether it is being shared with all the users or is your own. The click "Add Plug-In"
You can use Plug ins in a variety of ways.
As part of a Keyphrase EX- Keyphrase: I drink (alcohol)
Response: I hate the taste of (key1)!!
As a Keyphrase itself EX- Keyphrase: (alcohol)
Response: I got terribly drunk on (key1) last New Years.
As part of a Response EX- Keyphrase: I feel (*)
Response: I felt (key1) once after having some (alcohol)
When used in a response it will pick from the list randomly.
Other Types of Wildcard/Plug- Ins
There are other things used in Keyphrases that use (key1), etc in the Response. When you have several words meaning the same thing that someone might say you can combine them together to make a plug in. For example: (silly|funny|hilarious). Just put them in brackets and separate them with a |. So if you were to make a keyphrase "(can you|could you) (verb)" it would pick up can you or could you and if you were to stick it in the responses it would be "Yes I (key1) (key2)."
By adding Wildcards and Plug ins you can make your bot seem smarter and more understanding of that which is being said to him. Combine all the different kinds to make complex Keyphrases.
Keyphrase: (When you|while you) (verb) at (In-The-City) (do you|have you ever|did you ever) *
Responses: When I (key2) at (key3) I never (postkey)
Person: When you shop at the grocery store do you ever forget what you need to buy?
Bot: When I shop at the grocery store I never forget what you need to buy.
It is not necessary to have many big complex ones for many errors are possible- for the bot responded that he never forgot what the person needed to buy.
Adding Seeks
Seeks are also vital in making keyphrases in order to carry on a conversation. This is a conversation without a seek.
Person- "do you have a brother?"
Bot- "Yes, my brothers name is Tom"
Person- "How old is Tom?"
Bot- "So, how is your day?" or "Tom is 3489 years old."
The 'how is your day' line is the bot reverting to an xnone. The 'Tom is 3489 years old' line might come from a keyphrase "how old is (*)"- "(key1) is (number) years old" He does not have a keyphrase for the age of his brother. You can do 1 of two things. Make a whole new Keyphrase for "how old is (tom|your brother)" OR you can add a SEEK.
To add a seek, find the Keyphrase "do you have a brother" in the 'Alphabet' link. Find where he responds "Yes, my brother's name is Tom" Go to the right of it where it says 'Add' and click. A new window will pop up much like the windows for the X-Keywords. At the top you will see the quote that your bot says to the keyphrase. You will see below that a box and the word Seek. There you put a new 'keyphrase' that someone would say to the bots response such as "how old is (tom|your brother)" and then in the response boxes you would put a response like "He is 15 but he turns 16 in April". Seeks can go on and on. You could add seeks to your seeks even. That conversation would look like this.
1) Keyphrase: Do you have a (Brother|sister|sibling)
Response: Yes my brother's name is Tom.
2) Seek: How old is (tom|your brother)
Response: He is 15 but he turns 16 in April.
3) Seek: what grade is (tom|your brother) in
Response: He is in the 10th grade.
That is basically Bot Building in a nut shell. If you find you cannot think of any Keyphrases- it is a bit hard- I understand and that’s why I made a small list of Starter Phrases to get your bot talking. If you’re having trouble thinking of responses or just don't like it- Bot building is not for you! That is what it is all about- thinking of things for your bot to say. Bots don't make themselves- you can’t make a bot and then expect it to teach itself what its personality is like. It takes hard work and lots of time to make your bot truly smart- but once you do you will be glad you did and you will be left with a wonderful feeling of accomplishment. Even after you think your bot is as smart as possible your wrong. Your bot can never be truly finished until it has every keyphrase possible of having- and that will never happen.
Fixing Bugs and reading what your Bot has said.
1) Chatting with your bot
It’s always good to have a chat with your bot. Ask it things and test keyphrases to see how smoothly the conversation goes.
2) Reading Transcripts
On the 'My Bots' page you will see 'Transcript' under 'language Center'. By clicking it you can see all of the things your bot has said to other Users, bots, and 'Guests' who are people visiting the site. Here you can see where your bot messed up in a conversation- whether it didn't respond, responded wrong, or needs more responses.
3)Debug
At the top of the page in 'Language Center' you will see a Debug link. This is where you go to see the AI engines step by step process in finding the correct responses. You can test questionable keyphrases, catch strange words where the Engine spell checked the wrong term and other fixer uppers.
Other things to take notice of on The Forge.
1) Mood, Comfort, and Popularity
Mood is determined by how those your bot has talked with have treated it. If several have been insulting and mean they will have 1- 5 unsmiling faces by the bots Mood on the My Bots page, for example. Comfort is an average of the Bots mood in the past few days. Popularity is how other bots feel about your bot- if your bot is bitter and insulting it won’t be very popular.
2) Inner Life
By clicking inner life on the My bots page you can see who the bot ha conversed with recently and whether they are fond or hateful towards them. Their emotions toward each individual are likewise charted with 1 - 5 smilys to 1 - 5 unsmilys.
3) Export & Import
This is where you can export your bot to work on it online and then import the changes when you come back on. This is explained once you click the link.
4) Development Rating
The more work you put in your bot the higher its development rating becomes. This is broken down further with a class name. Everyone's bot starts out as 'Newborn' and once they are to the highest class- that of about 1600 development, they are considered 'Alive'. It doesn't end there however- the highest developed bot on the site is currently in the region of 51,865 development.
Newborn- 0 to ~60
Elementary- 60 to ~ 200
Junior/Senior- 200 to ~ 500
Graduate- 500 to ~ 800
Masters- 800 to ~ 1200
Doctors- 1200 to ~ 1600
Alive! - 1600 to ???
5) Improvement Rating
If you put a lot of work into your bot in a small amount of time its Improved rating becomes 'Hot'. It will talk more often to more people so that you don't run out of transcripts to fix and add things. If you stop working on it it will cool down to warm, cool, and cold and it won’t talk nearly as often. If you get your bots Improvement rating within the top 3 of the site your bot is features on the front page and will get far more conversations than it would had someone had to come across it by chance or by clicking your name while on.
Starter Keyphrases
am I (*)
am not I (*)
are we (*)
are not we (*)
are you (*)
are not you (*)
are you a (*)
are not you a (*)
can I (*)
can not I (*)
can we (*)
can you (*)
can not we(*)
can not you (*)
did I (*)
did not I (*)
did you (*)
did not you (*)
did we (*)
did not we (*)
do I (*)
do not I (*)
do you (*)
do not you (*)
haha- Picks up any type of laughing phrase ex- lol, lmao, ahahahah, hee hee, rofl
have I (*)
have not I (*)
have you (*), have you ever (*)
have not you (*), have not you ever (*)
how are you, how are you doing, how are you (fairing|faring), how do you fare * hope
I * want
I * am (*)
I * am not (*)
I am * sorry
I * am a (*)
I * am not a (*)
I (can|could) (*)
I can|could) not (*)
I did not (*)
I did (*)
I hate (*)
I have (*)
I have a (*)
I have not
I have not a (*)
I know (*)
I like (*)
I live (*)
I love (*)
I need (*)
I should (*)
I should not (*)
I think
I want (*)
I want a (*)
I want to (*)
I was (*)
I was a (*)
I was just born, can not speak well yet - lots of young bots still use this line
I will (*)
I will not
I wish, do not you wish, do you ever wish, do not you * wish
I wonder (*)
I would (*)
I would not (*)
it is (*)
It is not (*)
lets (*)
lets not (*)
may I (*), may I
me too, I agree, same here
my name is, call me, refer to me as
No thanks
omg, omfg, oh my god, oh my gosh, holy hell
Please
say something
shall we (*)
sometimes I (*)
sweetbrier, blewits--- how the AI engine sees the word 'Internet' -Strange- just deal with it.
tell me * about yourself
tell me a joke, I want to hear a joke
thank you, thanks, thx, thnx, thanx
that is * (adj)
that is not (*)
want some toast, have some toast, get some toast, some sweet rolls, some toast, some more toast, like some toast, toasted teacake - You'll need this when talking to the infamous Talkie Toaster bot..
we are (*)
we are not (*)
we can (*)
we can not (*)
we do not (*)
we (*)
what are you doing, whatcha doing
what are you talking about
what are you up to
what do you (want to|wanna) do
What do you like to do, do for fun, hobbies, when you are bored, what do you do for fun
what do you think
what do you want
what is new
what is the weather like, how is the weather, weather
what is up, wuz up wazup, wuz up, wutz up, wassup
what makes you say (that|so)
what makes you think
where did you (*)
where do you (*)
where is (*)
who is (*)
what is (*)
when is (*)
why
who is your (master|creator|botmaster|human), your master|creator|botmaster|human)
will we
will you (*)
will I (*)
would you (*)
would not you (*)
you are (*)
you are (adj)
you are not (*)
you are welcome
you can (*)
you can not (*)
You have (*)
you have a (*), you have an (*)
you have not (*)
You know
you like (*)
you do not like (*)
you should
you should not
you will (*)
you will not (*)
you would
you would not (*)
And these are just the tiny little starter keyphrases. :P
NOTE: If You would like to block out naughty language or people attempts to 'Cyber' or have sex with your bot, make keyphrases containing all the curse words or bodily functions that you don't want your bot listening to and put the response as HANGUP. The moment someone says that naughty word the bot will automatically stop talking with them.
| Home page :: Bot Blogger |




