Search code examples
artificial-intelligencechatbotaimlprogram-o

Multiple AIML containing same patterns. How to fetch it according to users preference


Hi There! I have a chatbot which contains n number of AIML files. each AIML files are related to different topics. but it may contain same patterns which causing a conflict while getting a reply from the chatbot. I wanna identify which topic the user is looking for. So how can I configure my chatbot according to this requirement?

AIML file 1

<category>
      <pattern>ABC</pattern>
      <template>abcdefghijklmnopqrstuvwxyz</template>
</category>

AIML file 2

<category>
      <pattern>ABC</pattern>
      <template>1234567890ABCD</template>
</category>

Both are associated with a single chatbot. So as an end user I want to get the answer from AIML file 2. How can I make my chatbot to understand my needs using program-o


Solution

  • I think you may need to look at the topic tag.

    The concept is that the botmaster uses the <set_topic> tags to set the current topic being discussed. Once the topic is set, when the client types in a statement for ALICE to find a response for, the categories defined within the <topic> tags matching the current topic will be searched first-- before any of the non-topic categories, or the default categories. If there is not a matching category defined in the current topic, then any categories that are not defined in topic tags are searched. As mentioned before, you can create categories with identical <pattern> phrases in different topics, each with different responses that cater to the current topic.

    The bold is my emphasis.