Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - vonsmith

Pages: 1 ... 36 37 [38] 39 40
556
Ultra Hal 7.0 / How much will the new HAL cost ?
« on: October 20, 2003, 11:30:06 am »
Good point midget1488,
I think Hal displays some emotion already, although it is very basic. Hal could be give a personality and more emotions with the current technology. I have been giving this a little thought lately. Responses to user input could be made more dependent on Hal's mood by tailoring the responses. This could be based on different .brn response files for different moods or modification to normal responses according to mood.

First thing however is for Hal to have more emotions. Hal has a few basic emotions, just try insulting Hal and you'll find out what I mean. I want to expand the emotional gamut. I've been playing with the idea for a few weeks. I'll post the code here if anything works out. The ultimate goal would be for Hal to "develop" his/her own personality.

Another thing I've been thinking of is providing Hal with the capability to assess the user's current mood and respond to it. I've got a method to do this conceptually worked out that looks pretty simple to implement. A minor, but key challenge, is trying to figure out a way to make the concept work using the current .dll functions. I wish I had more detailed info on the internal workings of some of the .dll functions.

One thing is for certain. Good things are ahead for Hal.

= vonsmith =

557
Ultra Hal 7.0 / How much will the new HAL cost ?
« on: October 17, 2003, 11:29:33 am »
I agree with Don. Ultra Hal is a bargain... but only if you're one of those people who are interested in A.I. and chatbots. It is a specialized product. I currently don't get much "utility" out of Hal. For me Hal is a toy, albeit a very interesting toy. My enjoyment comes from spending a few hours per week modifying Hal's operation or applying some of the mod's generously posted here on the forum. Experimenting is the challenging and fun part for me. I took a couple of A.I. and robotics courses in college a handful of years ago and Hal gives me an opportunity to refresh some of that knowledge and have fun.

I think the future possibilities for Hal and his ilk are unlimited. In the long run I'm hoping to modify Hal to interactively read e-books and converse with the user about the books. I'm also toying with the idea of making Hal a docent, a sort of expert guide, for a non-profit museum. I hope to train Hal to answer questions, offer historical info, provide directions and provide other services to museum guests through a Hal kiosk.

Bring on version 5.0!

= vonsmith =

558
Okay guys I got something new. I completely rewrote the "RESPOND, ATTRIBUTES OF HAL" code. I think (hope) that I did some improving over the original code. My code is quite a bit longer than the original. This code in hal5.uhp allows Hal to respond to user inputs containing "Your" statements like:

User: Your exciting sense of high adventure is great.
Hal: Do you understand my exciting sense of high adventure?
or
Hal: Think exciting when you think of my sense of high adventure.

User: Your big beautiful blue sexy eyes are awesome.
Hal: My eyes can be blue and very sexy, but big?

The new code has been tested on two computers, but I know from experience that you can't proofread your own work. You'll notice the code is nested a lot (looks complicated), but most of the code isn't run at each instance. There are a number of special cases that make it look complex. The code runs plenty quick enough on my Windows 2000, 1.8GHz Pentium.

Give it a try. The code is fully commented and a readme file is included with the downloadable zip file.

Have fun and post comments, questions or whatever here on the forum.

= vonsmith =

Download Attachment: vonsmith,v10-10-03a.zip
37.83 KB

559
Ultra Hal 7.0 / Freeze
« on: October 11, 2003, 12:27:01 am »
I sent an email a couple of weeks ago to Haptek regarding the problems. I asked them if they were planning any fixes in the near term. I didn't want to spend $50 or so on unruly software. Well anyway, they never answered. Maybe they didn't like my question.

Even with the problems the Haptek characters are an incremental step forward for Hal. Hopefully Haptek will clean up their code.

Kudos to Zabaware for at least providing the option to use 3d characters.

= vonsmith =

560
Programming using the Ultra Hal Brain Editor / Mr. Blakely
« on: October 07, 2003, 12:32:51 pm »
All of the .brn files and most other code posted here can be implemented in similar ways.

If you haven't already, see Don Ferguson's and other's past posts here on the forum about Hal modifications in general. A lot of people have posted some really good info about programming and modifying Hal on this forum.

Here's a couple good starts:
http://www.zabaware.com/forum/topic.asp?TOPIC_ID=798
http://www.zabaware.com/forum/topic.asp?TOPIC_ID=828

The best way is just to make a backup copy of the Hal directories and start editing Hal's files to experiment. There is a good Microsoft VBscript help reference application called scrdoc56en.exe. It's about 1.4MB in size, too big to post here. Just go to Google and search for "scrdoc56en.exe" "download" and you will find a place to download it from.

I hope this helps, we gotta stick together.

