Как отправить аудио обратно из Dialogflow CX webhook?

#dialogflow-es #dialogflow-es-fulfillment #dialogflow-cx

# #dialogflow-es #dialogflow-es-выполнение #dialogflow-cx

Вопрос:

Я использую этот код для отправки текстового ответа с узла.JS Dialogflow CX webhook. Я хочу воспроизвести аудио в качестве исполнения, поэтому я хочу отправить ссылку на этот звук обратно.

Как я могу отправить обратно ссылку на аудиофайл?

 const express = require("express");
const app = express();
const bodyParser = require("body-parser");

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: false
}));

app.post("/webhook", (request, response) => {
    let tag = request.body.fulfillmentInfo.tag;
    let jsonResponse = {};
    if (tag == "hello") {
        //fulfillment response to be sent to the agent if the request tag is equal to "welcome tag"
        jsonResponse = {
            fulfillment_response: {
                messages: [{
                    text: {
                        //fulfillment text response to be sent to the agent
                        text: ["Hi! This is a webhook response"]
                    }
                }]
            }
        };
    } else {
        jsonResponse = {
            //fulfillment text response to be sent to the agent if there are no defined responses for the specified tag
            fulfillment_response: {
                messages: [{
                    text: {
                        ////fulfillment text response to be sent to the agent
                        text: [
                            `There are no fulfillment responses defined for "${tag}"" tag`
                        ]
                    }
                }]
            }
        };
    }
    response.json(jsonResponse);
});

const listener = app.listen(3000, () => {
    console.log("Your app is listening on port "   listener.address().port);
});
 

Ответ №1:

Чтобы использовать ваш аудио URI, вы должны добавить его в свой ‘JsonResponse’. Вам нужно будет добавить его в свой webhookResponse с помощью следующих полей: JsonResponse.fulfillment_response.messages.play_audio

‘play_audio’ укажет URI аудиоклипа, который будет воспроизводиться. Этот URI должен быть общедоступным URI.

Например (playAudio):

 jsonResponse = { 
    fulfillment_response: { 
        messages: [{ 
            play_audio: { 
                audio_uri: `https://URI.EXAMPLE.WAV`
            } 
        }] 
    } 
};
 

Пожалуйста, обратите внимание, что эти звуковые ответы в настоящее время работают только с телефонными интеграциями Dialogflow, такими как Avaya или AudioCodes, или с пользовательской интеграцией, которую вы можете создать самостоятельно, используя API и клиентские библиотеки. Не все аудиофайлы работают для Avaya и AudioCodes, поэтому я рекомендую использовать .Файлы WAV, поскольку они работают с обоими.

Если вы используете пользовательскую интеграцию, вы можете создать свою собственную реализацию для поддержки предпочитаемого вами аудиоформата.