我能够使用SimpleResponse
,BasicCard
,List
和其他此类丰富的回复。可以支持以下内容吗?
a。 仅语音+基本卡+ simpleResponse
如果我生成如下响应:
conv.ask('<speak> ...</speak>');
conv.ask(new BasicCard(
);
conv.ask(new SimpleResponse({
speech: ...
text: ...
});
我注意到在显示设备(电话)上,speak
的内容也显示为文本。有办法避免吗?
接下来,“简单响应”的文本出现在卡之前。有没有办法确保它在卡后出现。
当前,对于第一个问题,我被迫使用带有短文本的SimpleResponse(例如Hi);对于第二个问题,我将文本作为名片文本并删除了SimpleResponse。
但是想知道是否有出路?谢谢
答案 0 :(得分:2)
首先;如reference docs for the node.js library中所述,响应中的第一项应该始终是SimpleResponse。无论您是定义的短文本还是其speech
属性的副本,SimpleResponse始终显示文本。但是我喜欢您输入简短的文字,以避免向用户显示您的操作逐字记录。
第二;根据我的经验,在模拟器上未正确显示响应顺序。我已经在虚拟的“动作”中测试了您的情况,而模拟器在卡片之前显示了“最终回应”(这是我的代码中的最后一个),而我的手机却以正确的顺序显示了它们。
模拟器:
在设备上进行测试,看看错误是否仍然存在。我目前没有附近的Google Home,但也可以对其进行测试。
答案 1 :(得分:0)
第一个问题:如果要使用ssml标记,则必须使用SimpleResponse,这就是它的本意。换句话说,您的第一个问题不是问题:)