重复上一句

Repeat last sentence

我正在使用 actions-on-google 和 Dialogflow 构建一个机器人。

我想知道如何在用户询问时轻松重复最后一句话 ("repeat please")。

一种方法是在 Dialogflow 中重复后续意图,但这相当繁重,因为 :

有谁知道如何做到这一点?

从广义上讲,最好的方法是利用 Dialogflow Contexts。在发送消息时,您还可以将该消息添加到上下文中(例如,您可以将其命名为 "last_message")。然后,您可以让另一个 Intent 将 "last_message" 上下文作为输入上下文,如果触发,则使用上下文中保存的值重复它。

@SysCoder 有一个 package 可以帮助你为 node.js 做到这一点。

澄清

这假定您通过履行生成响应。在这种情况下,将您发回的消息保存在两个地方而不是一个地方应该相当容易。 voice-repeater or multivocal 之类的库可以为您处理大部分此类事务,但您自己也不难处理。

如果您通过 GUI 的“响应”部分处理所有回复,那么此方法将不起作用。

取一个通用变量并将所有意图的响应保存到其中,并进行意图重复,其响应就是该通用变量。

 let prevSpeech = '';

 app.intent('Default Welcome Intent', (conv) => {
  const speech =`Welcome to My world`;
  conv.ask(new SimpleResponse({
    speech:speech,
    text: `Welcome to my world`,
 }));
 prevSpeech = speech;
});
app.intent('Repeat', (conv) => {
 conv.ask(new SimpleResponse({
    speech:prevSpeech,
    text: prevSpeech
  }));
});