Dialogflow基本卡与卡

时间:2018-06-23 19:40:06

标签: dialogflow

天真问题的道歉。

在DialogFlow v2 API中,有2个相似的RichResponse选项。基本卡和卡。从对象定义来看,它几乎相似。

有人知道何时使用一个与另一个吗? 什么时候应该使用基本卡,什么时候应该使用卡?

1 个答案:

答案 0 :(得分:0)

大多数Protobuf消息中定义了大多数Google Cloud服务的接口,这些消息在Github上的googleapis回购中发布。因此,您可以直接在Dialogflow的内部进行窥视,在其中可以找到CardBasicCard的两个定义:

// 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,某些没有屏幕的设备(例如屏幕阅读器)会使用Card

protobufs中没有明显的重要区别,但是Dialogflow文档中的区别是BasicCard是通用的Rich Message,可以在Google的Actions和其他集成中使用,例如Facebook Messenger ,Twitter,Slack等。Card是特定于Google的操作类型,不适用于任何其他平台。

除非您确实需要格式化的文本,否则最好建议使用更通用的df_sorted = df.sort_values(by=['timestamp']) ,因为当您决定将代理与其他平台集成时,它不会中断。请记住,尽管每个平台对于Rich Messages都有其自身的局限性,所以与平台无关的卡的真正取决于您所填充的数据。