Pandorabots Frequently Asked Questions

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.

A. Support:

  1. How does Pandorabots provide support?

    Direct questions (of any kind) to info@pandorabots.com.

    More generally Pandorabots offers two classes of service: free and premium.

    The free server is located at www.pandorabots.com, and support occurs primarily through our responses to your inquiries directed to info@pandorabots.com.

    Premium support is available from Pandorabots staff directly and is available through a variety of plans, including instances of our servers hosted in the cloud and professional services (help on integrating applications with our pandorabots).

    Sign up for Pandorabots Premium service to get premium Pandorabots support and to help us make Pandorabots even better. By becoming a premium member, you will receive our direct and immediate attention. You will also gain access to additional Pandorabot services that will extend and improve your pandorabot’s capabilities, beyond those currently available on the free server. Contact info@pandorabots.com for more information.

    There is a lively and growing community of botmasters using Pandorabots. If you have a question or want to open up a general discussion you can post to the Pandorabots forum.

    For more general AIML questions not related directly to the Pandorabots service you should visit the A.L.I.C.E and AIML Forum.

  2. What happened to the mailing lists?

    From 2002 to 2010 the primary method of communication among the Pandorabots community was a mailing list. In this age of social networking however, several new and better options have appeared. Pandorabots studied several of these in detail, and chose a new forum system loosely on a popular forum known as stackoverflow. We replaced the mailing list with a new forum located at http://forum.pandorabots.com.

    Depending on performance, we may choose to replace the existing forum if we encounter scaling problems. Should we choose this path, the replacement will be very similar in functionality.

B. Hosting and Publishing

  1. How Do I Put My Pandorabot On My Website? Solution 1

    If you have your own pandorabot created on our website with our development and publishing tools you can publish it by following these directions.

  2. How can I put my Pandorabot on my own web page? Solution 2

    Pandorabots is a chatbot hosting service and your pandorabot must be published at Pandorabots.com. However, you can embed a Pandorabot within a frame on your webpage. Create an html frameset containing a frame with:

    frame src="http://www.pandorabots.com/pandora/talk?botid=....">
    

    If you don’t need the published page to be embedded within one of your own pages, you can still upload customized HTML to change the appearance of your pandorabot’s published page. For basic HTML customization, take a look at Personalize Your Pandorabot with Custom HTML Skins

    For more advanced customization (including using VHosts), take a look at
    • [For Oddcast VHost bots see also question e.1]
    • [For information on how to set up a Flash interface for your Pandorabot see also question h.3]
  3. I am trying to make an application chatbot in Android using a pandorabot on the pandorabots.com website. How can I do this?

    Please examine these two java files which demonstrate an example of using the Pandrabots Talk API (XML-RPC) from Java

  4. How can I ensure a pandorabot retains conversational state when I use the XML-RPC API interface from Android?

    My Problem: I set a topic using the XML-RPC API - and afterward the topic seems to be unset. Here is a specific example that is failing for me currently:

    <category>
    <pattern> LET TALK ABOUT FLOWERS. </pattern>
    <template>
    Yes <set name="topic">flowers</set>
    </template>
    </category>
    
    <topic name="flowers">
    <category>
    <pattern> I LIKE IT SO MUCH </pattern>
    <template>
    I like flowers too.
    </template>
    </category>
    </topic>
    

    Answer: The reason for the failure arises because you must include your pandorabot’s customer ID (custid) on your first connection. Otherwise subsequent connections are interpreted as independent conversations. So on the first request to your pandorabot, the XML-RPC returns both a response (that) and a customer ID (custid). After the the custid is assigned in the first interaction, your program should send the custid back in each subsequent request, so that your pandorabot will keep track of any variables and topic tags associated with the conversation. In addition to the explanation provided next - please also see this stackoverflow reference connecting to a pandorabot from Android.

    Example

    Request:

    http://www.pandorabots.com/pandora/talk-xml?botid=f5d922d97e345aa1&input=call+me+richard

    Response:

    <result status="0" botid="f5d922d97e345aa1" custid="b1da58bf9ee13bf0"><input>call me richard</input><that> OK I will call you Richard.</that></result>

    Subsequent request:

    http://www.pandorabots.com/pandora/talk-xml?botid=f5d922d97e345aa1&custid=b1da58bf9ee13bf0&input=my+name

    Subsequent response:

    <result status="0" botid="f5d922d97e345aa1" custid="b1da58bf9ee13bf0">
    <input>my name</input>
    <that>You said your name is Richard?</that>
    </result>
  5. What link can I give to others so that they can talk to my Pandorabot?

    Click on the name of your pandorabot on the My Pandorabots page and you’ll be taken to page which will show you the link(s) through which your published pandorabot can be accessed. If your pandorabot is not yet published, you’ll need to first publish it. You can do that by clicking on the “publish” link on this same page.

  6. We are often asked: Why should I use a pandorabot to answer my question when a simple search interface would be more efficient?

    There are many answers to this question. Let’s consider the infamous Microsoft paper clip “helper” bot, once available in some Microsoft products. Masquerading as a bot, the paper clip bot seemed largely to be an interface to a search engine.

    Requesting help from some Microsoft products triggers a paper clip bot, or, in more recent products, a new “help interface” with a request to “type your question here”. Unfortunately, the paper clip bot more often than not, failed to answer questions. Later it seems to have been replaced by the “help interface” which uses the same underlying database. There are a couple of problems with this general approach.

    1. It is very difficult to anticipate in advance the types of questions that might be asked. So, many vendors craft a search-like facility, searching for keywords among some set of anticipated problem areas. Relying on keyword search forces the Customer-seeking-help to read many unrelated “returned help entries”. Inexperienced Customers face an even more daunting task because they often are unable to even evaluate the importance of the returned help entries.
    2. Quality measurements are hard to implement. How often does a Customer get a solution? How often is the Customer so confused they are unable to understand the solution?
    3. On-going maintenance of the system is difficult. Analyzing the frequency and types of questions received by the help system was probably not anticipated by the help system designers. And even determining the meaning of ambiguous questions remains beyond the scope of these systems.
    4. Help system designs often suffer from the false consensus effect (The false consensus effect is the tendency for people to project their way of thinking onto other people. In other words, they assume that everyone else thinks the same way they do.) The designer implicitly assumes the Customer has sufficient information to make appropriate choices. And often such choices are completely wrong.

    On the other hand, with a pandorabot, you can quickly locate questions that remain unanswered, as well as locate answers that might benefit from re-crafting the answers.

    Pandorabots has tools for analyzing the frequency and types of questions encountered from Customers.

    Unlike solutions crafted from search engines a pandorabot can learn from customers. Why should this be important? While many people are uninterested in chatting with a bot, other people are quite interested in chat, and to assume otherwise leads to the false consensus effect (see above).

    A pandorabot can establish a relationship with Customer through conversation and collect information, as well as remember information retained from past conversations. The relationship might even lead to future sales opportunities. Relationship building, collection of useful relevant sales information and data mining all become possible.

    1. Conversational format allows for relationship building with the customer
    2. The pandorabot can use information from past conversations using cookies to return better responses
    3. The pandorabot can deduce problems from symptoms where problems are unknown to the user
    4. We can provide data analysis and data mining tools to improve the future conversations and provide customer trending information

