Базовые фишки карт и предложений не рендерится при использовании опции карусели - PullRequest
0 голосов
/ 19 ноября 2018

В настоящее время я заканчиваю обучение действиям в Google:

  1. https://codelabs.developers.google.com/codelabs/actions-1/index.html
  2. https://codelabs.developers.google.com/codelabs/actions-2/index.html
  3. https://codelabs.developers.google.com/codelabs/actions-3/index.html

Кажется, все работает отлично, за исключением шага 8 из https://codelabs.developers.google.com/codelabs/actions-3/index.html. Я пробовал это несколько раз и лично просил других помочь, но мне не повезло заставить это работать.

Проблема возникает только тогда, когда я пытаюсь получить базовую карту и фишки для подсказок для отображения из опции карусели. Когда я печатаю ответ отдельно от карусели, базовые фишки для карточек и предложений отображаются нормально, но всякий раз, когда я запускаю карусель с помощью текста, голоса или сенсорного экрана, базовые фишки для карточек и подсказок не работают, несмотря на то, что они кажутся почти идентичными Запросы. Я проверяю это через симулятор. Ниже приведены некоторые из моих результатов (исключая пользователя):

Без запроса карусели:

{
  "conversation": {
    "conversationId": "ABwppHF_1K01OSff9j2qRUTXc0QAExd_rouvB_UvqD8kQl4mWREUxzoESBnJCaaP1UX89IoyXuLkKxChFG3YAfr7drY",
    "type": "ACTIVE",
    "conversationToken": "[]"
  },
  "inputs": [
    {
      "intent": "actions.intent.TEXT",
      "rawInputs": [
        {
          "inputType": "KEYBOARD",
          "query": "pink unicorn"
        }
      ],
      "arguments": [
        {
          "name": "text",
          "rawText": "pink unicorn",
          "textValue": "pink unicorn"
        }
      ]
    }
  ],
  "surface": {
    "capabilities": [
      {
        "name": "actions.capability.SCREEN_OUTPUT"
      },
      {
        "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
      },
      {
        "name": "actions.capability.WEB_BROWSER"
      },
      {
        "name": "actions.capability.AUDIO_OUTPUT"
      }
    ]
  },
  "isInSandbox": true,
  "requestType": "SIMULATOR"
}

Без ответа карусели:

{
  "conversationToken": "[\"favoritefakecolor-followup\"]",
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "Here you go."
              }
            },
            {
              "basicCard": {
                "title": "Pink Unicorn",
                "formattedText": "Pink Unicorn is an imaginative reddish hue.",
                "image": {
                  "url": "https://storage.googleapis.com/material-design/publish/material_v_12/assets/0BxFyKV4eeNjDbFVfTXpoaEE5Vzg/style-color-uiapplication-palette2.png",
                  "accessibilityText": "Pink Unicorn Color"
                },
                "imageDisplayOptions": "WHITE"
              }
            },
            {
              "simpleResponse": {
                "textToSpeech": "Do you want to hear about another fake color?"
              }
            }
          ],
          "suggestions": [
            {
              "title": "Yes"
            },
            {
              "title": "No"
            }
          ]
        }
      },
      "possibleIntents": [
        {
          "intent": "assistant.intent.action.TEXT"
        },
        {
          "intent": "7834d6b7-c6f6-4baf-9e61-20b9b0f4f472"
        },
        {
          "intent": "1f5dbadc-605b-4b3f-baa3-734ac590aefd"
        }
      ],
      "speechBiasingHints": [
        "$fakeColor"
      ]
    }
  ],
  "responseMetadata": {
    "status": {
      "message": "Success (200)"
    },
    "queryMatchInfo": {
      "queryMatched": true,
      "intent": "46251bfd-4c19-449d-979c-c1a88a8c4386",
      "parameterNames": [
        "fakeColor"
      ]
    }
  }
}

С запросом карусели:

