首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何强制检测特定意图,而不管用户在dialogflow v2中输入的是什么

如何强制检测特定意图,而不管用户在dialogflow v2中输入的是什么
EN

Stack Overflow用户
提问于 2018-06-06 19:47:56
回答 1查看 1.1K关注 0票数 3

我想强制检测意图,这样无论用户输入什么,都会重定向到特定的意图。

目前,我正在尝试使用以下代码通过传递上下文名称来实现这一点:

代码语言:javascript
复制
 const request = {
      session: sessionPath,
      queryInput: {
        text: {
          text: query,
          languageCode: 'en-US',
        },
      },
      queryParams: {
      contexts: [
          {
            "name": "projects/xxx/agent/sessions/yyy/contexts/question-followup",
            "lifespanCount": 2
          }
        ]
      }
    };

但它似乎是通过用户输入而不是我给出的上下文来检测意图!

有没有关于如何实现这样的事情的想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 04:54:41

你想要做什么是很模糊的,但我认为你有几种方法。

使用Context的回退意图

您可以在系统中创建多个备用意图,诀窍是每个意图都应该具有不同的上下文,因为需要输入上下文。在这些情况下,如果文本输入没有匹配项,它将查找设置了所有输入上下文的后备。

使用 @sys:any Entity

一个空的训练短语字面上的意思是“什么都不说”,所以仅仅有一个匹配的上下文是不够的。相反,您可以将训练短语设置为仅具有@sys:any实体的参数。

这可能是最不可能真正做你想要做的事情,但如果有你想要捕获的短语的组成部分,这可能是有用的。

发送事件

由于您使用API调用Dialogflow,因此如果您想强制执行特定的意图,您可以发送事件而不是发送文本,它将与设置了该事件的意图相匹配。该事件倾向于优先于其他规则,以确定要调用的意图。

使用event data发送给detectIntent的消息可能如下所示:

代码语言:javascript
复制
 const request = {
      session: sessionPath,
      queryInput: {
        event: {
          name: 'event_personal_MINE',
          parameters: {
            whatever: 'value'
          },
          languageCode: 'en-US',
        },
      },
    };

(参数是可选的)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50719675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档