在AIML中使用条件标签

时间:2017-10-09 21:58:58

标签: python artificial-intelligence chatbot aiml

我正在尝试在AIML文件中使用条件标记功能。 我正在使用python脚本,PyAIML和pb_py库。

在我当前的实现中,我设置了它,以便我可以在我的python脚本中动态设置谓词值,条件标记可以是“speech”或“text”:

<!-- 5 Legacy -->
<category><pattern>ARE YOU NAMED AFTER *</pattern><template><srai>legacyresponse</srai></template></category>
<category><pattern>WHO ARE YOU NAMED AFTER</pattern><template><srai>legacyresponse</srai></template></category>
<category><pattern>LEGACYRESPONSE</pattern>
<template>
<condition name = "inputtype">
    <li value = "speech">Some response</li>
    <li value = "text">Some text response.</li>
</condition>
<srai>promptuser</srai>
</template>
</category>

在我的AIML文件中,我有多个响应功能实现如下:

<category><pattern>_ YOUR DAD *</pattern><template><srai>parentsresponse</srai></template></category>
<category><pattern>PARENTS</pattern><template><srai>parentsresponse</srai></template></category>
<category><pattern>PARENTS</pattern><template><srai>parentsresponse</srai></template></category>
<category><pattern>PARENTSRESPONSE</pattern>
<template>
<random>
<li>Response 1</li>
<li>Response 2</li>
<li>Response 3</li>
</random>
<srai>promptuser</srai>
</template>
</category>

我想同时拥有多个响应和条件功能,例如,如果我传入'speech'条件,它会选择

  • 标记,其值设置为'speech'或者
  • 标记未指定值的标记:

    <category><pattern>LEGACYRESPONSE</pattern>
    <template>
    <condition name = "inputtype">
        <li value = "speech">Some Speech only response</li>
        <li>Some speech or text response</li>
        <li value = "text">Some text only response.</li>
    </condition>
    <srai>promptuser</srai>
    </template>
    </category>
    

    任何帮助都会受到赞赏吗?

  • 2 个答案:

    答案 0 :(得分:0)

    我没有得到你的全部要求。但根据我的理解,你面临着条件标签的问题。

    每当用户选择&#34;语音&#34;或&#34;文字&#34;请设置&#34; inputtype&#34;到相应的值。如果用户没有选择其中任何一个,那么&#34; inputtype&#34;是&#34;未知&#34;。

    <condition name="inputtype">
        <li value="speech">Your stuff </li>
        <li value="text">Your stuff </li>
        <li value="unknown">Your stuff </li>
    </condition>
    

    答案 1 :(得分:0)

    您可以查看下面的示例AIML代码,并在您的文件中进行相应的更改。

    <?xml version="1.0" encoding="UTF-8"?>
    <aiml version="1.0">
    <category>
        <pattern>WHAT ABOUT MOVIES</pattern>
        <template>
        I love talking about movies too!
        <think><set name="topic">MOVIE</set></think>
        <br/>Did you like comedy movies?
        </template>
    </category>
    <topic name="MOVIE">
        <category>
            <pattern>YES</pattern>
            <that>* LIKE COMEDY  *</that>
            <template>You seems an interesting person!</template>
        </category>
        <category>
            <pattern>NO</pattern>
            <that>* LIKE COMEDY  *</that>
            <template>You seems a boring person!</template>
        </category>
    </topic>
    </aiml>