C. Botmaster Control

  1. Training my :term:`pandorabot` doesn’t seem to be having any affect - why might that be?

    Firstly, after specifying an alternate response, try re-asking the same question using the Training interface (you can simply click on “Ask Again”). If that works then the AIML for your pandorabot has been correctly updated. What you then need to do is publish those updates so that clients talking to your pandorabot via the published URL will see the changes. You can do this by clicking on the name of your pandorabot to get to the summary page. On this page you should see some text like this:

    You have made changes to the pandorabot since it was last published. You must republish the pandorabot to make these changes available for others.

    Until you click on the “republish” link your changes will not have any affect for clients chatting with your bot. This feature allows you to try out some AIML changes (either by using the Training interface or by editing the AIML files directly) and only make them public when you’re satisfied that they’re working correctly.

D. Instant Messaging

  1. Can I have my pandorabot respond on MSN Messenger?

    At this time, we are unable to offer a comprehensive IM solution on the free server. We do offer IM options as part of our premium service, and for more information, please send e-mail to info@pandorabots.com with the word “IM” somewhere in the subject line.

  2. What are the issues involved with supporting Instant Messaging and what options are available on the free server?

    Supporting various IM protocols poses difficult challenges because each one requires custom code and moreover it seems that most protocol interfaces undergo continuous undocumented change. One way to lower the burden and cost of maintaining an IM service for Pandorabots would be to allow all pandorabots to communicate with other IM clients (on variety of IM networks) by connecting to them through our own XMPP Server (meaning: Extensible Messaging and Presence Protocol server - and formerly known as a Jabber server - see wikipedia for more details) via a Gateway. However this approach leads to another question: How can one manage user accounts on the XMPP Server? Also we still have to maintain the service in the face of the many changes (protocol changes and other types of changes) occurring in other IM networks - and this is very time consuming. In short, at the time of this writing, we are unable to allocate sufficient resources to offer a comprehensive IM solution for the free server.

    There are a variety third-party solutions available for individual IM networks. Please visit http://forum.pandorabots.com for more information.

  3. Can I create my own IM gateway?

    Pandorabots has an API called XML-RPC for connecting third-party software to our Pandorabots hosting service. If you have programming skills, you can write your own software to connect your pandorabot to IM services. See section H.2 for specific information.

E. Oddcast Sitepal

  1. What HTML do I cut and paste to put my VHost Pandorabot onto a web page?

    Unfortunately the way the integration between Pandorabots and SitePal is designed, it’s not possible to simply cut and paste some code into a page on your own site. Basically the page serving the bot’s responses must come from pandorabots.com. However, there are a still several ways you can achieve the affect that you want. Take a look at this note about putting a pandorabot on my own site.

