Вызвать событие Dialogflow с определенным источником устройства - PullRequest
0 голосов
/ 24 января 2019

После многочисленных попыток я прошу вашей помощи, чтобы вызвать событие Dialogflow (GoogleHome) на определенном устройстве GoogleHome.

Через nodeJS мне удалось успешно вызвать событие Dialogflow, и я получил полный ответ. Все отлично, только я должен позволить своему устройству GoogleHome говорить с полным заполнением, мне не нужен только текстовый ответ.

Моя цель - сначала дать возможность моему устройству GoogleHome говорить без слова «Хорошо, Google» и ждать ответа от пользователя.

Я не нашел ничего в сети, мои попытки прекращают вызывать событие Dialogflow и получают консольный ответ.

Это код, который я пробовал для полного заполнения

test: async function () {
    console.log("[funcGHTalk|test] CALLED");


    const projectId = "[[projectid]]";
    const LANGUAGE_CODE = 'it-IT';
    let eventName = "[[eventname]]";
    const sessionId = uuid.v4();

    const sessionClient = new dialogflow.SessionsClient();
    const sessionPath = sessionClient.sessionPath(projectId, sessionId);

    // The text query request.
    const request = {
        session: sessionPath,
        queryInput: {
            event: {
                name: eventName,
                languageCode: LANGUAGE_CODE
            },
        },
    };

    // Send request and log result
    const responses = await sessionClient.detectIntent(request);
    console.log('Detected intent');

    const result = responses[0].queryResult;        
    console.log(result);

    console.log(`  Query: ${result.queryText}`);
    console.log(`  Response: ${result.fulfillmentText}`);
    if (result.intent) {
        console.log(`  Intent: ${result.intent.displayName}`);
    } else {
        console.log(`  No intent matched.`);
    }
}

1 Ответ

0 голосов
/ 24 января 2019

Код, который вы написали, использует Dialogflow Detect Intent API .Это предназначено для запуска на консолях и серверах для отправки сообщения в Dialogflow, который проанализирует его, определит, какое намерение соответствует, выполнит вызов с этой информацией и вернет все результаты.

Вам не нужночтобы запустить это в Google Home, поскольку помощник Google делает все это за вас.

Я думаю, что вы ищете, чтобы развить удовлетворение с помощью Действия в Google и Dialogflow Fulfillment API .Это обрабатывает вещи на другом конце - после того, как Dialogflow определит, какой Intent соответствует тому, что сказал пользователь, и если для этого Intent включено выполнение , он отправит информацию вашему webhook, который работает где-то на облачном сервере.,Затем вы обрабатываете его, отправляете ответ (либо используете библиотеку actions-on-google или библиотеку dialogflow-executeing ), и он отправляет его обратно помощнику..

Вы указали, что хотите, чтобы действие "позволило моему устройству GoogleHome говорить первым без слова" Хорошо, Google "и ждать ответа от пользователя".Это гораздо сложнее, и на самом деле сейчас это невозможно сделать с устройством Google Home.В большинстве действий пользователь инициирует беседу с помощью «Окей, Google, поговори с моим тестовым приложением» или каким-либо другим названием действия.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...