|
|
Member
Total posts: 5
Joined: Aug 28, 2012
|
Hey,
first of all congrats on the chatscript engine. I chatted a bit with suzette, very impressive and distinguished.
I am using Mountain Lion, so I compiled it using the MacCompile.bat. I suggest renaming the filename extension to *.sh since *.bat is not an extension used in the unix world. This was a bit confusing to me at first since *.bat is windows. Also the uppercase file naming pattern is a bit unusual, this maybe because of windows I reckon.
What I am trying to understand is what happens when the server starts. What files does it read? How does it know where to look for data? It looks like it has build in default files. Can I override that with command line flag when starting the server?
Right now when I start a session “./LinuxChatScript client=localhost:1024” I don’t get beyond ‘I don’t know what to say’ no matter what I say to the bot. Is this the default behavior? Would love to get some better example of a bot, but I can’t seem to find it in the distribution. Is there a place where I can download one? And this goes back to the first block of questions, how do I deploy it on the server?
Looking forward to use chatscript!
Stan
|
|
|
|
|
Posted: Aug 28, 2012 |
[ # 1 ]
|
|
Moderator
Total posts: 2372
Joined: Jan 12, 2010
|
I suggest renaming the filename extension to *.sh since *.bat is not an extension used in the unix world.—DONE
Also the uppercase file naming pattern is a bit unusual, this maybe because of windows I reckon.—DOUBTLESS, but I didn’t understand the comment. If you could elaborate.
When the server starts up, presuming that the current directory is ChatScript, it reads DICT folder for dict.bin and facts.bin.
It reads LIVEDATA folder toplevel files. It reads TOPIC for the compiled definition of the chatbot. It reads src for dictionarySystem.h .
Once started, the only files it reads and writes after that are USER topic and log files.
You say: “./LinuxChatScript client=localhost:1024”, is this presuming you have ALSO got another process running as the server (since this is a client)?
|
|
|
|
|
Posted: Aug 28, 2012 |
[ # 2 ]
|
|
Moderator
Total posts: 2372
Joined: Jan 12, 2010
|
Can I override that with command line flag when starting the server?
Not sure what you are asking here.
|
|
|
|
|
Posted: Aug 28, 2012 |
[ # 3 ]
|
|
Member
Total posts: 5
Joined: Aug 28, 2012
|
Thanks for the great reply.
>You say: “./LinuxChatScript client=localhost:1024”, is this presuming you have ALSO got another process running as the server (since this is a client)?
Yes, I have a server running.
>Also the uppercase file naming pattern is a bit unusual, this maybe because of windows I reckon.—DOUBTLESS, but I didn’t understand the comment. If you could elaborate
Well this may sounds silly;), but on UNIX basically all folder/fileNames are lower case, if there is an upper case folder that is only call special attention to it. also if you work from the unix shell lower case names are easier since you don’t have to use shift all the time, since windows is not case sensitive this doesn’t matter. Only cosmetic stuff.
>Can I override that with command line flag when starting the server?
This is not an important question anymore since I now understand how the server starts. If I have different characters then I simply put DICT/LIVEDATA/TOPIC/src/dictionarySystem.h in its own folder. I was just curious how to organize that since I will have 6 different characters.
|
|
|
|
|
Posted: Aug 28, 2012 |
[ # 4 ]
|
|
Moderator
Total posts: 2372
Joined: Jan 12, 2010
|
Yes, I was calling attention to the FOLDER nature of things by capitalizing them. Windows pays no attention.
—- I have different characters then I simply put DICT/LIVEDATA/TOPIC/src/dictionarySystem.h in its own folder.—
Probably not. If you did, then you’d have to have a different server for each character. You PROBABLY don’t want to do that (though maybe you do). Multiple characters can coexist in the same topic folder. You can choose that they share some topics in common and/and have unique topics all to them selves.
So… as for why your client gets nothing out of the server…. Don’t know. I presume when you run the system as a local copy, ChatScript local, it works fine?
|
|
|
|
|
Posted: Aug 29, 2012 |
[ # 5 ]
|
|
Member
Total posts: 5
Joined: Aug 28, 2012
|
—- I have different characters then I simply put DICT/LIVEDATA/TOPIC/src/dictionarySystem.h in its own folder.—
Probably not. If you did, then you’d have to have a different server for each character. You PROBABLY don’t want to do that (though maybe you do). Multiple characters can coexist in the same topic folder. You can choose that they share some topics in common and/and have unique topics all to them selves.
Interesting, it makes sense, since the the characters are strongly related in our game context and share a lot of knowledge.
>So… as for why your client gets nothing out of the server…. Don’t know. I presume when you run the system as a local copy, ChatScript local, it works fine?
When I start the server I get this. Does this look ok to you?
>>./LinuxChatScript
ChatScript Version 2.9 64 bit
Full dictionary code.
: Aug 18 09:07:58 2012 words=52,168 specials=2261 waste=28465 hash=65536 avgseek=1.1 maxseek=7 facts=32,475 dtext=3961052
Keyword0 altered Micronesian
Build0: words=59188 facts=116931 dtext=1042044 stext=0
Build1: words=5 facts=15 dtext=460 stext=4460
Livedata: entries=11887 facts=919 dtext=204956 posrules=485
Used 30MB: dict 153,980 (18477kb) fact 150,340 (6013kb) text 5213kb buffer (12x80000= 960kb) user (1x7000= 7kb)
Free 50MB: dict 894,595 fact 649,660 text 24,786KB
Server ready: LOGS/serverlog1024.txt
A conversation goes like this:
>>./LinuxChatScript client=localhost:1024
Enter client user name: stan
** Client launched
Sent data to port 1024
Received 12 bytes
Received 0 bytes
Received response: Welcome back
Welcome back
> Thank you
Sent data to port 1024
Received 25 bytes
Received 0 bytes
Received response: I don’t know what to say.
I don’t know what to say.
>
|
|
|
|
|
Posted: Aug 29, 2012 |
[ # 6 ]
|
|
Member
Total posts: 5
Joined: Aug 28, 2012
|
When I run the executable in on path without the required folders I get an error. Is there a linebreak issue when reading the files perhaps?
>>./LinuxChatScript
ChatScript Version 2.9 64 bit
Full dictionary code.
Missing 37 word files
in LIVEDATA/systemfacts.txt at 0:
Cant generate tmp backups of dict values. Guessing folder isn’t writeable.
: words=8 specials=233 waste=65296 hash=65536 avgseek=136.5 maxseek=2 facts=0 dtext=2604
Build0: words=0 facts=0 dtext=0 stext=0
Build1: words=0 facts=0 dtext=0 stext=0
missing LIVEDATA/posrules.txt
Livedata: entries=0 facts=0 dtext=0 posrules=0
Used 8MB: dict 65,539 (7864kb) fact 0 (0kb) text 2kb buffer (12x80000= 960kb) user (1x7000= 7kb)
Free 61MB: dict 983,036 fact 800,000 text 29,997KB
Server ready: LOGS/serverlog1024.txt
|
|
|
|
|
Posted: Aug 29, 2012 |
[ # 7 ]
|
|
Moderator
Total posts: 2372
Joined: Jan 12, 2010
|
For your first trace, all looks normal. You are “welcomed back”, which means it knew you had chatted before. And HARRY is a simple bot who can only answer a few things. Your saying “thanks” flummoxed him. You can enter :reset as a command to restart your user and then say “what is your name” as a question he understands.
|
|
|
|
|
Posted: Aug 29, 2012 |
[ # 8 ]
|
|
Moderator
Total posts: 2372
Joined: Jan 12, 2010
|
when you run the server WITHOUT its current directory of folders, you get all sorts of complaints.
You lack a dictionary. The system will attempt to use TMP folder to save states of things so you can do :build and :revert easily. You block that if you don’t have a TMP folder it can use. You are missing LIVEDATA so it complains because the pos tagger cant run.
But the system can still limp along, even though you are a cruel master.
|
|
|
|
|
Posted: Aug 29, 2012 |
[ # 9 ]
|
|
Member
Total posts: 5
Joined: Aug 28, 2012
|
yes this works. so its a very simple bot.
> :reset
Sent data to port 1024
Received 14 bytes
Received 0 bytes
Received response: We start anew.
We start anew.
> what is your name?
Sent data to port 1024
Received 17 bytes
Received 0 bytes
Received response: My name is Harry.
My name is Harry.
> Hi Harry!
Sent data to port 1024
Received 26 bytes
Received 0 bytes
Received response: Have you been here before?
Have you been here before?
> Yes I have been here before.
Sent data to port 1024
Received 25 bytes
Received 0 bytes
Received response: I don’t know what to say.
I don’t know what to say.
|
|
|
|
|
Posted: Aug 29, 2012 |
[ # 10 ]
|
|
Member
Total posts: 5
Joined: Aug 28, 2012
|
I like your observations of AIML. I used it myself and I loved topics. But what I found out later is that nobody was using them strangely. Never understood that.
|
|
|
|
|
Posted: Aug 29, 2012 |
[ # 11 ]
|
|
Moderator
Total posts: 2372
Joined: Jan 12, 2010
|
AIML is designed for simplicity. It was simple, it was first, and it was open source. All good things.
But it is not good at scalability from a human’s perspective and lacks support for maintenance of large systems.
And there are many features I want in a production grade system that it does not have. Hence creating ChatScript.
|
|
|
|
|
Posted: Aug 29, 2012 |
[ # 12 ]
|
|
Administrator
Total posts: 3111
Joined: Jun 14, 2010
|
Not only that, but it’s very easy to get “stuck” in a topic if the AIML isn’t properly written. Of all of the examples of AIML that I’ve seen that use topics, very few were written with this in mind, and many ended up with ‘topic black holes’.
|
|
|
|
|
Posted: Aug 29, 2012 |
[ # 13 ]
|
|
Moderator
Total posts: 2372
Joined: Jan 12, 2010
|
which is unfortunate, since topics are an ESSENTIAL organizational concept in conversation.
|
|
|
|
|
Posted: Aug 29, 2012 |
[ # 14 ]
|
|
Administrator
Total posts: 2048
Joined: Jun 25, 2010
|
Topics work great in AIML. I use them all the time.
I would suggest blaming the coder rather than the language.
Would you say a piano is useless as a musical instrument because you can only play Jingle Bells with one finger on it? Learn how to play it and it will reward you with beautiful music.
|
|
|
|
|
Posted: Aug 30, 2012 |
[ # 15 ]
|
|
Administrator
Total posts: 3111
Joined: Jun 14, 2010
|
Steve Worswick - Aug 29, 2012: Topics work great in AIML. I use them all the time.
I would suggest blaming the coder rather than the language.
I completely agree, Steve. It wasn’t my intention to sound like I was putting AIML down. I guess my “isn’t properly written” comment wasn’t worded strongly enough, huh?
|
|
|
|