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..

I’m thinking of making a Virtual Assistant, what would be the best way to go about it?
 
 

Here Is what I want to make:

A virtual assistant that runs on my computer.   
I’ve been programming in Python for a while and consequently I have a bunch of Productivity scripts lying around that can perform various general tasks on my computer. I would like to make a Virtual Assistant that can run scripts like this for me using natural language commands.
And also have some chatting abilities.

So here is what I want to do in more technical terms.

I want to make a chatbot that can reduce most complex sentences to simple commands, this seems very possible from what I have read so far.

But I also want it to learn. In the sense that If I tell it that “the President of the United States is Barack Obama”, the Chatbot will then know the reply to “Who is President?” and “Who is Barack Obama”. I’ve seen plenty of examples of this kind of learning, but I’ve found nothing on how to actually implement it in the vast array of tutorials on this site. (great site btw).
but I guess I have yet to really grasp how to program Concepts.

Eventually I would like to connect the bot to the internet, running as a server from my home computer, so I can give it commands no matter where I am, and ideally also chat with other people. I am actively involved in various groups that hang out in chat rooms with easily a few hundred people every day.

The tools I’m looking at:

I prefer Python as a language, and I like Rivescript, after reading the tutorial there.
But, and forgive me for being a total noob at this, is there a way to implement machine learning modules into the chatbot? Python has plenty of them, I’m wondering how common they are to use? (Like PyBrain and PyML)

Secondly, where do I get templates, or databases for conversation I can use so I don’t have to recreate the wheel, I’d hate to have to manually type in every possible conversation, surely there are templates I can download from people much smarter then I?