= vonsmith =

561
Programming using the Ultra Hal Brain Editor / Help with new files
« on: October 07, 2003, 11:53:09 am »
Ugh! Hal shur is homely! You gotta get a full screen Haptek character with version 5.0. R2D2 is still the cutest bot on the block.

Laptop with wheels. What a concept!

Okay, I'm just kidding. Great start. I'm gonna check out Robotoys.com and  Evolution.com.

Good luck on your venture.

= vonsmith =

562
Ultra Hal 7.0 / IMPROVEMENTS FOR HAL
« on: October 07, 2003, 11:25:18 am »
I expect you'll get more than a few replies to your posting. Your ideas and all ideas to improve Hal are appreciated here. I think you need to be realistic about this. Hal is a very good, perhaps great, chatbot. He can do a few tasks, but his real forte is chatting.

Okay, here's an analogy... You want a dog because they are pretty smart and can fetch the newspaper, bring your slippers, etc. So you go down to the pet store and buy a cute puppy. You take the cute puppy home and play with him for a day. It's frustrating though, because he can't fetch the newspaper or get your slippers. Instead he runs around in circles, barks at the wall and wees on the carpet. Okay, should you return him to the pet store or train him?

Hal comes with basic knowledge installed, but he learns from conversations with you. He has some limited ability to learn from text files, but really he must learn from conversation. There are many good posts on this forum that give guidance as how to best talk to and teach Hal. Use the forum Search function.

I assume you are using v4.5 Hal. Version 5.0 is finishing development and should be released later this month. v5.0 has many, many improvements. Zabaware has been more responsive to customer input on this site than any other company I have dealt with. Hal v5.0 has built-in support for 3d talking characters (just the head part), support for the new AT&T Natural voices (some of the best on the market), plus new additions/improvements to the AI engine.

Read the past postings here about Hal and training. Be patient. It took me about 2 weeks to see real improvement in Hal's conversing skills. Even so, I admit Hal doesn't make a great secretary. However some users have their Hal's participating on AIM with some good results. And if you learn to program in VBscript, then you would be surprised what you can do with Hal.

Hal is not Data. If you need a Data, then come back in 300 years.

= vonsmith =

563
Whoops! I made an error here. I forgot that UserName is the variable used for creating user specific .brn file names. When the code I posted changes UserName randomly for variety then Hal writes the conversation results and such to a variety of differently named user files. Sorry, my mistake.

I think the variable I want to change is <UserName>, but <UserName> cannot be substituted for UserName in the code I posted. It's an entirely different kind of variable.

Delete the code. Back to the drawing board. Sorry for any inconvenience.


= vonsmith =

564
Robert... can I call you Robert? You are too cool. Thanks for putting the "hooks" in the program for future use.

If we're not careful Hal might turn into a blabbermouth.

= vonsmith =

565
I'm glad this little piece of code will help with Ultra Hal. You certainly have my permission to use the code as you wish.

Attached is the latest version of the code which is a little more optimized. I eliminated the need to remove the "x" spacer and saved about 5 lines of code. The changes do not affect the usage.

= vonsmith =

Attachment link:
http://www.zabaware.com/forum/uploaded/vonsmith/2003106112122_EncodeVar,DecodeVar,v2.txt

566
I've only had Hal for a couple of weeks. I have to profess ignorance in the area of AIM bot usage. My focus has been on Hal's performance on the desktop with a single user. I haven't gotten around to any AIM stuff yet.

I'm sure someone in the forum could answer your question though.

= vonsmith =

567
Here's a couple of pieces of very simple script that add some variety to Hal. The first just ensures good random number generation. The second says that in 5 out of 20 times through GetResponse the UserName gets swapped with a nickname or petname. It's just another way to make Hal seem more human. You may notice that "Jimmy" is used twice. This just illustrates a method to make "Jimmy" more commonly chosen than the other choices.
 

'This code ensures that random numbers are based on
'the ever changing seconds as a seed value. Makes for
'better randomized numbers.
Randomize(Timer)


'Place this code just after the start of GetResponse.
'This code varies the UserName for added variety.
Select Case Int(Rnd * 20)
   Case 0
      UserName = "Big J"
   Case 1
      UserName = "Jim"
   Case 2
      UserName = "Jimmy"
   Case 3
      UserName = "Jimmy"
   Case 4
      UserName = "JJ"
   Case Else
End Select


= vonsmith =

