Ruby, AI, Chatbots, Semantic Avatars and memory (persistence?)

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

GPO Box 3411
Sydney NSW 2001
Australia
E-mail: [email protected]

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 :slight_smile:

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.

Peter,

On 2012-09-17 04:29, Peter H. 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 R.

GPO Box 3411
Sydney NSW 2001
Australia
E-mail: [email protected]

On 17 September 2012 00:51, Philip R. [email protected] 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.