I'm working on a voice bot, which will get user voice input and executes task based on it. I'm using AIML 1.0. The problem I'm facing is that the pattern matching is not working.
<category>
<pattern>OPEN SAP</pattern>
<template>
<random>
<li>Sure thing!</li>
<li>Right away, sir!</li>
<li>On it!</li>
</random>
<system>start saplogon </system>
</template>
</category>
<category>
<pattern>* OPEN SAP</pattern>
<srai> OPEN SAP </srai>
</category>
<category>
<pattern>* SAP *</pattern>
<srai> OPEN SAP </srai>
</category>
When I say 'Can you open SAP', it is not recognizing. What is the problem in the above code?
I have replicated and identified your issue. You forgot to include <template>
tag.
Here is the correct AIML for your case:
<category>
<pattern>OPEN SAP</pattern>
<template>
<random>
<li>Sure thing!</li>
<li>Right away, sir!</li>
<li>On it!</li>
</random>
<system>start saplogon </system>
</template>
</category>
<category>
<pattern>* OPEN SAP</pattern>
<template>
<srai> OPEN SAP </srai>
</template>
</category>
<category>
<pattern>* SAP *</pattern>
<template>
<srai> OPEN SAP </srai>
</template>
</category>
It will work as expected now.
Hope it helps.
来源:https://stackoverflow.com/questions/55629898/why-aiml-pattern-matching-is-not-working