This FAQ (Frequently Asked Questions) list is a work in progress - if you have any comments or
suggestions for questions to include, please send e-mail to info@pandorabots.com
with the word "FAQ" somewhere in the subject line.
There are two mailing lists directly related to Pandorabots.
If you created your Pandorabots.com account after February
28th 2003, you were presented in the account signup form
with two check-boxes – one to subscribe to
pandorabots-announce and the other to subscribe to
pandorabots-general. Depending on
whether or not these check-boxes were checked when you clicked on
'Submit Account Request', you were automatically subscribed to
zero, one or both of the mailing lists.
You should have received a welcome email message including your
password and instructions for unsubscribing from the mail list. You
should also have received monthly reminder messages, again with your
password and instructions for unsubscribing. If you didn't receive
these messages but have been receiving messages sent to the mailing
list, please send mail to
pandorabots-announce-admin@list.pandorabots.com or
pandorabots-general-admin@list.pandorabots.com as appropriate.
If you no longer wish to receive messages on the Pandorabots mailing
lists see questions A.2 and A.3.
B. Hosting and Publishing
D.2. Can I have my pandorabot respond on IRC?
An Eggdrop TCL script is available from
http://www.tclscript.com/scripts.shtml.
Download alice.tcl and egghttp.tcl. A README.txt is included which
gives details on how to configure the TCL script and your Pandorabot.
Note that the alice.tcl bundle contains a file named alice.html. You
need to save this on your local machine and then from Botmaster
Control, click on Edit for the appropriate
Pandorabot. Scroll down to Personalized published html page, and
enter the path to your saved copy of alice.html in the text field
labelled Filename: (alternatively in IE, you can click on the
Browse... button to open a File Chooser dialog to help you locate
the file). Finally, click on Upload file and you're done.
D.3. Can I train my AOL IM pandorabot to respond based on the Screen Name of the user talking to it?
Yes. You need to use the (pseudo-) predicate "screename"
– Pandorabots automatically sets this to be the screen name of
the AOL IM user talking with your bot. You can access the predicate in
templates using the <get> element and you can also use it as a
regular predicate within <condition> elements. For example, the
following category responds with the user's screen name if set.
<category>
<pattern>WHAT IS MY SCREEN NAME</pattern>
<template>
<condition name="screenname">
<li value="*">Your Screen Name is: <get name="screenname"></get></li>
<li>You're not talking to me via AOL IM.</li>
</condition>
</template>
</category>
You can either place the above category in an AIML file to upload, or
using the Training interface, cut and paste the green text as the
desired response.
F.1. The conversation logs for my Customized HTML bot, consist of lots
of separate 1-line conversations. How can I fix that?
Pandorabots normally tracks individual conversations by placing a cookie on
the client's browser. If the client's browser is not setup to accept the
cookie, an alternative mechanism is through a hidden form variable within
the form. This hidden form variable is created automatically if you're
using the standard Pandorabots response (ie. no customized HTML), but if
you create your own customized HTML page, you need to include the marker
!CUSTID! somewhere within the form. Without this, the hidden form variable
will not be included in your pandorabot's response, and conversations will
not be correctly tracked if the client's browser does not accept cookies.
An example showing how to include the marker in a customized HTML file
can be seen here.
F.2. How can I show the recent conversation history when using Custom HTML?
The default “Plain Text” appearance of a published
bot includes the recent conversation history. When using a Custom HTML
file you have complete control over the appearance of the published
bot. In order to show the conversation history you have to include
some special embedded AIML in your Custom HTML file.
Inserting a <template> element in a
Custom HTML file causes the AIML interpreter to evaluate the template
in the current bot context (ie with all the predicates and using the current that,
and topic contexts). It then inserts the result of evaluating
the template into the published HTML page.
Combining this feature with the full power of AIML template processing
allows us to create the following Custom HTML fragment which will
result in the inclusion of the 4 most recent user inputs and the
bot's responses. Just add this code to your Custom HTML file where you
want the conversation history to appear.
<template>
<think>
<set name="_history_1"><request index="1"/></set>
<set name="_history_2"><request index="2"/></set>
<set name="_history_3"><request index="3"/></set>
<set name="_history_4"><request index="4"/></set>
</think>
<condition name="_history_1" value="*">
<i><b>Human:</b></i> <request index="1"/><br/>
<i><b><bot name="name"/>:</b></i> <response index="1"/><br/>
<br/>
</condition>
<condition name="_history_2" value="*">
<i><b>Human:</b></i> <request index="2"/><br/>
<i><b><bot name="name"/>:</b></i> <response index="2"/><br/>
<br/>
</condition>
<condition name="_history_3" value="*">
<i><b>Human:</b></i> <request index="3"/><br/>
<i><b><bot name="name"/>:</b></i> <response index="3"/><br/>
<br/>
</condition>
<condition name="_history_4" value="*">
<i><b>Human:</b></i> <request index="4"/><br/>
<i><b><bot name="name"/>:</b></i> <response index="4"/><br/>
<br/>
</condition>
</template>
The predicate and condition elements are used to avoid showing blank
history elements at the beginning of a conversation. The contents of
the template could be trivially changed to change the order of the
history (recent to old versus old to recent), the amount of
conversation history shown (up to 10 interactions), or the layout of
the conversation history. Just remember that within the <template> element everything must be valid
AIML - consequently it most be valid XML - so any HTML tags must be
XHTML-like. For example, note the <br/> element. Using simply <br> (ie
without the /) will not work. (If you use the Pandorabots on-line
Custom HTML editor, it will catch this when you try to save your
Custom HTML file.)
G. AIML
G.1 Can I change the name of my Pandorabot?
You cannot change the name of the bot as it appears in the list of
bots in 'Botmaster Control'. However, you can change the bot's name
for the processing of any AIML templates - this is controlled by the
value of the 'name' property.
To change this, from 'Botmaster Control', click on 'Edit', change the
property 'name' and click on 'Set Bot Properties'. If you then ask
your bot its name it should reply with the new name.
H. Technical
H.2 Is there an API allowing other programs to talk to a Pandorabot?
A client can interact with a Pandorabot by POST'ing to:
- http://www.pandorabots.com/pandora/talk-xml
The form variables the client needs to POST are:
- botid - see H.1 above.
- input - what you want said to the bot.
- custid - an ID to track the conversation with a particular customer. This variable is optional. If you don't send a value Pandorabots will return a custid attribute value in the <result> element of the returned XML. Use this in subsequent POST's to continue a conversation.
This will give a text/xml response. For example:
<result status="0" botid="c49b63239e34d1d5" custid="d2228e2eee12d255">
<input>hello</input>
<that>Hi there!</that>
</result>
The <input> and <that> elements are named after the corresponding AIML elements for bot input and last response. If there is an error, status will be non-zero and there will be a human readable <message> element included describing the error. For example:
<result status="1" custid="d2228e2eee12d255">
<input>hello</input>
<message>Missing botid</message>
</result>
Note that the values POST'd need to be form-urlencoded.