People, I have a need for a "Semantic Avatar" for a (non-profit) web site (using a typed interface to begin with). There are many chatbots around but I was interested in what might be possible with Ruby. Most of the Ruby AI stuff is from some years ago and it doesn't look like there has been much progress recently. Do people here know of, or are involved in developing something that might be of interest or useful for what I want? The main need is for the entity to have a good memory and to be able to build on previous discussions it has had with the same user. Thanks, Phil. -- Philip Rhoades GPO Box 3411 Sydney NSW 2001 Australia E-mail: firstname.lastname@example.org
on 2012-09-16 17:38
on 2012-09-16 20:30
There are a number of chatbots in Ruby out there but after I looked at them I ended up creating my own. You program it like this miho.learn "whats|what_is the time?", "what time is it?", "time" do say_time() end Where say_time() returns a string which is displayed to the user [AIML]$ rvm 1.8.7 [AIML]$ ./shell.rb [Miho] Hello, how are you? [You] what is the time [Miho] It is nineteen fourteen [You] what day is it [Miho] Today is Sunday [You] whats your ip address [Miho] Sorry I didn't understand 'whats your ip address' [You] what is your address [Miho] My ip address is 192.168.1.2 [You] bye [Miho] Bye. Come again [AIML]$ It's pure ruby. I was in the process of converting the AIML ruleset over but I was less than impressed with the rulesets (they didn't really have much of interest in them) so I gave up on that. Presently I have become sidetracked trying to integrate speech input and output so the full Ruby shell has ground to a halt. I do however have mruby embeded in a C based program that allows mruby to use espeak to to speek the results. I am in the process of getting Pocket Sphinx STT (speech to text) to integrate with the C shell so that the input no longer comes from the keyboard. Finally a computer that I can talk to that is fully programable in Ruby :) Then to port it to the Raspberry PI and away we go, it presently just runs on Ubuntu with much cajoling. If you want the Ruby only version I can zip it up for you, though you will probably look at it and go "Is that all?" but it might be a useful starting point.
on 2012-09-17 01:52
Peter, On 2012-09-17 04:29, Peter Hickman wrote: > Where say_time() returns a string which is displayed to the user > [You] what is your address > embeded in a C based program that allows mruby to use espeak to to > If you want the Ruby only version I can zip it up for you, though you > will probably look at it and go "Is that all?" but it might be a > useful starting point. That would be great! What about memory (persistence?) between sessions? - has that been of interest to you? Regards, Phil. -- Philip Rhoades GPO Box 3411 Sydney NSW 2001 Australia E-mail: email@example.com
on 2012-09-17 11:36
On 17 September 2012 00:51, Philip Rhoades <firstname.lastname@example.org> wrote: > That would be great! What about memory (persistence?) between sessions? - > has that been of interest to you? I have considered persistence but have been sidetracked with getting speech input and output to work. Having some sort of memory is going to be essential and I will have to get it to work when the diversion is over. I will send you the zipfile offlist.