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

Handling multiple bots on a local server
 
 

I am new to ChatScript and chatbots in general and experiencing what I suspect are beginner’s problems. The documentation basically states that it is possible to run multiple bots on one server, but not precisely how, so I figured it must be pretty easy and now I just can’t seem to get this right.
Right now there is only ever one (default) bot working on a server and I can’t figure out how to access others.

The setting

I have two bots which are mainly just copies of Harry, meaning I copied his control script, introductions and keywordless into three new folders. The latter both are pretty much empty now. In simplecontrol.top I changed every occurrence of “Harry” to their respective names and commented out the line about quibbling so they don’t come up with any smug replies. As intended, they basically just keep repeating their “I don’t know what to say” line by now, which I changed to “Hi I am <their name>” for both of them in order to tell them apart.

Building both bots works fine, their filesBotname.txt contain only the path to their respective directory. When I build bot 1 I cant talk to him, he keeps saying his name. When I build bot 2 the same happens for him.

The problem

However, when I try to start chatscript by typing a username followed by “:botname” as suggested in the Advanced User’s manual, I only ever encounter the one bot which has been built last. It can even be Harry if I made a fresh build of him before last exiting. The “:botname” does not seem to have any effect on whom I am talking to, it just always starts the default bot. (I am guessing it is the default bot since it always is the last one built and they probably overwrite the system’s default bot each time by all having Harry’s simplecontrol.top.)
Which is funny, because the botprompts set in their control scripts seem to work fine. If I start as “myname:botone” I’ll get lines like “BOTONE: Hi I am bottwo” if bottwo was last built.

What am I doing wrong? Is the syntax on the login ok? Am I supposed to rebuild bots before I want to talk to them and then rebuild another when I want to switch?
By the way, what exactly IS a bot’s name anyway? The outputmacro name? The one in the database? How would I add bots to the database that are not automatically default – would that solve my problem?

Greetings,
Kris

P.S.: Probably unrelated but whenever I try to unzip the original zip file my computer crashes so bad I have to reset by physically pushing a button. The apparent cause is a *.suo file in VS2010 which my winrar just can’t seem to handle.

 

 
  [ # 1 ]

When running multiple bots on a single CS server, they must all be built together, not using separate filesxxx.txt.
I typically share a common control script (e.g. ~control) , but the outputmacro for each bot names the control script to use, so if they are to be different, best to name the control scripts differently.

:botname is useful on stand alone CS, but on a server the information on what bot to talk to comes from the message sent to the server.  If your bots are defined as
outputmacro: lucy()
outputmacro: john()

then the login message will contain bruce:lucy   or bruce:john

 

 
  [ # 2 ]

A bot’s name is the one from the outputmacro.  I’m not sure what you mean by “the one in the database”. If you mean the defaultbot fact created, that is just the name of the bot to use should the name not be given in the login. So it’s not creating a name, it is just naming one you already created using the outputmacro. There can only be 1 default bot (by definition of default).

Of course the other thing you have to be wary of is whether they simply share the same topics or whether there are topics unique to each or whether the gambits/responders are conditional on which bot is speaking.

 

 
  [ # 3 ]
Bruce Wilcox - May 22, 2014:

When running multiple bots on a single CS server, they must all be built together, not using separate filesxxx.txt.

Oh! That did it.

Funny enough, I was just reading the part of the documentation about how you can restrict rules and topics to certain bots and wondering how that would be useful as I just build them seperately. Now I know, and it’s working fine.

Thanks for the fast reply!

 

 
  login or register to react