You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandorabots AIML条件格式异常 求排查错误原因

问题定位与修复方案

核心错误点

1. Pattern大小写不匹配

按钮回传的文本是Option 1(首字母大写O,其余小写),但第二个category的pattern是全大写的OPTION *,AIML默认大小写敏感,导致该category无法触发,自定义变量未被正确设置。

2. 自定义变量与系统话题混淆

你用<set name="topic">设置的是自定义变量,但<condition name="topic">在多数AIML实现中会读取系统话题(由<topic>标签管理),而非自定义变量,因此条件匹配失败,始终进入默认分支。

修复后的完整代码

<?xml version="1.0" encoding="UTF-8"?>
<aiml>
  <!-- Initial category to present buttons -->
  <category>
    <pattern>*</pattern>
    <template>Click on one of three buttons:
        <button>
            <text>Option 1</text>
            <postback>Option 1</postback>
        </button>
        <button>
            <text>Option 2</text>
            <postback>Option 2</postback>
        </button>
        <button>
            <text>Option 3</text>
            <postback>Option 3</postback>
        </button>
    </template>
  </category>

  <!-- 修正Pattern与回传文本一致,变量名避免与系统话题重名 -->
  <category>
    <pattern>Option *</pattern>
    <template>
      You chose Option <set name="selected_option"><star/></set>. 
      <srai>TEST</srai>
    </template>
  </category>

  <!-- 基于自定义变量的条件判断写法 -->
  <category>
    <pattern>TEST</pattern>
    <template>
        <condition value="<get name='selected_option'/>">
            <li value="1">Entering Condition 1</li>
            <li value="2">Entering Condition 2</li>
            <li value="3">Entering Condition 3</li>
            <li> Value: <get name="selected_option"/> Default Condition</li>
        </condition>
    </template>
  </category>
</aiml>

关键修复说明

  1. 统一Pattern大小写:将第二个category的pattern改为Option *,与按钮回传文本完全匹配,确保触发该分支。
  2. 避免变量名冲突:把自定义变量名从topic改为selected_option,避开AIML系统保留的topic属性,防止混淆。
  3. 正确的条件判断语法:使用<condition value="<get name='selected_option'/>">绑定自定义变量,确保条件匹配的是你设置的变量值,而非系统话题。

内容的提问来源于stack exchange,提问作者David Graham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 15:36:17