Диалоговый поток не обнаруживает намерение с контекстом - PullRequest
0 голосов
/ 28 ноября 2018

Я подключаюсь к Dialogflow REST API v2beta1 по методу: projects.agent.sessions.detectIntent.В первом запросе я отправляю текст, а в ответ возвращается ожидаемый результат, содержащий outputContexts;когда я сделал второй запрос, я отправляю контекст, и он должен найти намерение, связанное с этим контекстом, но вместо этого он возвращает намерение возврата по умолчанию.

В чем может быть проблема во втором запросе?

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

URL https://dialogflow.googleapis.com/v2beta1/projects/project-name/agent/sessions/12343:detectIntent

1-й запрос

{
    "queryInput":{
        "text":{
            "text":"play a video about love",
            "languageCode":"en"
        }
    }
}

1-й ответ

{
    "responseId": "15a3b767-52fe-4fc2-8ffd-9d7bb9c6961a",
    "queryResult": {
        "queryText": "play a video about love",
        "action": "video.play",
        "parameters": {
            "organization": "",
            "tag": "Love",
            "item": ""
        },
        "allRequiredParamsPresent": true,
        "fulfillmentText": "Here is a video about Love!",
        "fulfillmentMessages": [
            {
                "platform": "ACTIONS_ON_GOOGLE",
                "simpleResponses": {
                    "simpleResponses": [
                        {
                            "textToSpeech": "Here is a video about Love!"
                        }
                    ]
                }
            },
            {
                "text": {
                    "text": [
                        "Here is a video about Love!"
                    ]
                }
            }
        ],
        "outputContexts": [
            {
                "name": "projects/project-name/agent/sessions/12343/contexts/play-video",
                "lifespanCount": 5,
                "parameters": {
                    "tag": "Love",
                    "organization": "",
                    "tag.original": "love",
                    "item": "",
                    "organization.original": "",
                    "item.original": ""
                }
            }
        ],
        "intent": {
            "name": "projects/project-name/agent/intents/9e5d2bbc-81f3-4700-8740-01504b05443f",
            "displayName": "video-play"
        },
        "intentDetectionConfidence": 1,
        "languageCode": "en"
    }
}

2-й запрос (где должна быть проблема)

{
    "queryParams":{
        "contexts":[
            {
                "name":"projects/project-name/agent/sessions/12342/contexts/play-video"
            }
        ]
    },
    "queryInput":{
        "text":{
            "text":"that video matters a lot for me",
            "languageCode":"en"
        }
    }
}

2-й ответ

{
    "responseId": "40d1f94f-4673-4644-aa53-99c854ff2596",
    "queryResult": {
        "queryText": "that video matters a lot for me",
        "action": "input.unknown",
        "parameters": {},
        "allRequiredParamsPresent": true,
        "fulfillmentText": "Can you say that again?",
        "fulfillmentMessages": [
            {
                "text": {
                    "text": [
                        "Sorry, what was that?"
                    ]
                }
            }
        ],
        "intent": {
            "name": "projects/project-name/agent/intents/10c88e8d-f16a-4905-b829-f596d3b3c588",
            "displayName": "Default Fallback Intent",
            "isFallback": true
        },
        "intentDetectionConfidence": 1,
        "languageCode": "en"
    }
}

Скриншоты ожидаемых совпадений

1-е намерение enter image description here

2-е намерение enter image description here

Полезная документация

1 Ответ

0 голосов
/ 28 ноября 2018

Похоже, ваш второй запрос имеет неполный контекст.Хотя вы указываете name, вы не включаете параметр lifespanCount.Поскольку вы не предоставляете параметр, он по умолчанию равен 0, что означает, что время ожидания истекло.

Вы должны отправить точно то, что вы получили от атрибута outputContext впредыдущий ответ.

{
    "queryParams":{
        "contexts":[
            {
                "name": "projects/project-name/agent/sessions/12343/contexts/play-video",
                "lifespanCount": 5,
                "parameters": {
                    "tag": "Love",
                    "organization": "",
                    "tag.original": "love",
                    "item": "",
                    "organization.original": "",
                    "item.original": ""
                }
            }
        ]
    },
    "queryInput":{
        "text":{
            "text":"that video matters a lot for me",
            "languageCode":"en"
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...