【问题标题】:AIML - Changing bot propertiesAIML - 更改机器人属性
【发布时间】:2016-10-04 18:34:00
【问题描述】:

我找到了bot.aiml 文件here,它使用了诸如<bot name="genus"/> 之类的东西。我认为这类似于<get name="name"/> 之类的东西,它会得到客户的名字。那么,如何为机器人设置诸如genus 之类的属性,以便我可以通过这种方式检索它?

【问题讨论】:

    标签: aiml


    【解决方案1】:

    假设机器人问你你的名字,当你说“我的名字是 JACOB”时,你希望机器人说“我会记住你的名字是 JACOB”,并将变量“clientname”的值设置为“JACOB ”。

    将这些行添加到您的 AIML 文件中:

    <category>
        <pattern>MY NAME IS *</pattern>
        <template>I will remember that your name is </star><think><set name="clientname"></star></set></template>
    </category>
    

    在此,&lt;/star&gt; 标记代表您将在 * 的位置输入的任何内容(在本例中为 JACOB)。

    【讨论】:

      【解决方案2】:

      我认为最初的问题是关于机器人的属性,而不是用户属性。

      在 AIML v1(和 v2)中,使用 &lt;bot name="name"/&gt;(例如)检索机器人属性以获取机器人的名称。使用&lt;get name="name"/&gt; 检索用户属性并使用&lt;set name="name"&gt;Fred&lt;/set&gt; 进行更新(例如)。我认为标准 AIML 没有任何方法可以在加载机器人后更新机器人的属性。

      【讨论】:

      • 如何设置机器人名称?我们使用 set 设置变量的正常方式是行不通的
      • 应该有一个定义所有机器人属性的“启动”文件。这些属性是在加载类别时定义的,加载后无法更改(无论如何在标准 AIML 中都没有)。
      • 但是我找不到任何资源来说明这个启动文件是如何创建和使用的。我已经针对这个问题发布了一个 stackoverflow 问题:stackoverflow.com/questions/52182049/…
      • 不幸的是我不熟悉启动文件是如何定义的,我认为它取决于解释器的类型。但是在某个地方会有一个文件,称为 setup.txt 或类似文件。
      • 这是python中著名的aiml代码之一:github.com/datenhahn/python-aiml-chatbot你能看一下吗,因为我在这里找不到。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-01
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 2019-05-26
      • 1970-01-01
      相关资源
      最近更新 更多