динамически добавлять фишки предложений на Api.ai для действий в Google

Я хочу добавить предложения для пользователя в моем боте Google Assistant. Я использую API.ai для разработки ботов и использую выполнение, я общаюсь со своим сервером для получения данных.
Я не могу отправлять свои предложения, используя чипы предложений, своему боту.

Я выполнил, как ответил здесь ответ веб-перехватчика с подсказками, а также документ по адресу https://developers.google.com/actions/assistant/responses#json. Но все же я вижу только простой текстовый ответ у своего бота на устройстве и в симуляторе.

Я также проверял на https://discuss.api.ai/t/google-assistant-rich-message-answers/5134/19. Но не нашел способа перейти на V1 или V2. Образец формата также не работал!

Вот мои 2 JSON:
на API.ai

"fulfillment": {
  "speech": "want to proceed further?",
  "messages": [
    {
      "type": 0,
      "speech": "want to proceed further?"
    }
  ],
  "data": {
    "google": {
      "conversationToken": "[\"AS-PER-JSON-FROM-SIMULATOR\"]",
      "expectedInputs": [
        {
          "inputPrompt": {
            "richInitialPrompt": {
              "items": [
                {
                  "simpleResponse": {
                    "textToSpeech": "want to proceed further?",
                    "displayText": "want to proceed further?"
                  }
                }
              ],
              "suggestions": [
                {
                  "title": "Yes"
                },
                {
                  "title": "No"
                }
              ]
            }
          }
        }
      ]
    }
  }
},


при действии в Google

"expectUserResponse": true,
    "expectedInputs": [
        {
            "inputPrompt": {
                "richInitialPrompt": {
                    "items": [
                        {
                            "simpleResponse": {
                                "textToSpeech": "want to proceed?"
                            }
                        }
                    ]
                },
                "noMatchPrompts": [],
                "noInputPrompts": []
            },
            "possibleIntents": [
                {
                    "intent": "assistant.intent.action.TEXT"
                }
            ],
            "speechBiasingHints": [
                "$subject",
                "$answer"
            ]
        }
    ]


сервер Python

return = '{"speech":"want to proceed?", "data": {"google":{"expectedInputs":[{"inputPrompt":{"richInitialPrompt":{"items":[{"simpleResponse":{"textToSpeech":"want to proceed?","displayText":"want to proceed?"}}],"suggestions":[{"title":"Yes"},{"title":"No"}]}}}]}}}'

person Abhinav Tyagi    schedule 07.06.2017    source источник


Ответы (3)


Ваш JSON неверен, удалите кавычки перед объектом данных:

"data" : { ... }

вместо того

"data" : "{ ... }"

По сути, вы отправляете строку, содержащую объект, вместо объекта JSON.

person Nico Strebel    schedule 07.06.2017
comment
Думаю, я пробовал этот вариант. Позвольте мне проверить и подтвердить. - person Abhinav Tyagi; 07.06.2017
comment
Я обновил свой код и отправляю данные: {....} все еще не работает :( См. Обновление моего вопроса выше. - person Abhinav Tyagi; 07.06.2017

Решено с использованием формата, как описано здесь https://developers.google.com/actions/apiai/webhook < / а>

person Abhinav Tyagi    schedule 07.06.2017

Добавить 'expectUserResponse' в data -> google

'expectUserResponse': true,
'isSsml': false,
person jafarbtech    schedule 09.06.2017