目录

意图

优质
小牛编辑
130浏览
2023-12-01

1.1. 意图

意图指用户说话的目的,即用户想要表达什么、想做什么。用户的对话中可能含有多个意图,这些意图按照概率的大小进行排序。

如用户说“今天天气怎么样?”,意图就是“查询天气”,用户说“我想订一张火车票”,意图就是“买火车票”。

在技能开放平台创建一个意图,包含下面三个部分。

  • intent参数:表示意图名称。

  • slots参数:表示与上述意图依赖的词表名称和内容。词表通过词表名称name和词表内容type来定义。词表,即指某领域词汇的集合(详见词表介绍)。

  • user_says参数:表示用户表达语句(见用户语句)在用户与您的技能交互过程中,用户可能有多种不同的表述方式,这些可能的表达方式称为用户表达。构建用户表达时,需要输入用户在日常生活中表述该意图的常用语句。输入语句的表达方式尽可能丰富,这样意图识别越准确。

    特别提醒: 用户语句是句式强匹配,除特殊情况外,不建议在句末添加标点符号,否则可能会导致句式无法匹配。

在Rokid 技能开放平台中,意图用来表示用户的一个具体语音请求。如果需要,每一个意图都可以声明自己依赖的词表,也就是需要在语义解析之后输出给后端服务的内容。

比如创建一个我要喝咖啡的技能。这个技能的意图定义中,我们会定义一个询问咖啡馆地点的意图bestcoffeebar,它需要依赖一个词表city来确定搜索范围。当用户说:“若琪,打开我要喝咖啡,杭州哪里有好点的咖啡馆。”时,Rokid技能开放平台将把bestcoffeebar的intent请求发给后端服务,同时还将带上词表名称city中的“杭州”这个值。如果此时未定义city这个词表依赖,“杭州”这个参数将不会被输出给后端服务。

您将在意图定义框中用JSON格式定义一套有效的意图。比如如下案例中定义了意图:bestcoffeebar,意图bestcoffeebar依赖的词表是citycity通过LIST_OF_CITIES这个词表内容来定义,其中包含各城市名称的值(比如杭州、北京)。

{
 "intents": [
  {
   "intent": "bestcoffeebar",
   "slots": [
        {
        "name": "city",
        "type": "LIST_OF_CITIES"
        }
   ],
    "user_says":[
        "$city有什么好的咖啡馆",
        "$city哪里有好点的咖啡馆"
        ]
  },
 ]
}

另外,一个词表还可以引用Rokid技能开放平台预先定义好并对外开放的词表内容,比如时间等,此部分将会陆续开放。