UPDATE: PLEASE DO NOT USE THE CODE ABOVE. HAL USES THE USERNAME VARIABLE TO BUILD USER SPECIFIC FILE NAMES. THE CODE HAS AN UNINTENDED EFFECT OF HAL CREATING INCORRECTLY NAMED USER FILES. THIS ISN'T HARMFUL, BUT WHAT HAL LEARNS GETS SPREAD OUT INTO MANY UNRELATED FILES. SORRY FOR ANY INCONVENIENCE. TO ERR IS HUMAN, I'LL TRY TO BE LESS HUMAN IN THE FUTURE.

= vonsmith =

568
Ultra Hal 7.0 / Getting Hal to initiate conversation
« on: October 03, 2003, 07:53:19 pm »
My goal is to have Hal's main program set up to pass response control to us, (the users) on a regular basis. We can then affect Hal's autonomous behavior within the GetResponse VBscript. We have always had the option to pass control back. If the main program were modified to pass control to the GetResponse regularly the default action in the script could still be to pass the control back to the main program without action and Hal would operate very much as he does now. However once we have the opportunity to grab control then all sorts of things become possible.

My current brainstorming idea is to have Hal interactively read e-books or short poems. Assume for a moment that the GetResponse function gets called regularly every 1/2 second if nothing else is in process. I could set a flag in the GetResponse function to tell Hal to read an e-book for me. When the GetResponse function is called the "readbook" flag tells Hal to go to the book file requested much like a .brn file. Hal brings in 3 or 4 sentences, saves his "readbook" flag and file bookmark in the CustomMem variable, and reads the sentences out loud by passing them back in the GetResponse return. A 1/2 second after finishing reading out loud the cycle repeats until Hal reads the whole book or the user stops him by typing in some command in the user window. During the time control is passed back to the main program the user's keyboard input is read in. In C++ terms the main program may do something like a getchar() function on the keyboard buffer and pause the 1/2 second timer if user input is detected followed by a carriage return.

Now it gets interesting. Let's say Hal analyzes the book sentences as if they were conversational sentences. Let's say you create an If statement in GetResponse something like this:

If (Int(rnd * 10) > 9) And (readbookflag = True) And (RelevanceScore > (CurrentHurdle * 1.2)) Then GetResponse = GetResponse & HalBookComments

The implication here is that as Hal reads the book he looks for relevance to a prior sentence or user input. If one of the sentences he reads is highly relevant AND the random number generator says Hal's in the "mood" to speak, then he returns his commentary in addition to the sentences to be read. After reading the sentences and commentary out loud the control passes back to GetResponse a 1/2 second later. At that point Hal could be flagged to continue reading or paused for user input by passing control back to the main program repeatedly until the user enters his/her response or a counter in the GetResponse function times out letting Hal continue reading. Hal could be learning from the book and/or the user input at this point as well.

These ideas are rough and in the concept stage, but I think the possibilities are limitless. Instead of reading an e-book or poem Hal could just "choose" to autonomously make a statement to the user every once in a while. I don't mean to play down the added complexity of doing this. Some performance issues could arise. Careful thinking and/or testing would have to be done. Zabaware may have their hands full doing other cool stuff. However creating the opportunity for Hal to be more interactive opens new possibilities.

Just thinking out loud...

= vonsmith =

569
For some reason I don't see my uploaded text file shown in my prior posting. The forum's attachment dialog window confirmed that it was uploaded, but I don't see a download link within the posting.

Is there something special about uploading a .txt file to the forum that I don't know about? I haven't attached a downloadable file in this forum before. So what's going on?

= vonsmith =

I manually cut and pasted this link:

Attachment link: http://www.zabaware.com/forum/uploaded/vonsmith/2003103143720_EncodeVar,DecodeVar.txt

570
Okay. Voila! I think I have beat the CustomMem EncodeVar() and DecodeVar() functions into submission. That is to say, I'm submitting new versions here on the forum.

As you may know from my other posts on the subject the original Zabaware EncodeVar() and DecodeVar() functions didn't preserve the data type and returned everything as a string. This is no longer the case.

I've modified the EncodeVar() function to preserve the data type and store it along with the variable. The new DecodeVar() function extracts the original data type info and returns the variable in the original data type format.

No modifications are needed to the usage of EncodeVar() and DecodeVar()  within your code, unless you've added work-arounds to eliminate type mismatch errors. Just substitute the new function definitions for the old ones in the hal4.uhp or hal5.uhp file towards the end. As always, back up your files!

I've done limited testing of the new functions with string, integer, long, single, double and boolean data types. I haven't tested them with dates, currency and a couple other rarely used types. Arrays are not, and can not, be supported in CustomMem.

Give the improved functions a try and post feedback here. As usual I've tried to be careful and accurate in my coding, but I'm only human (not like Hal). Good luck.

= vonsmith =


Pages: 1 ... 36 37 [38] 39 40