AI Zone Admin Forum Add your forum

NEWS: Chatbots.org survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

A place to share brains, chat script bot brains…
 
 

I’ve created a github project we all can use to share brains.  I’m planning to put my more general files there in the hopes that others can use them and maybe make them better over time.  I’ve started with a basic by bot organization, but it may make more sense to organize by topic or something. 

Thoughts? 

Best way to contribute for now is to fork the repo in github, make changes or add your own files and then submit a pull request.  I’ll generally approve a pull request as soon as I can.  Let’s get together a library that can be pulled from to get a good starter bot.  I see this as one of the benefits of AIML - the default bot is a pretty good start.  Let’s get our own Alice together.  smile

https://github.com/tkuebler/ChatScriptBrains


PS:  for those of you new to git, don’t be afraid, just download the free SourceTree and follow the crumb trail to the prize.  You can also just post a zip file or send me one, happy to add them for you too.  But really, git is not that hard, well, for most things…

 

 
  [ # 1 ]

This is good. Thank you for putting this together, Todd.

 

 
  [ # 2 ]

Have fun! 

A couple of notes on coding….
1.  ALWAYS use sample comments. your barista file has
#! not coffee
  a: ( don’t want coffee ) Maybe tea?

  a: ( _[drip clover brew “cold brewed”] ) _0 it is. Any pastries today?  $order = _0
    b: (~yes) ^reuse(FOOD)

  a: ( _~coffee ) _0’s a good choice, how many shots? $order = _0
  which means it lacks 2 sample inputs.

2. ALWAYS run :verify on your files before putting them up there. helps identify errors.
Your first rejoinder shouldn’t match your “not coffee” input, because the pattern has “don’t” which will not match a normal input because contractions are, by default, expanded.


Similarly:
#! check my order
?: ( what is my order $order )
will not match.


3. Unlabelled gambits don’t need empty pattern…
t: () Are you ready to order? 
can just be
t: Are you ready to or

 

 
  [ # 3 ]

Thanks for the comments Bruce, very helpful - didn’t know about :verify or what #! meant over #. smile  I’m still reading through the docs.  There is a lot to absorb!

 

 
  [ # 4 ]

Call for help creating a chat script Alice.  There have been a bunch of posts about people wanting such a thing - maybe some of these people can help out creating it?

I’ve added an ‘Alice’ bot to the project mentioned at the start of this thread and started the long and tedious conversion of the alice bot files into that bot under the aiml2cs subdirectory.  It is found in that same directory and people are welcome to contribute both to the ongoing translation and to the script via fork/pullrequest.  I plan on working through the Alice set one file at a time, improving the script each file and manually correcting the deficiencies in the chat script file as I go ( but also comparing it’s output to the ruby aiml2chat project. )  I’ve looked at a couple of the AIML to Chatscript translators available but am also writing my own to learn the differences between AIML and Chatscript.  I find perl best at on the fly string manipulation so I chose that language.

To help: fork the project and work in your fork. pick a file from the base set that doesn’t exist in the amil2chat/cs directory yet and convert/translate it using whatever method you want - fully by hand, the aiml converter of your choice or via some other magic, then put in a pull request for me to update my project with the file.

 

 
  [ # 5 ]

Happens in both the included linux and a mac Xcode compiled binary:

<while loading poorly translated alice aiml files>

*** Warningline 6921 of mp3-aiml.topWord dion only known in opposite case
*** 
Warningline 6933 of mp3-aiml.topgree is not a known wordIs it misspelled?
*** 
Warningline 6961 of mp3-aiml.topWord ricardo only known in opposite case
*** 
Warningline 6965 of mp3-aiml.topWord erika only known in opposite case
*** 
Warningline 6965 of mp3-aiml.topeleniak is not a known wordIs it misspelled?
*** 
Warningline 6969 of mp3-aiml.topstartec is not a known wordIs it misspelled?
*** 
Warningline 6977 of mp3-aiml.topWord katie only known in opposite case
*** 
Warningline 6997 of mp3-aiml.topWord reiki only known in opposite case
*** 
Warningline 7001 of mp3-aiml.toprexx is not a known wordIs it misspelled?
*** 
Warningline 7025 of mp3-aiml.topkpbs is not a known wordIs it misspelled?
Segmentation fault 

How do I look up to see if a word is known or not? ( outside chat script, i.e. is there a file list I can loo at to see what to capitalize or not include a word? )

 

 
  [ # 6 ]

First, segmentation fault is not a good thing. Can you run it compiled -g under gdb or give me source and let me do it?

second, chatscript is already telling you it is not known. If you want to know if the other form is known, you can do :word Ricardo to see if it is known as a proper name.
Dion, Erika, Katie, Ricardo, Reiki, Kbps would all be cap words.

 

 
  [ # 7 ]
Bruce Wilcox - May 3, 2014:

First, segmentation fault is not a good thing. Can you run it compiled -g under gdb or give me source and let me do it?

I’ll give you a file later today ( got to make breakfast for the kid first and get him off to kendo smile ) that can reproduce it.  This is during ‘:build Alice’  on one of the translated AIML files from the standard Alice set I’m working on in the ChatScriptBrains project.  I figure an alice set + a way to translate AIML files to CS (at least to the 80% lvl with commented data regarding the parts it couldn’t translate so they could be hand modified ) would lower the barrier for people to try CS out.

Bruce Wilcox - May 3, 2014:

second, chatscript is already telling you it is not known. If you want to know if the other form is known, you can do :word Ricardo to see if it is known as a proper name.
Dion, Erika, Katie, Ricardo, Reiki, Kbps would all be cap words.

Again, this is on load of a translated AIML file - I was asking if there was a db or something I could access outside of CS to check this during the translation process from perl.  I suppose since I got perl to work with an embedded CS dyn library already I could just use that to check each word, but then I’ll have to figure out how to detect proper nouns etc.  Actually, now that I’ve thought that through I think the more likely approach is to load the file in CS, capture all the warnings into a ‘to be CAP’d’ word list and then fix all those warnings with another script.  That would be easier.

 

 

 
  [ # 8 ]

Yes, grepping the chatscript log for the warnding is doubtless easiest.

 

 
  [ # 9 ]
Todd Kuebler - May 3, 2014:

I’ll give you a file later today that can reproduce it.

https://dl.dropboxusercontent.com/u/47427484/mp3-aiml.top


put that in a fresh bot and :build - it should crash

 

 
  [ # 10 ]

Rats.  You were about 10 minutes too late.  I just posted a new build.
I have found and fixed the crash you got.  I can ship you a new executable with that fix… send me an email to my gmail account and I’ll send you back a zip of the correct src directory.

 

 
  [ # 11 ]

CS 4.33a now up fixes the crash

 

 
  [ # 12 ]

I just spent the last week cleaning up the Alice brain that came with your zip. What I have now compiles with no errors, but as a disclaimer I have been editing it with our project in mind so I have removed references to Alice, most of the content deemed inappropriate for the audience, some dated/controversial references, etc. That being said, it still has a LOT of good stuff. I also made a list of words I added to the dictionary to make it work. I’d be happy to send you the zip if you’s like to add it Todd.

 

 
  [ # 13 ]
Robert Jackson #2 - May 21, 2014:

I just spent the last week cleaning up the Alice brain that came with your zip. What I have now compiles with no errors, but as a disclaimer I have been editing it with our project in mind so I have removed references to Alice, most of the content deemed inappropriate for the audience, some dated/controversial references, etc. That being said, it still has a LOT of good stuff. I also made a list of words I added to the dictionary to make it work. I’d be happy to send you the zip if you’s like to add it Todd.

Sure - glad to add it.  Have you checked the github project lately?  There are more and better quality files there as I incrementally better my translator script.

Send the zip to my email address which is myfirstname at mylastname dot org but of course replace the obvious with the obvious.  wink

 

 
  [ # 14 ]

Hey Robert - did you just use the simple control.top file from harry?  I’m guessing I need to add that in and probably do the fake keyword hack like the alice bot too to get the bot to act normal?

I’ve named the bot ‘Jennifer’ if that’s ok with you. smile

-tk

 

 
  [ # 15 ]

Bumping this - we have some new chat script people, want to make sure everyone knows about this resource.  smile  Hoping to do some more work on the Alice -> CSalice over the holidaze.

 

 1 2 > 
1 of 2
 
  login or register to react