Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >实体与跟踪意图

实体与跟踪意图
EN

Stack Overflow用户
提问于 2018-10-08 03:09:06
回答 1查看 350关注 0票数 1

假设我想让一个比萨订购DialogFlow代理。要点披萨,我们需要三样东西:sizetypetoppings

如果我们想使用后续的意图方法,而不是使用实体,那么用户可能提供信息的组合就太多了。

他说:我想要一个比萨饼->没有信息

我想要小比萨饼->号

我想要小奶酪比萨饼->大小和型号

4:我想要小奶酪比萨,上面有橄榄->大小、型号和配料。

5:我想要小比萨饼,配橄榄,->大小和配料

..。

诸若此类

如何解决这个问题?

如果我们有更多的实体(2^n组合),就会有这么多的组合。

注1:不能使用实体和插槽选项,因为如果我们沿着这条路走下去,就会出现很多问题,比如重提示循环、验证等等。

有没有更好的解决办法?

备注2:如果我们使用实体,标记它们所需的,并设置提示,如果它没有从用户那里得到想要的输入,它就会被困在重新提示循环中,也就是说,它总是要求用户提供相同的提示符(或随机的)提示。在我的用例中,它不利于用户体验。如果我们用后续的意图代替,那么我们就可以为解决这个问题的所有意图设置后备意图。(请注意,这只是用例的例子)

This is another example为什么我使用跟踪意图,它也解决了我的日期捕获问题。我采取了@sys.date.recent,并设置了一个后备意图,以捕获输入,如last week, last month等,这是不可能的使用插槽。

EN

回答 1

Stack Overflow用户

发布于 2018-10-08 07:48:40

首先,记住意图应该反映用户所说的内容,而不一定是您正在做的事情。

表面上,不清楚为什么插槽填充(无论是满足还是使用内置提示)不能满足您的需求。由于您已经指出所有三位信息都是必需的(大小、类型和顶部),您可以在短语中将它们标记为这样,对话框流将提示输入丢失的信息,直到它得到所有信息为止。

你几乎肯定不想使用后续意图。这些都是好的,当您总是发送一个特定的响应,它总是有一组来自用户的非常狭窄的回复,但是如果来自您的操作的响应会以许多不同的方式提示用户回复,那么这些都是非常糟糕的。

相反,我会使用一个相关的概念:上下文。(至少如果你不打算使用插槽填充。)当你问他们想要什么的时候,设定一个背景,让你知道他们想要什么。然后有一个或多个意图,将其作为接受用户可能说的各种内容的输入上下文。你的网络钩子应该看看你是否有你需要的信息,如果没有,提示他们你还想要什么。最后,提示确认,但他们可能会说一些东西,以调整订单。

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

https://stackoverflow.com/questions/52700975