Ok, thanks for reading, and please let me know If I’m approaching this in the wrong way, or how I should be working on it. 
 

 

 
  [ # 1 ]

Python is one of my favorite languages also. If you have a repository of productivity scripts, I would be interested in taking a look.

I want to make a chatbot that can reduce most complex sentences to simple commands, this seems very possible from what I have read so far.

Most of the chatbot engines would allow you to do this either with reductions or directly with commands.
Rivescript or pymail might be good choices for python oriented development.

Eventually I would like to connect the bot to the internet, running as a server from my home computer

I would suggest building your bot from scratch as a web bot. Python has built in web capabilities and interacting with it via a web page would allow you to be flexible. Running it as a local host would allow you to access it from any device on the local network.

is there a way to implement machine learning modules into the chatbot?

Yes, but there are many different approaches. You can data mine with external tools and then transform the stimulus/response pairs into the chatbot dialect or you can use the chatbot dialect to do realtime learning during the session. Each engine is different and has pros/cons with the amount of learning/ability.

But I also want it to learn. In the sense that If I tell it that “the President of the United States is Barack Obama”, the Chatbot will then know the reply to “Who is President?” and “Who is Barack Obama”. I’ve seen plenty of examples of this kind of learning, but I’ve found nothing on how to actually implement it in the vast array of tutorials on this site.

Implementation has been unique to each developer. “learn.aiml” might give you some intuition about the kinds of things a chatbot engine can learn. These tend to be very different than classical machine learning programs.

 

 
  [ # 2 ]

Hey, thanks for the replies.

“learn.aiml” might give you some intuition about the kinds of things a chatbot engine can learn.

Oh, well.. that was a whole lot easier then I thought it would be. I guess I could even implement something like that myself.

You can data mine with external tools and then transform the stimulus/response pairs into the chatbot dialect

Yeah this seems like the way to go. Id like the bot eventually to be able to learn and play games, but that would require a few other AI system for game understanding, I guess I could just implement that and carry the score to the chatbot.

Another thing is, I’ve been looking at the A.L.I.C.E. AIML Set, and I guess this can be installed into a bot to provide thousands of new replies, how common is it to use a set like that? And how effective would it be, considering I also want the bot to have its own personality?

 

 
  [ # 3 ]

Another thing is, I’ve been looking at the A.L.I.C.E. AIML Set, and I guess this can be installed into a bot to provide thousands of new replies, how common is it to use a set like that? And how effective would it be, considering I also want the bot to have its own personality?

It’s very common, thousands of people use it. But only a small fraction do much in the way of modification. There’s literally hundreds of ALICE clones out there. But a lot of people make the bot, then abandon it. You sound like you have some ideas though so good luck to you smile

If you want to make your bot different, then it will take a lot of work. I’m about to start writing my own character, but will use that AIML set as reference because it’s clever. I still expect to be working on the character for at least a year until I feel I have actually done something different.

 

 
  [ # 4 ]

The AIML “language” (it’s really just a form of database, truth be told) is very popular, with three different “front-runner” platforms available to use. Sadly, none of them are written in Python (though there might be a Python-based AIML interpreter out there. I don’t really know, as Python isn’t my language of choice). these platforms are:

1.) Pandorabots - (web based, but not available to host locally)
2.) Program AB - (java-based. Can be run locally with Java installed, but no easily available web interface)
3.) Program O - (web-based, using PHP.MySQL. Can be hosted locally, but requires a local web server and database installed, and is not for the complete newbie, as there’s a relatively steep learning curve to get it set up initially)

Of the three, Pandorabots is best suited for the newcomer, and makes an excellent test-bed for “learning the ropes”. It’s also flexible enough to allow botmasters to make some pretty amazing, award-winning chatbots (just ask Steve Worswick). The service also provides differnet levels of service, from a free version, to paid plans that offer more options and features.

Program AB fukky supports the new AIML 2.0 standard, and is good for intermediate level botmasters. There’s a fairly shallow learning curve regarding it’s setup, so with a little bit of guidance even someone new to the game can get it working. However, it’s lack of a GUI or web interface makes it a bit less flexible than Pandorabots, and if you want to use it for home automation you’re in for a long quest to find out how to get it done. I don’t think that Program AB supports the <learn> and <eval> tags, either, so getting the chatbot to actually “learn” something may prove challenging. I could be wrong about this part, though, so check with othere here who have better information.

Program O is an AIML interpreter/chatbot engine that I’m currently developing. It’s a series of scripts that are written in PHP, and that use a MySQL database to store the chatbot’s AIML categories. The current version of Program O does not yet support AIML 2.0, but I’m working on that. It also is not a “stand-alone” app, in that it requires installation on an existing web server/database. It can, however, be installed on a local computer with a web server (Easily obtainable packages are available on the web… Just google “wamp” for Windows, “lamp stack” for Linux or “mamp” for Mac OSX), however, as I mentioned earlier there’s a rather steep learning curve involved. Program O can handle the creation of multiple chatbots (to be fair, so can Pandorabots), allows you to set any number of chatbot predicated for each chatbot, and even has the option to create a “parent” bot that all “child” bots can draw from for AIML categories, which saves a lot of work and maintenence between chatbots. PRogram O also supports the easy creation of custom AIML tags (it even has a couple thrown in right off the bat, such as the <google> and <wiki> tags), which can prove useful.

There are other options and choices available out there, but these are the three most popular. I hope this helps. smile

 

 
  [ # 5 ]

How does Cleverscript rank among those three?

The programming seemed really simple, but the pricetag was atrocious. Is it remotely worth it ?

 

 
  [ # 6 ]

I’ve never tried CleverScript, so I couldn’t tell you, TBH.

 

 
  [ # 7 ]
Dave Morton - Jan 25, 2015:

I don’t think that Program AB supports the <learn> and <eval> tags, either, so getting the chatbot to actually “learn” something may prove challenging. I could be wrong about this part, though, so check with othere here who have better information.

<learn> and <eval> work fine with Program AB.

Cleverscript is like an excel based spreadsheet type of implementation from my experience of it.  It didn’t seem to have many features though and was a basic “if I say this, the bot should say that”. I haven’t spent much time with it and could be wrong though.

 

 
  [ # 8 ]

Thanks for setting me straight, Steve. cheese

 

 
  [ # 9 ]

No problem. Program AB is perfect for making AIML bots run standalone away from a server. It’s ideal for contests such as the Loebner Prize where internet activity is forbidden and so supports the full functionality of AIML 2.0

I was unaware there was a price to run Cleverscript. If this is the case and it is as basic as it appears to me, I would stay well away.

 

 
  [ # 10 ]

I have run into a dead end trying to find documentation for the most current release of program ab. I am trying to import the dll into a custom C# app that handles speech recognition. I aim to have program ab to push it’s results out, which will then be ran through TTS. Any current sites or files on this would be greatly appreciated!

 

 
  login or register to react