User Control Panel
Advertisements

HELP US, HELP YOU!

AI::CKS Modules

 
Post new topic   Reply to topic    Bot Depot Forum Index -> General Chat & Discussion
View unanswered posts
Author Message
Nate
God Like
God Like


Joined: 12 Nov 2003
Posts: 553

Reputation: 41.3Reputation: 41.3Reputation: 41.3Reputation: 41.3

PostPosted: Fri Dec 19, 2003 4:59 pm    Post subject: Reply with quote

Chaos A.I. Technology is creating a series of "AI::CKS" modules to be used with bots. The first three are going to be named after the CKS bots (Chaos, Koda, and Siko). Anyway, here's their definitions...

AI::CKS::Koda - A static response driven chatterbot. Similar to the typical AIML bot.
AI::CKS::Siko - A bot that learns new static replies.
AI::CKS::Chaos - A bot that learns how to talk via matching patterns in your language.

The modules AI::CKS::Koda & AI::CKS::Siko I don't need much help with. But if anyone wants to contribute something to help out with AI::CKS::Chaos, you can post your philosophies and ideas here. If you're a little fuzzy about how I'm planning on making Chaos, you can check out the site http://www.a-i.com/, they have a child HAL bot that learns like I'm planning to make this one learn. Of course, Ai isn't releasing any codes.

I'm mostly looking for people who have a lot of experience in making learning bots that learn in all kinds of ways, such as the creator of AWordExperiment (the bot learns to trust people). All who contribute even a little will be in the credits section of this module.
__________________________________________________

Here's some information so far on AI::CKS::Chaos:
» Name
AI::CKS::Chaos - The CKS Ultimate Chaos Artificial Intelligence module.

» Synopsis
Code:
use AI::CKS::Chaos;<br /><br />my $chaos = new AI::CKS::Chaos (<br />     Name   => "Ultimate Chaos",<br />     Folder => "./chaos_bot",<br />     Debug  => 0,<br />);<br /><br />$chaos->define_trainer ("cks","owner");<br />$chaos->define_trainer ("cks","trainer");<br />$chaos->define_trainer ("aim","Shards2k6");<br />$chaos->define_trainer ("msn",'myname@nowhere.net');<br /><br />while (1) {<br />     $chaos->console();<br />}