F. Customized HTML

  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 Personalize Your Pandorabot with Custom HTML Skins.

  2. How can I show the recent conversation history when using Custom HTML?

    The default Plain Text appearance of a published pandorabot 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 pandorabot 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

  1. I want to get the open source making up Pandorabots for use in my research and possibly for commercial applications in the future. How do I go about obtaining the source code?

    Pandorabots is a cloud-based hosting system for chat bots. Much of the code comprising the knowledge of each chat bot is open source - typically under a GNU or Apache license. But individual botmasters always retain the choice to make their source code open or to keep it confidential. We encourage but do not require bot masters to use open source, because doing so fosters the increased spread of the technology. As for possible commercial goals, many pandorabot authors earn money by developing and deploying a pandorabot for a specific application area (branding, entertainment, etc.) on the (free) community server. Pandorabots places advertisements on these bots. You may pay for space on a server without ads too.

    You may obtain the source code for the ALICE bot at the Pandorabots Project.

    We have published some draft documentation about how to share projects on Google Code here.

    The software used to implement the Pandorabots cloud-based system consists of open source components and proprietary components licensed from third parties.

  2. Can I change the name of my Pandorabot?

    You cannot change the name of the pandorabot 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 pandorabot its name it should reply with the new name.

  3. I am developing a bot that screens people for Post Traumatic Stress Disorders (PTSD). People constantly try to break my bot. I am wondering whether I can sidestep this problem is by creating a bot that seeks to insistently force the discussion back on subject?

    We outline the solution for PTSD, and you can use this general approach for any subject.

    The easy way:

    Ultimate Default Category:

    AIML bots have an “ultimate default category” where the pattern consists of the wlidcard character * only. If an input matches this pattern, it means essentially that the bot did not recognize the input at all. Our experience is that even with bots like ALICE that have a large number (> 100,000) of AIML categories, about 2% to 5% of all inputs will fall into this ultimate default category. The usual strategy that botmasters use to write a response for this category is to use the AIML <random> tag and write a large list of responses that try to get the conversation back onto a topic that the bot recognizes. The technical term in AIML for these random responses is “pickup lines”.

    The pickup lines for a PTSD screener bot might consist of responses such as “I don’t know about that, but I can answer questions about PTSD”, “I fail to see how that is related to PTSD, can you explain further?” and “My expertise is PTSD, not other topics”.

    The slightly less easy way:

    In some sense staying on a topic depends on both the human’s and the bot’s responses. Creating a bot’s personality is a process of writing thousands of input patterns and their associated responses. Depending on the content of these responses, the bot can direct the conversation to stay on a particular topic. For example if the input pattern is “Do you like music?”, the response might be written like “Yes, music is sometimes great therapy for PTSD”. Or if the input is “I hate X”, the bot might respond with “Thanks for telling me your preference. I am wondering if something traumatic happened that made you hate X”.

    In other words, the entire process of authoring the bot’s responses should be oriented toward writing responses that try to direct the conversation, either by asking questions, or making statements that direct the conversation back onto a particular topic.

    Our video No Initial Content shows an example of creating an Ultimate Default Category.

H. Technical

  1. What is a “botid”?

    The botid is is that part of the Pandorabot’s published URL after ‘botid=’.

    For example, the Divabot linked to from the Pandorabots home page has a published URL of: http://lauren.vhost.pandorabots.com/pandora/talk?botid=f6d4afd83e34564d

    So the botid is: f6d4afd83e34564d

    You can find the published URL of your pandorabot by publishing it in Botmaster Control and then examining the URL of the link to your published bot.

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

  3. How can I integrate my Pandorabot into a Flash component?

    Using the XML API described above in question h.2, you can create a Flash component which collects user input and displays your Pandorabot’s response. This component can be served directly from your own site. To do this requires programming the Flash control to make the appropriate HTTP request to the Pandorabots server and parse the XML response.

    Jamie Durrant has written a very nice tutorial showing exactly how to do this.

I. General Rules

  1. Spam and Malware

    If you notice the possible presence of Spam or Malware, please follow the directions in Report Spam or Malware when filing your report with us.

  2. Other Miscellaneous Rules

    Using public proxies or other cloaking services such as TOR are both insecure and may lead to deactivation of your account.

    Sharing your account on sites similar to www.bugmenot.com will lead to account deactivation.

    Violations to our Pandorabots Terms of Service will lead to account deactivation.

See also

If you are new to pandorabots and chatbots in general, you may want to interact with some actual pandorabots - Talk to A.L.I.C.E. , Talk to Lauren and Talk to Fake Kirk are good places to start.

Oddcast SitePal offers some example avatars that may be used on pandorabots.

These sites are all sources of additional information:

The chatbot world owes much to the pioneering AIML work of Dr. Richard Wallace of the The A.L.I.C.E. AI Foundation and many other volunteers.

If you’re new to AIML, you might want to start by getting an idea of what the language is like by reading AIML at a Glance. Extensive AIML Documentation is also available. The AIML 1.0.1 Draft Specification is for experts.