语法说明 凯瑟琳DSL使用和YAML类似的语法来编写逻辑。语法通过规定机器人的多个阶段和在阶段之间的 迁移关系来描述聊天机器人的聊天过程。机器人在启动时处在一个特定的阶段,通过正则表达式匹配用户的输入迁移到下一个阶段 并输出对应的内容。 文法拥有三个顶级属性:
  • robotName 字符串类型,规定了机器人的名称;
  • stages Stage类型的数组,规定了机器人的各个阶段;
  • beginStageName 字符串类型,规定了机器人初始阶段,会自动输出该阶段的输出内容。
Stage类型拥有三个属性:
  • name 阶段的名称,是阶段唯一的标识符
  • transformers Transformer类型的数组,指定该阶段的迁移规则;
  • answer 该阶段的输出内容。
Transformer类型拥有两个属性:
  • pattern 匹配用户输入的正则表达式;
  • nextStageName 匹配成功之后需要迁移到的阶段名。
在编译阶段编译器会执行如下检查:
  • transformers 中的 nextStageName指定的阶段是否定义;
  • beginStageName 指定的阶段是否定义。
@code { private bool _helpVisible; public void Show() { _helpVisible = true; StateHasChanged(); } }