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

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

Здравствуйте! Как вас зовут?

Сальма

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

играть лучше радио

Вы хотите, чтобы я играл радио под названием 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 ответа

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

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

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

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

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

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

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

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

https://www.jovo.tech/community

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

Другие вопросы по тегам