Как правильно разобрать полный ответ из диалогового потока в java? - PullRequest
0 голосов
/ 06 августа 2020

Как вы знаете в Dialogflow, когда мы используем выполнение, в одном ответе может быть больше одного типа ответа, например, базовая c карточка, предложение, простой ответ, предложение по ссылке и т. Д. c. Как правильно проанализировать этот ответ, чтобы у нас был четкий объект / JSONObject, который различает каждый тип ответов, которые будут использоваться позже. Я подумал, есть ли способ разобрать его так, чтобы он выглядел примерно так

{
  simpleRespond:[{text:"Hello},{text:hi}],
  basicCard:[{title:"MyCard",subTitle:"When I was in school",image:{text:"hi",URL:"photo.jpg"}}],
  suggestion:[{text:"banana"},{text:"Apple"}]
  and other response
}

Спасибо

1 Ответ

0 голосов
/ 11 августа 2020

Чтобы знать, как правильно заполнить ответ веб-перехватчика с несколькими сообщениями и с разными типами, я думаю, вы можете сосредоточиться на поле fulfillment_messages[] .

Обратите внимание, что я использую WebhookResponse V2 RP C ссылку .

Вы можете видеть, что поле fulfillment_messages[] может содержать список Message объектов , структура которых выглядит следующим образом:

{
  "text": {
    "text": [
      "Text response from webhook"
    ]
  }
}

Где объект text является сообщением с расширенным ответом и может быть только одним из указанных в ссылка .

Исходя из этого, вы можете подготовить поле fulfillment_messages[] из объекта WebhookResponse следующим образом:

{
  "fulfillment_messages": [
    {
      "text": {
        "text": [
          "Message object sample 1"
        ]
      }
    },
    {
      "card": {
        "title": "card title",
        "subtitle": "Message object sample 2"
      }
    },
    {
      "text": {
        "text": [
          "Message object sample 3"
        ]
      }
    }
  ]
}

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

...