当您在智能助理上展示Google动作旋转木马/列表时,您会看到一个项目列表。例如:
接下来,用户可以说足球,篮球或橄榄球但不能网球,骑自行车,...这意味着匹配发生在当前上下文中,由轮播或列表创建。这很强大,因为后端服务只会在预期输入时被调用。
我希望在一般转换中有这种行为;也就是说,在旋转木马或列表功能之外。在我的应用程序中,用户要求提供运动列表。履行服务返回建议的运动列表。现在,用户可以重复某项运动,以获取有关该运动的更多信息。如果他提到一项最近没有列举的运动,可以读出错误信息。
我知道这可以通过在上下文中保持所提及的体育列表并在用户请求特定运动时在履行后端服务中检查该上下文来实现。但正如所说,我注意到轮播或列表已经以某种方式提供了这样的功能,这不依赖于后端服务,所以我想知道是否有更好的方法来实现这种行为?
在对话过程中,可以通过一种方式记账user entities吗?也就是说,我们可以创建一个用户实体user sport
,它只保存前面提到的运动。这样,如果用户要求不在该列表中的运动,则会出现匹配错误。不过,我不确定这是否是用户实体的良好应用。
有更好的方法吗?
答案 0 :(得分:0)
您可以将实体用于此目的。使用实体类型preferredSports
(或类似)创建所需值列表(即足球,篮球或橄榄球)的实体。然后在意图中使用训练短语中的preferredSports
实体,不要使用不包含所需值列表的名称或体育或实体。除非用户说明您要捕获的实体的值,否则意图可能无法匹配。点击此处了解详情:Entities docs,Intent docs