Основная карта Dialogflow против карты - PullRequest
0 голосов
/ 23 июня 2018

Извинения за наивный вопрос.

В API DialogFlow v2 есть 2 аналогичных параметра RichResponse.Основная карта и карта.Из определений объектов это выглядит почти одинаково.

Кто-нибудь знает, когда использовать один против другого?Когда я должен использовать базовую карту и когда я должен использовать карту?

1 Ответ

0 голосов
/ 24 июня 2018

Интерфейсы большинства сервисов Google Cloud определены в Protobuf сообщениях, которые публикуются в репозитории googleapis на Github. Таким образом, вы можете заглянуть прямо под капот Dialogflow, где вы найдете эти два определения для Card и BasicCard:

// The card response message.
message Card {
  // Optional. Contains information about a button.
  message Button {
    // Optional. The text to show on the button.
    string text = 1;

    // Optional. The text to send back to the Dialogflow API or a URI to
    // open.
    string postback = 2;
  }

  // Optional. The title of the card.
  string title = 1;

  // Optional. The subtitle of the card.
  string subtitle = 2;

  // Optional. The public URI to an image file for the card.
  string image_uri = 3;

  // Optional. The collection of card buttons.
  repeated Button buttons = 4;
}

// The basic card message. Useful for displaying information.
message BasicCard {
  // The button object that appears at the bottom of a card.
  message Button {
    // Opens the given URI.
    message OpenUriAction {
      // Required. The HTTP or HTTPS scheme URI.
      string uri = 1;
    }

    // Required. The title of the button.
    string title = 1;

    // Required. Action to take when a user taps on the button.
    OpenUriAction open_uri_action = 2;
  }

  // Optional. The title of the card.
  string title = 1;

  // Optional. The subtitle of the card.
  string subtitle = 2;

  // Required, unless image is present. The body text of the card.
  string formatted_text = 3;

  // Optional. The image for the card.
  Image image = 4;

  // Optional. The collection of card buttons.
  repeated Button buttons = 5;
}

Похоже, единственные различия:

  • Кнопки на Карте могут отправлять текст обратно вашему агенту, тогда как на BasicCard они всегда открывают внешний URL-адрес.
  • BasicCard может иметь форматированный текст вместо изображения, хотя я не могу найти никакой информации о том, на какой формат они ссылаются (HTML? Markdown?).
  • Изображение BasicCard может иметь accessibility_text, которое используется некоторыми устройствами без экрана (например, программы чтения с экрана).

Важное отличие, которое не видно из protobufs, но из документации Dialogflow заключается в том, что Card - это общее Rich Message , которое можно использовать как в действиях в Google, так и в других интеграциях, таких как Facebook Messenger, Twitter, Slack и т. Д. BasicCard - это тип действий для Google, который не работает ни на какой другой платформе.

Если вам действительно не нужен форматированный текст, вам, вероятно, лучше будет использовать более общий Card, поскольку он не ломается, когда вы решаете интегрировать своего агента с другой платформой. Имейте в виду, что каждая платформа имеет свои ограничения для Rich Messages, поэтому то, насколько платформенно независима ваша карта, зависит от данных, которыми вы ее заполняете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...