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

如何在Nao 6 QiChat中检测用户输入特定词并给出对应回复?

解决Nao对话中检测特定词汇的问题

需求概述

让Nao向用户提出测验问题:"What's the acronym of small-medium-sized enterprise?",若用户回答包含SME,回复"Correct, S M E stands for Small-Medium-Sized-Enterprise";若回答不包含SME,回复"Wrong, it is S M E."

修正后的Dialog代码

topic: ~EnglishQuiz()
language: enu

u:([Question Quiz Quizquestion]) ^gotoRandom(quiz)

proposal:  %quiz What's the acronym of small-medium-sized enterprise?
u1:(SME) Correct, S M E stands for Small-Medium-Sized-Enterprise
u2:(#!SME) Wrong, it is S M E.

代码说明

  • u1:(SME):匹配包含SME的用户回答,触发正确回复
  • u2:(#!SME):使用Aldialog的否定匹配语法,匹配不包含SME的所有用户回答,触发错误回复

相关语法补充(对应你参考的文档翻译)

1. 速查表相关语法

Aldialog支持使用#!前缀实现否定模式匹配,用于排除特定词汇或短语的输入。例如(#!关键词)会匹配所有不包含该关键词的用户输入。

2. 条件判断语法补充

如果需要更灵活的逻辑(比如同时判断多个条件),可以结合^if()函数和%matches()方法实现:

u:(*) ^if(!%matches("SME", $0)) Wrong, it is S M E.
  • $0代表用户的完整输入内容
  • %matches("SME", $0)检查输入是否包含SME,!表示取反
  • ^if()函数根据判断结果决定是否触发回复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:32:33