» Description
(still being worked on... I'll probably come up with a better one when the module is complete)
The Ultimate Chaos child machine A.I. robot. This robot learns your language by matching patterns in your messages.

» Methods (so far)
new (Name => $name,Folder => $folder,Debug => 0)
Create a new AI::CKS::Chaos instance.

_init ()
Should only be called from the new() sub.
___________________________________________

Anyway, when you create a "new" bot (with a folder that either doesn't exist or the bot is missing a DNA file), it calls the module AI::CKS::Chaos::Birthday, which goes through the random DNA generation thing and creates like hair color and stuff for your bot.

And then it creates all the files. Here's the initial folder tree for a new bot:
Code:
./chaos_bot<br />     instinct/<br />          trainers.dat<br />     language/<br />     memory/<br />     birthday.dat<br />     DNA.dat


Trainers.dat - List of the trainers defined on startup.
Birthday.dat - localtime() of the bot's creation date.
DNA.dat - DNA file.

The DNA file kinda looks like this:
Code:
A=2<br />B=3<br />C=3<br />D=1<br />E=20


Where A is the bot's gender, B is the hair color, C is eye color, D is natural optimism level, and E is its natural social level.

Optimism Level:
1 = optimistic
2 = normal
3 = pessimistic

Social Level:
1-19 = introverted
20-39 = shy
40-59 = normal
60-79 = outgoing
80-100 = social animal

Ok.. I think that about covers what I have done with the modules so far. If you have any ideas to submit, reply here. You could either send code snippets, ideas or philosophies, new items that should go in the bot's DNA (the 5 items there are kinda few), or pretty much just anything.
Back to top
eric256
The Keymaker
The Keymaker


Joined: 03 May 2006
Posts: 2292
Location: Colorado
Reputation: 47Reputation: 47Reputation: 47Reputation: 47Reputation: 47

PostPosted: Fri Dec 19, 2003 7:40 pm    Post subject: Reply with quote

I'm very curious about your DNA file. Is there any reason you are using letters for those variable names instead of there actual name? At first i thought it was so you could do a kinda mutation to get a different bot, but then the numbers are different ranges.

If you were thinking about have it mutate then i would suggest that you don't use names at all. Just have a 0-99 number on each line, and then know that line 1 is X and line 2 is Z. For things that don't need a 0-99 just divide or mod to get the number. Say one is just a yes or no, then just say if its over 50 its true, if its under 50 its false.

On the other hand if you weren't thinking about mutations then i would definitly go with

Code:
<br />gender=male<br />hair=blue<br />...etc...<br />



Now for learning. On a philosiphy note, part of the problem with teaching bots is that you have no context. For instance when you were learning the words 'yes' and 'no' you had some context. You could tell from the expression on your mothers face weather she was encouraging you or discouraging you. You could tell if you got in trouble for going agianst a 'no', etc. The problem then is that you have no such context for a bot. The second problem is that half of our learn (perhaps much more than half) is based on real life objects that we can touch, see, smell, etc, and we combine all this together and slowly get a general idea of what things are and how they work. You then can see that one main problem with creating a bot that can learn, is not only how do manage that programing but also how do you manage the teaching. You should figure out what you want it to learn, then figure out a way you could teach it that. once you've done those two steps you should be able to figure out how to make a program that learns from your teaching.

good luck!

_________________
Eric256
Proud previous owner and current admin of Bot-depot.com
Back to top
Nate
God Like
God Like


Joined: 12 Nov 2003
Posts: 553

Reputation: 41.3Reputation: 41.3Reputation: 41.3Reputation: 41.3

PostPosted: Sat Dec 20, 2003 2:15 am    Post subject: Reply with quote

Ah. As for the DNA, I assigned single letters so that it would become difficult for somebody to modify the DNA to meet a desired result. When I added more features the letters would go on and on and in random order.

And as for the learning thing, I forgot to include these commands:
Code:
$chaos->praise();<br />$chaos->scold();


That's so you can encourage or discourage the bot. In some special online password-protected chat thing where only the trainers can go, there'd probably buttons that automatically do that, but when incorporated into a messenger there'd probably be admin-only commands for it.

And as for everything else, the bot would just take your message as an object. Sort it into random chunks (like "the" would be a chunk, "the dog" might be another, etc.), sort them into categories over time, etc.

And when it says something stupid, scold it. When it says something good, praise it. When this engine is complete, it should be able to communicate with other bots just like it without just flooding eachother.

Here's some conversation between Ai's HAL child and a trainer at 15-17 months:
Quote:
Trainer: red ball
Hal: ball ball
Trainer: bunny and dolly play ball
Hal: ball ball ball
Trainer: give me dolly
Hal: dolly dolly dolly
Trainer: give me bunny
Hal: bunny
Trainer: give me red ball
Hal: ball ball

Trainer: give me duck block
Hal: ball block
Hal: duck block block block
Trainer: play with dolly
Hal: dolly dolly
Trainer: duck, say duck
Hal: block


Well it goes on and on...

18-23 months
Quote:
Trainer: where is daddy?
Hal: daddy gone
Trainer: daddy is at work
Hal: daddy work bye bye
Trainer: yes daddy has gone to work
Hal: daddy work bye bye bye bye
Trainer: do you want to go to the park?
Hal: yes bye bye
Trainer: ok we can go to the park
Hal: take car bye bye
Trainer: we will take the car because the park is far. let's pack some things in a bag
Hal: ball now park
Trainer: yes we should put the ball in the bag
Hal: ball now park mommy
Trainer: wait hal, we need to take something to eat
Hal: bananastory? night now
Trainer: we need to take something to eat
Hal: bananas
Trainer: ok we can take some bananas
Hal: monkeys eat bananas
Trainer: you're so smart hal. do you want to take a book?
Hal: juice mommy
Trainer: sure we will take some juice as well


That's Ai's Hal bot. Pretty nifty. They sent the transcripts to a pediatrician and got the results that Hal is a normal healthy little boy (but he didn't know it was a machine).
Back to top
Display posts from previous:   
Post new topic   Reply to topic    Bot Depot Forum Index -> General Chat & Discussion All times are GMT
Page 1 of 1

 



Protected by phpBB Security phpBB-TweakS
phpBB Security Has Blocked 9 Exploit Attempts.
Antispam Captcha Mod by phpbb-security.com
Powered by phpBB © 2001, 2005 phpBB Group