Как получить данные, сказанные пользователем из намерения в помощнике Google? - PullRequest
0 голосов
/ 04 июля 2018

В настоящее время я использую фреймворк jovo и пишу свой код с помощью nodeJs. мой проект выглядит так:

Hello! Как тебя зовут?

Сальма

Привет, Сальма, приятно познакомиться! что ты хочешь, чтобы я сделал для тебя?

играй лучше на радио

Вы хотите, чтобы я играл радио под названием A Better Radio?

название радио "лучшее радио" находится в файле json намерения, так там все отлично работает. Но если я скажу, например, «Play Bet Ray», значение radio.value становится неопределенным. Я хочу получить данные, сказанные пользователем "play bet ray", чтобы я мог их проанализировать.

так, как я могу получить данные, сказанные пользователем из намерения?

JSON выглядит так:

{
    "responseId": "552fd979-bf0f-4f6c-9ddd-39180824c26d",
    "queryResult": {
            "queryText": "GOOGLE_ASSISTANT_WELCOME",
            "parameters": {},
            "allRequiredParamsPresent": true,
            "fulfillmentMessages": [
                    {
                            "text": {
                                    "text": [
                                            ""
                                    ]
                            }
                    }
            ],
            "outputContexts": [
                    {
                            "name": "projects/trythis-807dd/agent/sessions/1530712293227/contexts/google_assistant_welcome"
                    },
                    {
                            "name": "projects/trythis-807dd/agent/sessions/1530712293227/contexts/actions_capability_screen_output"
                    },
                    {
                            "name": "projects/trythis-807dd/agent/sessions/1530712293227/contexts/actions_capability_audio_output"
                    },
                    {
                            "name": "projects/trythis-807dd/agent/sessions/1530712293227/contexts/google_assistant_input_type_keyboard"
                    },
                    {



{
    "fulfillmentText": "<speak>Hello! What's your name?</speak>",
    "payload": {
            "google": {
                    "expectUserResponse": true,
                    "richResponse": {
                            "items": [
                                    {
                                            "simpleResponse": {
                                                    "ssml": "<speak>Hello! What's your name?</speak>"
                                            }
                                    }
                            ]
                    },
                    "noInputPrompts": [
                            {
                                    "ssml": "<speak>Please tell me your name.</speak>"
                            }
                    ]
            }
    },

{
    "responseId": "8d031a0f-9692-4e8d-a172-d7dad9c7511b",
    "queryResult": {
            "queryText": "my name is salma",
            "parameters": {
                    "name": "Salma"
            },
            "allRequiredParamsPresent": true,
            "fulfillmentMessages": [
                    {
                            "text": {
                                    "text": [
                                            ""
                                    ]
                            }
                    }
            ],
            "outputContexts": [
                    {
                            "name": "projects/trythis-807dd/agent/sessions/1530712293227/contexts/actions_capability_screen_output",
                            "parameters": {
                                    "name.original": "salma",
                                    "name": "Salma"
                            }
                    },


{
    "fulfillmentText": "<speak>Hello  Salma, nice to meet you! what do you want me to do for you?</speak>",
    "payload": {
            "google": {
                    "expectUserResponse": true,
                    "richResponse": {
                            "items": [
                                    {
                                            "simpleResponse": {
                                                    "ssml": "<speak>Hello  Salma, nice to meet you! what do you want me to do for you?</speak>"
                                            }
                                    }
                            ]
                    },
                    "noInputPrompts": [
                            {
                                    "ssml": "<speak>Hey , Salma,  What can i do ?</speak>"
                            }
                    ]
            }
    },


{
    "fulfillmentText": "<speak>Hello  Salma, nice to meet you! what do you want me to do for you?</speak>",
    "payload": {
            "google": {
                    "expectUserResponse": true,
                    "richResponse": {
                            "items": [
                                    {
                                            "simpleResponse": {
                                                    "ssml": "<speak>Hello  Salma, nice to meet you! what do you want me to do for you?</speak>"
                                            }
                                    }
                            ]
                    },
                    "noInputPrompts": [
                            {
                                    "ssml": "<speak>Hey , Salma,  What can i do ?</speak>"
                            }
                    ]
            }
    },


 "fulfillmentText": "<speak>Do you want me to play the radio called A Better Radio ?</speak>",

я пробовал:

let inputs = this.getInputs();

let inputs = this.user().getPrevSpeech(0);

let inputs =this.getSpeechText();

Ответы [ 3 ]

0 голосов
/ 06 июля 2018

Вы можете получить необработанный текст запроса Google Action с помощью this.$googleAction.getRawText().

Редактировать: предыдущий ответ (this.googleAction().getRawText()) был для версии Jovo Framework <2. </p>

0 голосов
/ 09 июля 2018

Предпочтительным способом извлечения информации из речи / текста пользователя являются объекты Dialogflow. Руководство по началу работы для юридических лиц можно найти здесь: https://dialogflow.com/docs/getting-started/extract-entities

0 голосов
/ 04 июля 2018

Хорошо, во-первых, мне нужно знать, делаете ли вы это в диалоговом потоке или для alexa (при условии, что это одно или другое, потому что учебники Jovo предназначены для этих 2.

Вы поместили диалоговое окно в тег, поэтому я предполагаю, что именно с этим вы работаете.

Полагаю, вы создали параметр под названием radio с сущностью sys.any. Если нет, то создайте параметр под названием radio с сущностью sys.any; затем наберите 5-6 обучающих фраз (только для тестирования, если вы реализуете, вам нужно гораздо больше) и убедитесь, что вы выделили, какая часть на самом деле является радио. Вот как вы должны получать данные.

Если вы хотите получить все, что говорит пользователь, что обычно не является хорошей практикой (если вы не тестируете или не нуждаетесь во всем, что сказано). Затем просто сделайте несколько обучающих фраз со всем выделенным и с сущностью sys.any.

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

Кроме того, вы можете получить приглашение на официальную прогулку Jovo:

https://www.jovo.tech/community

Разработчики Jovo находятся там, поэтому они, вероятно, смогут помочь вам с любыми проблемами, которые у вас есть.

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