Как использовать ключевое слово повтора в диалоговом потоке?

Я использую actions-on-google и dialogflow для создания чат-бота. Помощник задает вопрос, и пользователь отвечает на него. После того, как вопрос был задан, и если пользователь говорит «повторить», я хочу, чтобы вопрос был повторен. Как я могу это сделать? Вот мой код:

app.intent('First', (conv) => {

    const rating = conv.parameters.any;
    senddata[0] = qstion[0] + rating;
    conv.ask(qstion[1]);
});

Может кто-нибудь помочь мне с этим, пожалуйста?


person Ankit    schedule 12.10.2020    source источник
comment
stackoverflow .com / questions / 55160588 /   -  person Sher Singh    schedule 12.10.2020
comment
Я использовал его, но как мне вызвать ответ?   -  person Ankit    schedule 14.10.2020


Ответы (1)


Dialogflow имеет концепцию сеансового хранилища, в котором могут храниться только данные применимо к сеансу. Таким образом вы можете хранить данные, включая ваши предыдущие ответы.

Так что это может быть реализовано как таковое:

app.intent('First', conv => {
    const rating = conv.parameters.any
    senddata[0] = `${qstion[0]}${rating}`
    conv.data.lastResponse = qstion[1]
    conv.ask(qstion[1])
})

app.intent('Repeat', conv => {
    if (conv.data.lastResponse) {
        conv.ask(`Here is what I said before: ${conv.data.lastResponse}`)
    } else {
        conv.ask(`I didn't say anything. Can you ask me something else?`)
    }
})
person Nick Felker    schedule 19.10.2020