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

AIML检测用户重复语句无法随机返回多条提示该如何解决

问题成因
  • AIML的<condition>标签的<li>匹配规则是自上而下顺序匹配,只要找到第一个满足条件的<li>就会直接返回对应内容,不会继续匹配后续同条件的项
  • 你代码里写了两个完全相同的匹配条件<li><value><star/></value>...</li>,排在前面的“Why are you saying the same thing?”永远会被优先触发,第二条重复提示永远不会被匹配到
修复方案

核心逻辑为:先判断用户输入是否和上一次输入重复,重复的话从重复提示池随机返回内容,不重复的话从正常回复池随机返回内容,需要用到AIML的<random>标签实现随机选取。

修复后代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<category>
    <pattern>*</pattern>
    <template>
        <condition name="userlast">
            <!-- 输入和上一次重复的情况 -->
            <li>
                <value><star/></value>
                <random>
                    <li>Why are you saying the same thing?</li>
                    <li>you are boring you just saying same thing all the time</li>
                </random>
            </li>
            <!-- 输入不重复的情况 -->
            <li>
                <random>
                    <li>something from a random pool</li>
                    <li>err</li>
                    <li>mhm</li>
                </random>
            </li>
        </condition>
        <think><set name="userlast"><star/></set></think>
    </template>
</category>
</aiml>

修改说明:

  • 将重复触发的两个提示放到同一个匹配条件的<random>标签下,匹配到重复输入时会从这两个提示里随机选一个返回
  • 将非重复的三个正常回复也放到<random>标签下,实现正常回复的随机返回

内容的提问来源于stack exchange,提问作者Paulo Evan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:45:06