从高层次上讲,我想设置一个包含一些必需输入和一些可选输入的操作。用户开始之后,将提示他/她缺少任何必需的输入。如果/何时收集了必需的输入,我想询问用户是否要指定更多可选输入。
特定用例是基于语音的房地产搜索。我设置了一些必需的输入,例如邮政编码,价格和卧室数量。然后,我想bixby问“您是否想进一步完善搜索范围?”如果用户说是,我们可以询问浴室数量,停车安排以及其他更多利基参数。我不想使所有这些成为必需,并且如果他们想按“池”或某些未广泛使用的参数进行过滤,则必须提示所有人。而且基于语音,我不想只将其作为屏幕上的复选框,因为扬声器上的某个人将无法使用该参数。
我已经想到了两种可能的解决方案,但我不知道它们是否会起作用(至少不依赖屏幕上基于语音的胶囊的控件):
1)搜索交易,然后代替正常的确认,而尝试敲打确认以询问用户是否要添加更多细化内容。也许像银行转帐之类的东西,但是否定的确认会导致bixby询问她之前未要求的信息:https://bixbydevelopers.com/dev/docs/sample-capsules/walkthroughs/simple-transactional#sample-capsule-walkthrough
2)再输入2个必需的输入,一个布尔值称为“ WantsOptionalParameters”,另一个布尔值称为“ OptionalParameters”,这将是一个包含所有可选参数的结构。然后,它将提示像普通的必需输入一样输入WantsOptionalParameters,如果那是“ True”,我可以有一个子操作,该操作将要求每个参数来构造OptionalParameters对象。然后我们可以将该输出输入搜索。另外,如果WantsOptionalParameters为false,我们可以自动构造带有所有否定响应的OptionalParameter,并将其输入到原始操作中。
这两种解决方案都需要大量的研究和测试,我什至都不知道它们是否会起作用,所以我希望能唤起你们的智慧!
答案 0 :(得分:3)
这是我对它的价值的看法。每个域都有通常用于启动对话的键输入和可以优化对话的可选输入。
一些有关房地产示例的一般对话方式(完全由我自己的经验所驱动,也许还有更多)
您可以将此类输入汇总到名为{strong> RequiredInputs 的input-group
中,该需求需要OneOrMoreOf
这些参数才能启动胶囊。
您还可以在需要ZeroOrMoreOf
的另一个称为{strong> OptionalInputs 的input-group
中收集可选/适当的输入并将其输入到胶囊逻辑中
所有输入同样可能很重要,并且都是可选的!这完全取决于域以及胶囊开发人员如何处理此类输入。
但是从一般意义上讲,一旦输入了一组信息并将初始结果显示给用户,胶囊开发人员便可以进行大量控制
因此,您无需控制用户并提供一组选项,而是可以控制对话并提供为用户(以及胶囊开发者)提供最大价值的选项。
例如,您的胶囊能够以市场上其他胶囊无法做到的方式进行深度分析和精炼结果。因此,您想通过followup
或者,您可能会基于先前的经验和对域的了解而建立对话路径。因此,您可以说,我可以通过X,Y,Z选项进一步完善结果。
这种情况更有可能有用,并且不太可能使最终用户不知所措(带有选项)。
希望这会有所帮助!