{
  "conversation": {
    "conversationId": "ABwppHF_1K01OSff9j2qRUTXc0QAExd_rouvB_UvqD8kQl4mWREUxzoESBnJCaaP1UX89IoyXuLkKxChFG3YAfr7drY",
    "type": "ACTIVE",
    "conversationToken": "[\"favoritefakecolor-followup\"]"
  },
  "inputs": [
    {
      "intent": "actions.intent.OPTION",
      "rawInputs": [
        {
          "inputType": "TOUCH",
          "query": "Pink Unicorn"
        }
      ],
      "arguments": [
        {
          "name": "OPTION",
          "textValue": "pink unicorn"
        },
        {
          "name": "text",
          "rawText": "Pink Unicorn",
          "textValue": "Pink Unicorn"
        }
      ]
    }
  ],
  "surface": {
    "capabilities": [
      {
        "name": "actions.capability.SCREEN_OUTPUT"
      },
      {
        "name": "actions.capability.AUDIO_OUTPUT"
      },
      {
        "name": "actions.capability.WEB_BROWSER"
      },
      {
        "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
      }
    ]
  },
  "isInSandbox": true,
  "requestType": "SIMULATOR"
}

С ответом карусели:

{
  "conversationToken": "[\"favoritefakecolor-followup\"]",
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "Here you go."
              }
            },
            {
              "basicCard": {
                "title": "Pink Unicorn",
                "formattedText": "Pink Unicorn is an imaginative reddish hue.",
                "image": {
                  "url": "https://storage.googleapis.com/material-design/publish/material_v_12/assets/0BxFyKV4eeNjDbFVfTXpoaEE5Vzg/style-color-uiapplication-palette2.png",
                  "accessibilityText": "Pink Unicorn Color"
                },
                "imageDisplayOptions": "WHITE"
              }
            },
            {
              "simpleResponse": {
                "textToSpeech": "Do you want to hear about another fake color?"
              }
            }
          ],
          "suggestions": [
            {
              "title": "Yes"
            },
            {
              "title": "No"
            }
          ]
        }
      },
      "possibleIntents": [
        {
          "intent": "assistant.intent.action.TEXT"
        },
        {
          "intent": "7834d6b7-c6f6-4baf-9e61-20b9b0f4f472"
        },
        {
          "intent": "1f5dbadc-605b-4b3f-baa3-734ac590aefd"
        }
      ],
      "speechBiasingHints": [
        "$fakeColor"
      ]
    }
  ],
  "responseMetadata": {
    "status": {
      "message": "Success (200)"
    },
    "queryMatchInfo": {
      "queryMatched": true,
      "intent": "46251bfd-4c19-449d-979c-c1a88a8c4386"
    }
  }
}

Одно важное различие, которое я заметил, - несмотря на то, что в ответе они содержали как базовые фишки, так и подсказки, только отладочный поток содержал визуальный элемент в отладчике.

с каруселью:

"visualResponse": {
    "visualElementsList": [
      {
        "displayText": {
          "content": "Here you go."
        }
      },
      {
        "displayText": {
          "content": "Do you want to hear about another fake color?"
        }
      }
    ]

без карусели:

"visualElementsList": [
      {
        "basicCard": {
          "title": "Pink Unicorn",
          "subtitle": "",
          "formattedText": "Pink Unicorn is an imaginative reddish hue.",
          "image": {
            "url": "https://storage.googleapis.com/material-design/publish/material_v_12/assets/0BxFyKV4eeNjDbFVfTXpoaEE5Vzg/style-color-uiapplication-palette2.png",
            "accessibilityText": "Pink Unicorn Color",
            "height": 0,
            "width": 0
          },
          "buttonsList": [],
          "imageDisplayOptions": 1
        }
      },
      {
        "displayText": {
          "content": "Here you go."
        }
      },
      {
        "displayText": {
          "content": "Do you want to hear about another fake color?"
        }
      }
    ],
    "suggestionsList": [
      {
        "title": "Yes"
      },
      {
        "title": "No"
      }
    ]
...