复制
相关文章
Ubuntu下安装Python3和IDLE3
发现它是python2.*的,因为Ubuntu很多底层采用的是Python2.*,Python3和Python2是互相不兼容的,所以此时不能卸载Python2!!!需要将默认Python的指向Python3。
全栈程序员站长
2022/09/08
7820
Ubuntu下安装Python3和IDLE3
当我还在和ChatGPT聊天,有人已经开始用它来控制机器人干活了
机器之心报道 编辑:铭怿、蛋酱 ChatGPT 的功能目前已扩展到机器人领域,可以用语言直观控制如机械臂、无人机、家庭辅助机器人等的多个平台。这会改变人机交互的未来形式吗? 你可曾想过用自己的话告诉机器人该做什么,就像对人说话那样? 比如说,只要告诉你的家庭助理机器人「请帮我热一下午餐」,然后它就能自己找到微波炉。很神奇,对吗? 尽管语言是人类表达意图的最直观的方式,但此前很长一段时间,人们仍然严重依赖手写代码来实现对机器人的控制。不过,当 ChatGPT 出现之后,这种情况要变一下了。 在最近的一项研
机器之心
2023/02/28
5480
当我还在和ChatGPT聊天,有人已经开始用它来控制机器人干活了
Python 一个简单的读取excel例
笔者安装了python3版本,然后IDE安装了Pycharm,感受一下python的开发环境
py3study
2020/01/08
8790
如何在Windows上安装Python【Programming(Python)】
所以你想学习编程吗?Python是最常见的语言之一,它以面向对象的结构和简单的语法的独特结合而流行。Python还是一种解释型语言,这意味着您无需学习如何将代码编译为机器语言:Python可以帮您实现这一点,从而使您有时可以在编写代码的同时立即进行测试。
Potato
2019/12/01
1.9K0
如何在Windows上安装Python【Programming(Python)】
python3 virtualenv
在安装了python3之后,在项目开发的过程中,使用pip3进行库安装都会下载安装到环境变量设置好的地方,也就是python3安装的根目录下。 但是如果同时要开发多个不同的应用项目,而不同应用项目对于同一个库需要适配不同的版本,这种情况怎么办呢?
Devops海洋的渔夫
2019/05/30
3.3K0
Mu 入门:一个面向初学者的 Python 编辑器
Mu 是一个给初学者的 Python 编辑器,它旨在使学习体验更加愉快。它使学生​​能够在早期体验成功,这在你学习任何新知识的时候都很重要。
用户8639654
2021/10/21
2.1K0
CentOS7 安装 Python3.6
先看编译安装,编译安装后的文件目录基本和Windows平台上目录差不多。指定安装路径的话,所有的文件都是在一起的。 后面有yum的安装的方法。
py3study
2020/01/07
3.5K1
换掉 Maven,我用它!!!
相信使用Java的同学都用过Maven,这是一个非常经典好用的项目构建工具。但是如果你经常使用Maven,可能会发现Maven有一些地方用的让人不太舒服:
java进阶架构师
2021/02/05
5400
换掉 Maven,我用它!!!
选择篇(011)-当我们这样做时会发生什么?
参考答案:A 解析: 这在JavaScript中是可能的,因为函数也是对象!( 原始类型之外的所有东西都是对象) 函数是一种特殊类型的对象。您自己编写的代码并不是实际的函数。该函数是具有属性的对象,此属性是可调用的。
齐丶先丶森
2022/05/12
1920
Install Jumpserver12
进行编译安装[root@h165 Python-3.6.1]# ./configure && make && make installchecking build system type... x86_64-unknown-linux-gnuchecking host system type... x86_64-unknown-linux-gnuchecking for python3.6... nochecking for python3... nochecking for python... pytho
franket
2022/07/10
1510
Centos7 安装python3、pip3、ipython3
直接下载安装包如下: wget "https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz"
Devops海洋的渔夫
2019/05/31
1.4K0
再撩Python
如果你觉得很复杂,不要慌张,它本来就很复杂。 如果你觉得很简单,不要慌张,它本来就很简单。 --小浪 1、起手 还要把Python的开发环境说说。 2、Python安装 Python在各个操作系统上都有,所以Python代码天生就是跨平台的。在Windows上写好了代码,到Linux/Mac上不用改动一行代码,就平稳的跑起来了,感觉很鸡动有没有。 Python的安装也很方便的,在Windows下,到Python的官网(https://www.python.org/)上下安装包(选Python3的),双击后,
企鹅号小编
2018/01/25
6390
命令模式(Command)
1. 模式的定义 电脑开机的几个过程:1. 加载电源 2. 设备检查 3. 装载系统 客户端只是想要发出命令或者请求,不关心请求的真正接收者是谁,也不关心具体如何实现,而且同一个请求的动作可以有不同的
Java高级架构
2018/07/20
5320
Command – 命令模式
大部分应用都存在非常多的菜单和一些操作button,但在设计这些菜单和button的时候,并不知道它要运行什么样的操作。在设计删除、复制和撤销这些详细实现的时候,也不知道在要什么地方用到,可能是代码里面直接调用,也可能是界面上点击了某个button后发生的操作。为了解决菜单和详细操作的这样的耦合度,就须要使用Command-命令模式:
全栈程序员站长
2022/07/13
2560
Command – 命令模式
命令(Command)模式
命令(Command) Intent 将命令封装成对象中,具有以下作用: 使用命令来参数化其它对象 将命令放入队列中进行排队 将命令的操作记录到日志中 支持可撤销的操作 Class Diagram Command:命令 Receiver:命令接收者,也就是命令真正的执行者 Invoker:通过它来调用命令 Client:可以设置命令与命令的接收者 Implementation 设计一个遥控器,可以控制电灯开关。 public interface Command { void execut
MickyInvQ
2022/05/06
2400
命令(Command)模式
命令模式(Command)
命令模式是一种行为型模式,它可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换让你能根据不同的请求将方法参数化、延迟请求执行或将其放入队列中,且能实现可撤销操作。 简单来说,命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。
兜兜转转
2023/03/08
4940
命令模式(Command)
#PY小贴士# 为什么我 pip 装了库,代码里却用不了?
明明我在控制台下通过 pip 安装后显示 successful 安装成功,但在代码里 import,就报错说 module not found,模块不存在?
Crossin先生
2020/01/17
1.4K0
命令模式(Command)
命令模式(Command) 命令模式(Command)[Action/Transaction] 意图:将一个请求封装为一个对象,从而可用不同的请求对客户参数化。对请求排队或记录请求日志,以及支持可撤消
Florian
2018/02/05
4200
命令模式(Command)
-bash: yum: command not found 错误
卸载:rpm -aq|grep yum|xargs rpm -e --nodeps
OwenZhang
2021/12/08
3.9K0
错误:该行已经属于另一个表
从一个TABLE中取一行放到另一个TABLE里报错: 该行已经属于另一个表。的解决办法 用下面来个方法就OK了。 DataTable dt = new DataTable(); dt = ds.Tables["All"].Clone();//克隆All的结构传递给dt DataRow[] dr=this.dataSet31.Tables["Product"].Select("bc=1"); //通过条件得到符合条件的行 for(int i=0;i<dr.Length;i++) { //将数组元素加入表.
hbbliyong
2018/03/05
7930

相似问题

Google游戏Android领导板意外响应代码410

15

蜂房服务响应410消失

14

响应代码410,以jmeter表示

10

IIRF -如何发送410 Gone响应

111

错误410:消失(代码)

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文