Files

文件列表的封装容器。

JSON 表示法
{

  // Union field file_type can be only one of the following:
  "configFiles": {
    object (ConfigFiles)
  },
  "dataFiles": {
    object (DataFiles)
  }
  // End of list of possible types for union field file_type.
}
字段
联合字段 file_type。一次只能向服务器发送一种类型的文件,即配置文件或数据文件。file_type 只能是下列其中一项:
configFiles

object (ConfigFiles)

配置文件列表。包括清单、设置、互动模型资源包等。

dataFiles

object (DataFiles)

数据文件列表。包括图片、音频文件、Cloud Functions 函数源代码。

ConfigFiles

重复配置文件的封装容器。其中一个重复字段不能存在。

JSON 表示法
{
  "configFiles": [
    {
      object (ConfigFile)
    }
  ]
}
字段
configFiles[]

object (ConfigFile)

多个配置文件。

ConfigFile

表示包含结构化数据的单个文件。开发者可以使用结构化配置定义其大部分项目,包括 Actions、Settings、Fulfillment。

JSON 表示法
{
  "filePath": string,

  // Union field file can be only one of the following:
  "manifest": {
    object (Manifest)
  },
  "actions": {
    object (Actions)
  },
  "settings": {
    object (Settings)
  },
  "webhook": {
    object (Webhook)
  },
  "intent": {
    object (Intent)
  },
  "type": {
    object (Type)
  },
  "entitySet": {
    object (EntitySet)
  },
  "globalIntentEvent": {
    object (GlobalIntentEvent)
  },
  "scene": {
    object (Scene)
  },
  "staticPrompt": {
    object (StaticPrompt)
  },
  "accountLinkingSecret": {
    object (AccountLinkingSecret)
  },
  "resourceBundle": {
    object
  }
  // End of list of possible types for union field file.
}
字段
filePath

string

SDK 文件结构中来自项目根目录的配置文件的相对路径。以下每种文件类型都有一个允许的文件路径。例如:settings/settings.yaml

联合字段 file。每种类型的配置文件都应在 oneof 属性中具有相应的字段。file 只能是下列其中一项:
manifest

object (Manifest)

单个清单文件。允许的文件路径:manifest.yaml

actions

object (Actions)

包含已定义所有操作的单个操作文件。允许的文件路径:actions/{language}?/actions.yaml

settings

object (Settings)

单一设置配置,其中包含不可本地化的设置以及项目默认语言区域的设置(如果已指定)。对于语言区域替换文件,将仅填充 localizedSettings 字段。允许的文件路径:settings/{language}?/settings.yaml 请注意,非本地化设置文件 settings/settings.yaml 必须包含在写入流程请求中。

webhook

object (Webhook)

单个网络钩子定义。允许的文件路径:webhooks/{WebhookName}.yaml

intent

object (Intent)

单一 intent 定义。允许的文件路径:custom/intents/{language}?/{IntentName}.yaml

type

object (Type)

单一类型定义。允许的文件路径:custom/types/{language}?/{TypeName}.yaml

entitySet

object (EntitySet)

单个实体集定义。允许的文件路径:custom/entitySets/{language}?/{EntitySetName}.yaml

globalIntentEvent

object (GlobalIntentEvent)

单个全局 intent 事件定义。允许的文件路径:custom/global/{GlobalIntentEventName}.yaml 文件名 (GlobalIntentEventName) 应该是此全局 intent 事件对应的 intent 的名称。

scene

object (Scene)

单场景定义。允许的文件路径:custom/scenes/{SceneName}.yaml

staticPrompt

object (StaticPrompt)

单个静态提示定义。允许的文件路径:custom/prompts/{language}?/{StaticPromptName}.yaml

accountLinkingSecret

object (AccountLinkingSecret)

与帐号关联中使用的客户端密钥对应的元数据。允许的文件路径:settings/accountLinkingSecret.yaml

resourceBundle

object (Struct format)

单个资源包,是从字符串到字符串或字符串列表的映射。资源包可用于将静态提示中的字符串本地化。允许的文件路径:resources/strings/{language}?/{multiple directories}?/{BundleName}.yaml

清单

包含“可传输”的信息,即不特定于任何给定项目的信息,并且可以在项目之间移动。

JSON 表示法
{
  "version": string
}
字段
version

string

文件格式的版本。当前的文件格式版本是 1.0,示例:“1.0”

Action

表示项目中定义的 Action 列表。

JSON 表示法
{
  "custom": {
    string: {
      object (CustomAction)
    },
    ...
  }
}
字段
custom

map (key: string, value: object (CustomAction))

从 intent 映射到自定义 Action,以便为项目配置调用。调用 intent 可以是“custom/intents/”软件包中定义的系统 intent,或自定义 intent。此处定义的所有 intent(系统 intent 和自定义 intent)都必须在“custom/global/”软件包中有对应的 intent 文件。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

CustomAction

有关自定义操作的详细信息。

JSON 表示法
{
  "engagement": {
    object (Engagement)
  }
}
字段
engagement

object (Engagement)

与操作相关的互动机制,用于帮助最终用户订阅推送通知和每日更新。请注意,每日更新/推送通知槽配置中指定的 intent 名称需要与此操作对应的 intent 匹配,这样最终用户才能订阅这些更新。

互动

定义与此操作相关联的互动机制。这样,最终用户就可以订阅推送通知和每日更新。

JSON 表示法
{
  "title": string,
  "pushNotification": {
    object (PushNotification)
  },
  "actionLink": {
    object (ActionLink)
  },
  "assistantLink": {
    object (AssistantLink)
  },
  "dailyUpdate": {
    object (DailyUpdate)
  }
}
字段
title

string

将发送给最终用户,请他们同意接收更新的内容的互动标题。向最终用户发送的用于每日更新的提示将类似于“您希望我发送每日{title}”在什么时间发送,对于推送通知,将类似于“我可以发送{title}的推送通知吗?”。此字段可本地化

pushNotification

object (PushNotification)

此互动支持的推送通知设置。

dailyUpdate

object (DailyUpdate)

此互动支持的每日更新设置。

PushNotification

定义此互动支持的推送通知设置。

DailyUpdate

定义此互动支持的每日更新设置。

设置

表示非特定于语言区域的 Actions 项目的设置。下一个代码:22

JSON 表示法
{
  "projectId": string,
  "defaultLocale": string,
  "enabledRegions": [
    string
  ],
  "disabledRegions": [
    string
  ],
  "category": enum (Category),
  "usesTransactionsApi": boolean,
  "usesDigitalPurchaseApi": boolean,
  "usesInteractiveCanvas": boolean,
  "usesHomeStorage": boolean,
  "designedForFamily": boolean,
  "containsAlcoholOrTobaccoContent": boolean,
  "keepsMicOpen": boolean,
  "surfaceRequirements": {
    object (SurfaceRequirements)
  },
  "testingInstructions": string,
  "localizedSettings": {
    object (LocalizedSettings)
  },
  "accountLinking": {
    object (AccountLinking)
  },
  "selectedAndroidApps": [
    string
  ]
}
字段
projectId

string

Actions 项目 ID。

defaultLocale

string

项目的默认语言区域。对于除 resources/ 下且路径中不含语言区域的文件之外的所有文件,本地化数据将归因于此 defaultLocale。对于 resources/ 下的文件,无语言区域意味着资源适用于所有语言区域。

enabledRegions[]

string

表示用户可以在哪些区域调用您的 Action,具体视用户的所在地而定。如果 disabledRegions 已设置,则无法设置。如果未指定 enabledRegionsdisabledRegions,用户可以在所有区域中调用您的 Action。每个区域均使用 AdWords 地理位置定位的“规范名称”来表示。请参阅 https://developers.google.com/adwords/api/docs/appendix/geotargeting,例如:-“德国”-“加纳”-“希腊”-“格林纳达”-“英国”-“美国”-“美国本土外小岛屿”-“乌拉圭”

disabledRegions[]

string

表示根据用户的所在位置,在哪些地区禁止您的 Action。如果 enabledRegions 已设置,则无法设置。每个区域均使用 AdWords 地理位置定位的“规范名称”来表示。请参阅 https://developers.google.com/adwords/api/docs/appendix/geotargeting,例如:-“德国”-“加纳”-“希腊”-“格林纳达”-“英国”-“美国”-“美国本土外小岛屿”-“乌拉圭”

category

enum (Category)

此 Actions 项目的类别。

usesTransactionsApi

boolean

Action 是否可以使用事务(例如,预订、接受订单等)。如果为 false,则尝试使用 Transaction API 会失败。

usesDigitalPurchaseApi

boolean

Action 是否可以执行数字商品交易。

usesInteractiveCanvas

boolean

Action 是否使用 Interactive Canvas。

usesHomeStorage

boolean

Action 是否使用家庭存储空间功能。

designedForFamily

boolean

Action 内容是否面向儿童 (DFF)。

containsAlcoholOrTobaccoContent

boolean

Action 是否包含与酒精饮料或烟草相关的内容。

keepsMicOpen

boolean

指定 Action 是否会在对话期间没有明确提示的情况下将麦克风保持打开状态。

surfaceRequirements

object (SurfaceRequirements)

客户端 Surface 必须支持的 Surface 要求,才能在此项目中调用 Action。

testingInstructions

string

面向 Action 审核者的自由格式测试说明(例如,账号关联说明)。

localizedSettings

object (LocalizedSettings)

项目默认语言区域的本地化设置。每个额外的语言区域都应在其目录中包含自己的设置文件。

accountLinking

object (AccountLinking)

允许用户通过 Google 登录和/或您自己的 OAuth 服务创建或关联帐号。

selectedAndroidApps[]

string

已选择可访问 Google Play 购买交易的 Android 应用。这是从已关联到 Action 项目的 Android 应用中进行选择,用于验证品牌所有权并启用其他功能。如需了解详情,请参阅 https://developers.google.com/assistant/console/brand-verification

Category

Actions 项目的类别选项。

枚举
CATEGORY_UNSPECIFIED 未知 / 未指定。
BUSINESS_AND_FINANCE 业务和金融类别。
EDUCATION_AND_REFERENCE “教育与工具书”类别。
FOOD_AND_DRINK 餐饮类别。
GAMES_AND_TRIVIA 游戏和知识问答类别。
HEALTH_AND_FITNESS “健康与健身”类别。
KIDS_AND_FAMILY “儿童和家庭”类别。
LIFESTYLE 生活方式类别。
LOCAL 本地类别。
MOVIES_AND_TV 电影和电视类别。
MUSIC_AND_AUDIO 音乐与音频类别。
NEWS 新闻类别
NOVELTY_AND_HUMOR “新奇与幽默”类别。
PRODUCTIVITY 工作效率类别。
SHOPPING 购物类别。
SOCIAL “社交”类别。
SPORTS 体育类别。
TRAVEL_AND_TRANSPORTATION 旅游和交通类别。
UTILITIES “实用工具”类别。
WEATHER 天气类别。
HOME_CONTROL “家居控制”类别。

SurfaceRequirements

包含客户端 Surface 必须支持的一组要求,以便在您的项目中调用 Action。

JSON 表示法
{
  "minimumRequirements": [
    {
      object (CapabilityRequirement)
    }
  ]
}
字段
minimumRequirements[]

object (CapabilityRequirement)

在项目中调用 Action 所需的最少功能集。如果 surface 缺少上述任何一项,系统将不会触发 Action。

CapabilityRequirement

表示与给定功能的可用性相关的要求。

JSON 表示法
{
  "capability": enum (SurfaceCapability)
}
字段
capability

enum (SurfaceCapability)

功能的类型。

SurfaceCapability

可能的一组 Surface 功能。

枚举
SURFACE_CAPABILITY_UNSPECIFIED 未知 / 未指定。
AUDIO_OUTPUT Surface 支持音频输出。
SCREEN_OUTPUT Surface 支持屏幕/视觉输出。
MEDIA_RESPONSE_AUDIO Surface 支持媒体响应音频。
WEB_BROWSER Surface 支持网络浏览器。
ACCOUNT_LINKING Surface 支持帐号关联。
INTERACTIVE_CANVAS Surface 支持 Interactive Canvas。
HOME_STORAGE Surface 支持家庭存储空间。

LocalizedSettings

表示特定于用户语言区域的 Actions 项目的设置。在这种情况下,用户是指调用您的 Action 的最终用户。此消息可本地化。

JSON 表示法
{
  "displayName": string,
  "pronunciation": string,
  "shortDescription": string,
  "fullDescription": string,
  "smallLogoImage": string,
  "largeBannerImage": string,
  "developerName": string,
  "developerEmail": string,
  "termsOfServiceUrl": string,
  "voice": string,
  "voiceLocale": string,
  "privacyPolicyUrl": string,
  "sampleInvocations": [
    string
  ],
  "themeCustomization": {
    object (ThemeCustomization)
  }
}
字段
displayName

string

必需。此 Actions 项目的默认显示名称(如果没有可用的翻译)

pronunciation

string

必需。显示名称的发音,以便在语音(口头)上下文中调用它。

shortDescription

string

必需。Actions 项目的默认简短说明(如果没有可用的翻译)。上限为 80 个字符。

fullDescription

string

必需。Actions 项目的默认详细说明(如果没有可用的翻译)。不能超过 4000 个字符。

smallLogoImage

string

必需。方形小图片,192 x 192 像素。应指定此图片作为对 resources/images/ 目录中相应图片的引用。例如,resources/images/foo.jpg 中的映像的值为 $resources.images.foo(不带扩展名)。在处理从控制台提取的项目时,可以使用提取的 Google 管理的网址。不允许使用外部来源的网址。

largeBannerImage

string

可选。大型横向图片,1920 x 1080 像素。应指定此图片作为对 resources/images/ 目录中相应图片的引用。例如,resources/images/foo.jpg 中的映像的值为 $resources.images.foo(不带扩展名)。在处理从控制台提取的项目时,可以使用提取的 Google 管理的网址。不允许使用外部来源的网址。

developerName

string

必需。要向用户显示的开发者的名称。

developerEmail

string

必需。开发者的联系电子邮件地址。

termsOfServiceUrl

string

可选。服务条款网址。

voice

string

必需。用户在与您的 Action 互动时听到的 Google 助理语音类型。支持的值包括“male_1”“male_2”“female_1”和“female_2”。

voiceLocale

string

可选。指定语音的语言区域。如果未指定,则解析为用户的 Google 助理语言区域。如果指定,则语音语言区域必须与 LocalizedSettings 中指定的语言区域具有相同的根语言。

privacyPolicyUrl

string

必需。隐私权政策网址。

sampleInvocations[]

string

可选。在 Google 助理目录中,作为 Actions 项目说明的一部分显示的调用短语示例。这将有助于用户了解如何使用它。

themeCustomization

object (ThemeCustomization)

可选。针对 Action 视觉组件的主题自定义。

ThemeCustomization

应用于向用户显示的卡片的样式

JSON 表示法
{
  "backgroundColor": string,
  "primaryColor": string,
  "fontFamily": string,
  "imageCornerStyle": enum (ImageCornerStyle),
  "landscapeBackgroundImage": string,
  "portraitBackgroundImage": string
}
字段
backgroundColor

string

卡片的背景颜色。当开发者未提供 background_imagebackground_image 不适用于某些 surface 时,可用作后备方案。用法示例:#FAFAFA

primaryColor

string

Action 的主要主题颜色将用于为 Actions on Google 卡片设置标题文字颜色和操作项背景颜色。用法示例:#FAFAFA

fontFamily

string

将用作卡片标题的字体系列。支持的字体:- Sans Serif - Sans Serif Medium - Sans Serif Bold - Sans Serif Black - Sans Serif Condensed - Sans Serif Condensed Medium - Serif - Serif Bold - Monospace - Sancaps Cursive -

imageCornerStyle

enum (ImageCornerStyle)

卡片前景图片的边框样式。例如,可应用于基本卡片或轮播卡片的前景图片。

landscapeBackgroundImage

string

横屏模式(最小 1920x1200 像素)。应指定此图片作为对 resources/images/ 目录中相应图片的引用。例如:resources/images/foo.jpg 中的映像的 $resources.images.foo(不带扩展程序)。在处理从控制台提取的项目时,可以使用提取的 Google 管理的网址。

portraitBackgroundImage

string

纵向模式(最小 1200x1920 像素)。应指定此图片作为对 resources/images/ 目录中相应图片的引用。例如:resources/images/foo.jpg 中的映像的 $resources.images.foo(不带扩展程序)。在处理从控制台提取的项目时,可以使用提取的 Google 管理的网址。

ImageCornerStyle

描述应如何渲染图片边框。

枚举
IMAGE_CORNER_STYLE_UNSPECIFIED 未定义 / 未指定。
CURVED 图片的圆角。
ANGLED 用于图片的矩形角。

AccountLinking

借助 AccountLinking,Google 可以引导用户登录应用的网络服务。

对于“Google 登录”和“OAuth + Google 登录”关联类型,Google 会生成一个客户端 ID,用于向 Google 标识您的应用(在管理中心界面中显示“Google 向您的 Action 发放的客户端 ID”)。此字段是只读字段,您可以前往 Play 管理中心界面的“帐号关联”页面查看。请参阅:https://developers.google.com/assistant/identity/google-sign-in

注意:对于所有账号关联设置类型(Google 登录除外),您必须在 Settings.testing_instructions 中提供测试账号的用户名和密码,以便审核团队审核应用(用户看不到这些信息)。

JSON 表示法
{
  "enableAccountCreation": boolean,
  "linkingType": enum (LinkingType),
  "authGrantType": enum (AuthGrantType),
  "appClientId": string,
  "authorizationUrl": string,
  "tokenUrl": string,
  "scopes": [
    string
  ],
  "learnMoreUrl": string,
  "useBasicAuthHeader": boolean
}
字段
enableAccountCreation

boolean

必需。如果设为 true,用户将可以通过语音注册新帐号。如果为 false,则仅允许在您的网站上创建帐号。如果您希望在注册期间显示服务条款或获得用户同意,请选择此选项。如果“linkingType”为“false”,则不能为“GOOGLE_SIGN_IN”。当此属性为 true 时,linkingType 不能为 OAUTH。

linkingType

enum (LinkingType)

必需。要使用的关联类型。如需详细了解关联类型,请参阅 https://developers.google.com/assistant/identity

authGrantType

enum (AuthGrantType)

可选。指示 OAUTH linksType 的身份验证类型。

appClientId

string

可选。您的应用提供给 Google 的客户端 ID。这是向 Google 标识您的服务的 OAuth2 客户端 ID。仅在使用 OAuth 时设置。

authorizationUrl

string

可选。支持 OAuth2 代码或隐式流程的登录网页的端点。网址必须使用 HTTPS。仅在使用 OAuth 时设置。

tokenUrl

string

可选。用于换取令牌的 OAuth2 端点。网址必须使用 HTTPS。如果仅使用 OAuth 和 IMPLICIT 授权作为关联类型,则不会设置此属性。仅在使用 OAuth 时设置。

scopes[]

string

可选。用户必须同意哪些权限才能使用您的服务。仅在使用 OAuth 时设置。如果指定此字段,请务必在 LocalizedSettings.terms_of_service_url 部分的目录信息中提供服务条款。

learnMoreUrl

string

可选。这是服务网页,其中说明了用户向 Google 授予的权限。仅在使用 OAuth 和 Google 登录时才设置。如果指定此字段,请务必在 LocalizedSettings.terms_of_service_url 部分的目录信息中提供服务条款。

useBasicAuthHeader

boolean

可选。如果为 true,则允许 Google 通过 HTTP 基本身份验证标头传输客户端 ID 和密钥。否则,Google 会在 post 正文中使用客户端 ID 和密钥。仅在使用 OAuth 时设置。如果指定此字段,请务必在 LocalizedSettings.terms_of_service_url 部分的目录信息中提供服务条款。

LinkingType

要执行的帐号关联类型。

枚举
LINKING_TYPE_UNSPECIFIED 未指定。
GOOGLE_SIGN_IN “Google 登录”链接类型。如果使用这种关联类型,则无需在下方设置与 OAuth 相关的字段。
OAUTH_AND_GOOGLE_SIGN_IN OAuth 和 Google 登录关联类型。
OAUTH OAuth 关联类型。

AuthGrantType

Google 用于引导用户登录您应用的网络服务的 OAuth2 授权类型。

枚举
AUTH_GRANT_TYPE_UNSPECIFIED 未指定。
AUTH_CODE 授权代码授权。需要您同时提供身份验证网址和访问令牌网址。
IMPLICIT 隐式代码授权。您只需提供身份验证网址即可。

Webhook

不同类型网络钩子的元数据。如果您使用的是 inlineCloudFunction,则源代码必须位于与 executeFunction 键的值相同的目录中。例如,如果 executeFunction 键的值为 my_webhook,代码结构将如下所示:- /webhooks/my_webhook.yaml - /webhooks/my_webhook/index.js - /webhooks/my_webhook/package.json

JSON 表示法
{
  "handlers": [
    {
      object (Handler)
    }
  ],

  // Union field webhook_type can be only one of the following:
  "httpsEndpoint": {
    object (HttpsEndpoint)
  },
  "inlineCloudFunction": {
    object (InlineCloudFunction)
  }
  // End of list of possible types for union field webhook_type.
}
字段
handlers[]

object (Handler)

此 webhook 的处理程序列表。

联合字段 webhook_type。系统仅支持一种 webhook 类型。webhook_type 只能是下列其中一项:
httpsEndpoint

object (HttpsEndpoint)

自定义 webhook HTTPS 端点。

inlineCloudFunction

object (InlineCloudFunction)

通过 webhook 文件夹中的代码部署的 Cloud Functions 函数的元数据。

Handler

声明 webhoook 处理程序的名称。一个 webhook 可以注册多个处理程序。您可以从 Actions 项目中的多个位置调用这些处理程序。

JSON 表示法
{
  "name": string
}
字段
name

string

必需。处理程序的名称。在 Actions 项目的所有处理程序中必须是唯一的。您可以查看此处理程序的名称,以调用执行方式源代码中的正确函数。

HttpsEndpoint

REST 端点,用于在您未使用内嵌编辑器时发送通知。

JSON 表示法
{
  "baseUrl": string,
  "httpHeaders": {
    string: string,
    ...
  },
  "endpointApiVersion": integer
}
字段
baseUrl

string

执行方式端点的 HTTPS 基准网址(不支持 HTTP)。处理程序名称会附加到基准网址路径中的冒号后(遵循 https://cloud.google.com/apis/design/custom_methods) 中的样式指南)。例如,基准网址“https://gactions.service.com/api”将收到包含网址“https://gactions.service.com/api:{method}”的请求。

httpHeaders

map (key: string, value: string)

要包含在 POST 请求中的 HTTP 参数的映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

endpointApiVersion

integer

端点使用的协议的版本。这是所有执行方式类型共享的协议,并非特定于 Google 执行方式类型。

InlineCloudFunction

保存从 webhooks 文件夹部署的内嵌 Cloud Functions 函数的元数据。

JSON 表示法
{
  "executeFunction": string
}
字段
executeFunction

string

Cloud Functions 函数入口点的名称。此字段的值应与从源代码中导出的方法的名称一致。

意向

intent 将开放式用户输入映射到结构化对象。系统会利用 Google 的自然语言理解 (NLU) 技术将语音短语与意图进行匹配。意图匹配可以在对话设计中触发事件,以推进用户的对话。intent 名称在文件名称中指定。

JSON 表示法
{
  "parameters": [
    {
      object (IntentParameter)
    }
  ],
  "trainingPhrases": [
    string
  ]
}
字段
parameters[]

object (IntentParameter)

训练短语中的参数列表。所有参数都必须在此处进行定义,以便在训练短语中使用。

trainingPhrases[]

string

借助训练短语,Google 的 NLU 可以将意图与用户输入内容自动匹配。提供的唯一短语越多,匹配此意图的可能性就越大。以下是带注解的训练短语部分的格式。请注意,auto 字段是可选字段,未指定 auto 时的默认行为等同于 auto=false($<paramName> '<sample text>' auto=<true or false>) auto = true 表示相应部分已由 NLU 自动注释。auto = false 表示该部分已被用户添加注释。在未指定 auto 时,此项为默认值。例如:“预订从 ($source 'San Francisco' auto=false)飞往 ($dest 'Vancouver')”的航班

IntentParameter

可在训练短语中使用的参数的定义。

JSON 表示法
{
  "name": string,

  // Union field parameter_type can be only one of the following:
  "type": {
    object (ClassReference)
  },
  "entitySetReferences": {
    object (EntitySetReferences)
  }
  // End of list of possible types for union field parameter_type.
}
字段
name

string

必需。intent 参数的唯一名称。可在条件和响应中使用,以引用由 NLU 使用 $intent.params.[name].resolved 提取的 intent 参数

联合字段 parameter_type。intent 参数的类型。parameter_type 只能是下列其中一项:
type

object (ClassReference)

可选。声明此参数的数据类型。不应为内置 intent 设置此字段。

entitySetReferences

object (EntitySetReferences)

可选。对此 intent 参数允许的实体集的引用。仅对内置 intent 的参数有效。这些引用指向“custom/entitySets”目录中的 entity 集。

ClassReference

对用于声明字段或返回值类型的类的引用。枚举也是一种可以使用 ClassReference 引用的类。

JSON 表示法
{
  "name": string,
  "list": boolean
}
字段
name

string

必需。参数的内置类型或自定义类型的名称。示例:PizzaToppingsactions.type.Number

list

boolean

可选。指示数据类型是否表示值列表。

EntitySetReferences

intent 参数的实体集引用。

JSON 表示法
{
  "entitySetReferences": [
    {
      object (EntitySetReference)
    }
  ]
}
字段
entitySetReferences[]

object (EntitySetReference)

必需。intent 参数的实体集引用。

EntitySetReference

对此 intent 参数允许的实体集的引用。

JSON 表示法
{
  "entitySet": string
}
字段
entitySet

string

必需。用于标识给定参数要考虑的特定实体集合。相应的实体集定义应包含在 custom/entitySets/ 目录中。

类型

声明自定义类型,而不是内置类型。类型可以分配给场景中的槽或 intent 的训练短语的参数。实际上,类型可以视为枚举。请注意,类型名称是在文件名称中指定的。

JSON 表示法
{
  "exclusions": [
    string
  ],

  // Union field sub_type can be only one of the following:
  "synonym": {
    object (SynonymType)
  },
  "regularExpression": {
    object (RegularExpressionType)
  },
  "freeText": {
    object (FreeTextType)
  }
  // End of list of possible types for union field sub_type.
}
字段
exclusions[]

string

一组不应按类型匹配的例外字词/短语。注意:如果字词/短语与类型匹配,但列为排除项,则参数提取结果中不会返回该字词/短语。此字段可本地化

联合字段 sub_type。根据要执行的匹配类型选择子类型。sub_type 只能是下列其中一项:
synonym

object (SynonymType)

同义词类型,实质上是一种枚举。

regularExpression

object (RegularExpressionType)

Regex 类型,允许正则表达式匹配。

freeText

object (FreeTextType)

FreeText 类型。

SynonymType

按同义词集与文本匹配的类型。

JSON 表示法
{
  "matchType": enum (MatchType),
  "acceptUnknownValues": boolean,
  "entities": {
    string: {
      object (Entity)
    },
    ...
  }
}
字段
matchType

enum (MatchType)

可选。同义词的匹配类型。

acceptUnknownValues

boolean

可选。如果设置为 true,系统会根据上下文输入和意图训练数据(例如可能添加到购物清单的商品)匹配未知字词或短语。

entities

map (key: string, value: object (Entity))

必需。同义词实体的命名映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

MatchType

此类型的条目将使用的匹配类型。这可确保所有类型都使用相同的匹配方法,并允许采用不同的方式来实现同义词匹配(即模糊匹配与完全匹配)。如果值为 UNSPECIFIED,则默认为 EXACT_MATCH

枚举
UNSPECIFIED 默认为 EXACT_MATCH
EXACT_MATCH 查找与同义词或名称完全匹配的结果。
FUZZY_MATCH 低于 EXACT_MATCH。查找类似匹配项和完全匹配项。

实体

表示同义词实体字段,其中包含类型内单个条目的详细信息。

JSON 表示法
{
  "display": {
    object (EntityDisplay)
  },
  "synonyms": [
    string
  ]
}
字段
display

object (EntityDisplay)

可选。实体显示详细信息。

synonyms[]

string

可选。实体的同义词列表。此字段可本地化

EntityDisplay

从查询中提取特定类型的实体后,将在画布上显示的元素。仅适用于支持画布的应用。此消息可本地化。

JSON 表示法
{
  "iconTitle": string,
  "iconUrl": string
}
字段
iconTitle

string

可选。图标的标题。

iconUrl

string

必需。图标的网址。

RegularExpressionType

按正则表达式与文本匹配的类型。此消息可本地化。

JSON 表示法
{
  "entities": {
    string: {
      object (Entity)
    },
    ...
  }
}
字段
entities

map (key: string, value: object (Entity))

必需。实体的命名映射,每个实体都包含正则表达式字符串。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

实体

表示包含用于比较的正则表达式的实体对象。

JSON 表示法
{
  "display": {
    object (EntityDisplay)
  },
  "regularExpressions": [
    string
  ]
}
字段
display

object (EntityDisplay)

可选。从查询中提取实体后,将在画布上显示的元素。仅适用于支持画布的应用。

regularExpressions[]

string

必需。使用 RE2 正则表达式语法(如需了解详情,请参阅 https://github.com/google/re2/wiki/Syntax

FreeTextType

如果周围字词的上下文与提供的训练示例接近,则输入与任何文本匹配的类型。

JSON 表示法
{
  "display": {
    object (EntityDisplay)
  }
}
字段
display

object (EntityDisplay)

可选。从查询中提取实体后,将在画布上显示的元素。仅适用于支持画布的应用。

EntitySet

实体集描述了可作为内置 intent 参数的值的预定义实体集。可以从内置 intent 参数中的 entitySet 引用实体集。

JSON 表示法
{
  "entities": [
    {
      object (Entity)
    }
  ]
}
字段
entities[]

object (Entity)

必需。此实体集支持的实体列表。

实体

内置 intent 参数值可来自的实体。

JSON 表示法
{
  "id": string
}
字段
id

string

必需。实体的 ID。如需查看内置 intent 参数及其受支持实体的列表,请参阅 https://developers.google.com/assistant/conversational/build/built-in-intents

GlobalIntentEvent

定义一个全局 intent 处理程序。全局 intent 事件的作用域限定为整个 Actions 项目,并且可能会被场景中的 intent 处理程序替换。intent 名称在 Actions 项目中必须是唯一的。

在会话期间,可以随时匹配全局 intent,从而允许用户访问“获取帮助”或“返回主屏幕”等常见流程。它们还可用于在用户调用 Action 时将用户深层链接到特定流程。

请注意,intent 名称在文件名称中指定。

JSON 表示法
{
  "transitionToScene": string,
  "handler": {
    object (EventHandler)
  }
}
字段
transitionToScene

string

可选。对话应跳转到的目标场景。当前场景的状态会在过渡时销毁。

handler

object (EventHandler)

可选。匹配 intent 时触发的事件处理程序。应在过渡到目标场景之前执行。有助于生成提示以响应事件。

EventHandler

定义要在事件之后执行的处理程序。事件示例包括场景中基于意向和条件的事件。

JSON 表示法
{
  "webhookHandler": string,

  // Union field prompt can be only one of the following:
  "staticPrompt": {
    object (StaticPrompt)
  },
  "staticPromptName": string
  // End of list of possible types for union field prompt.
}
字段
webhookHandler

string

要调用的 webhook 处理程序的名称。

联合字段 prompt。提示可以内嵌或按名称引用。prompt 只能是下列其中一项:
staticPrompt

object (StaticPrompt)

内嵌的静态提示。可以包含对捆绑包中的字符串资源的引用。

staticPromptName

string

要调用的静态提示的名称。

StaticPrompt

表示提示候选项列表,其中一个将作为要在响应用户显示的提示。此消息可本地化。

JSON 表示法
{
  "candidates": [
    {
      object (StaticPromptCandidate)
    }
  ]
}
字段
candidates[]

object (StaticPromptCandidate)

要发送给客户端的候选提示列表。每个提示都有一个选择器,用于确定何时可以使用相应提示。系统会发送与请求匹配的第一个选择器,并忽略其余选择器。

StaticPromptCandidate

表示静态候选提示。

JSON 表示法
{
  "selector": {
    object (Selector)
  },
  "promptResponse": {
    object (StaticPromptResponse)
  }
}
字段
selector

object (Selector)

可选。指示此提示是否与请求匹配的条件。如果选择器为空,系统将始终触发此提示。

promptResponse

object (StaticPromptResponse)

与选择器关联的提示响应。

选择器

定义提示是否与请求匹配的条件。

JSON 表示法
{
  "surfaceCapabilities": {
    object (SurfaceCapabilities)
  }
}
字段
surfaceCapabilities

object (SurfaceCapabilities)

必需的 Surface 功能集。

SurfaceCapabilities

表示用户用来向 Action 发出请求的 Surface。

JSON 表示法
{
  "capabilities": [
    enum (Capability)
  ]
}
字段
capabilities[]

enum (Capability)

必需。向 Action 发出请求的 Surface 的功能。

能力

发出请求时设备 Surface 支持的功能。

枚举
UNSPECIFIED 未指定的 Surface 功能。
SPEECH 设备可以通过文字转语音或 SSML 向用户发出语音指令。
RICH_RESPONSE 设备可以显示丰富的响应,例如卡片、列表和表格。
LONG_FORM_AUDIO 设备可以播放音乐和播客等长音频媒体。
INTERACTIVE_CANVAS 设备可以显示互动式画布响应。
HOME_STORAGE 设备可以支持保存和提取住宅存储空间。

StaticPromptResponse

表示要发送给用户的结构化响应,例如文本、语音、卡片、画布数据、建议内容信息卡等。

JSON 表示法
{
  "firstSimple": {
    object (StaticSimplePrompt)
  },
  "content": {
    object (StaticContentPrompt)
  },
  "lastSimple": {
    object (StaticSimplePrompt)
  },
  "suggestions": [
    {
      object (Suggestion)
    }
  ],
  "link": {
    object (StaticLinkPrompt)
  },
  "override": boolean,
  "canvas": {
    object (StaticCanvasPrompt)
  }
}
字段
firstSimple

object (StaticSimplePrompt)

可选。第一条语音和纯文本响应。

content

object (StaticContentPrompt)

可选。要向用户显示的卡片、列表或媒体等内容。

lastSimple

object (StaticSimplePrompt)

可选。最后一次的语音和纯文本回复。

suggestions[]

object (Suggestion)

可选。要向用户显示的建议,这些建议将始终显示在响应的末尾。如果包含的提示中的 append 字段为 true,则此字段中定义的标题将添加到先前定义的任何建议提示中定义的标题,并移除重复值。

override

boolean

可选。指定如何与先前定义的消息合并的模式。true 会清除所有先前定义的消息(第一条和最后一条简单消息、内容、建议链接和画布消息),并添加此提示中定义的消息。false 会将此提示中定义的消息添加到先前响应中定义的消息。将此字段设为 false 还会允许附加到简单提示、建议提示和 Canvas 提示(内容提示的一部分)中的某些字段。如果在提示中定义“内容”和“链接”消息,则一律会被覆盖。默认值为 false

canvas

object (StaticCanvasPrompt)

用于交互式画布体验的响应。

StaticSimplePrompt

表示要发送给用户的简单提示。

JSON 表示法
{
  "variants": [
    {
      object (Variant)
    }
  ]
}
字段
variants[]

object (Variant)

可能的变体的列表。

变体

表示属于简单提示的变体。

JSON 表示法
{
  "speech": string,
  "text": string
}
字段
speech

string

可选。表示要对用户说出的语音。可以是 SSML 或文字转语音。默认情况下,语音会附加到上一个简单提示的语音。如果包含提示中的 override 字段为 true,则此字段中定义的语音将替换上一个简单提示的语音。

text

string

可选。要在聊天气泡中显示的文本。如果未指定,将使用上述语音字段的显示渲染。上限为 640 个字符。默认情况下,文本会附加到上一个简单提示的文本中。如果包含的提示中的 override 字段为 true,则此字段中定义的文本将替换上一个简单提示的文本。

StaticContentPrompt

StaticPrompt 的内容部分的占位符。

JSON 表示法
{

  // Union field content can be only one of the following:
  "card": {
    object (StaticCardPrompt)
  },
  "image": {
    object (StaticImagePrompt)
  },
  "table": {
    object (StaticTablePrompt)
  },
  "media": {
    object (StaticMediaPrompt)
  },
  "list": {
    object (StaticListPrompt)
  },
  "collection": {
    object (StaticCollectionPrompt)
  },
  "collectionBrowse": {
    object (StaticCollectionBrowsePrompt)
  }
  // End of list of possible types for union field content.
}
字段
联合字段 content。提示中只能包含一种类型的内容。content 只能是下列其中一项:
card

object (StaticCardPrompt)

基本卡片。

image

object (StaticImagePrompt)

图片。

table

object (StaticTablePrompt)

表格卡片。

media

object (StaticMediaPrompt)

指示要播放的一组媒体的响应。

list

object (StaticListPrompt)

用于显示选项列表的卡片。

collection

object (StaticCollectionPrompt)

一张卡片,其中显示了一系列可供选择的选项。

collectionBrowse

object (StaticCollectionBrowsePrompt)

一张卡片,表示一系列可打开的网页。

StaticCardPrompt

用于显示一些信息(例如图片和/或文字)的基本卡片。

JSON 表示法
{
  "title": string,
  "subtitle": string,
  "text": string,
  "image": {
    object (StaticImagePrompt)
  },
  "imageFill": enum (ImageFill),
  "button": {
    object (StaticLinkPrompt)
  }
}
字段
title

string

可选。卡片的总体标题。

subtitle

string

可选。卡片的副标题。

text

string

必需。除非显示图片,否则所需的卡片正文。支持一组有限的 Markdown 格式设置语法。

image

object (StaticImagePrompt)

可选。卡片的主打图片。高度固定为 192dp。

imageFill

enum (ImageFill)

可选。图片背景的填充方式。

button

object (StaticLinkPrompt)

可选。可在卡片中显示的可点击按钮。

StaticImagePrompt

卡片中显示的图片。

JSON 表示法
{
  "url": string,
  "alt": string,
  "height": integer,
  "width": integer
}
字段
url

string

必需。图片的来源网址。图片可以是 JPG、PNG 和 GIF(动画和非动画)。例如 https://www.agentx.com/logo.png

alt

string

必需。用于无障碍功能的图片的文字说明,例如屏幕阅读器。

height

integer

可选。图片的高度(以像素为单位)。

width

integer

可选。图片的宽度(以像素为单位)。

ImageFill

可能会影响图片呈现的图片显示选项。当图片的宽高比与图片容器的宽高比不匹配时,应使用此属性。

枚举
UNSPECIFIED 未指定 ImageFill。
GRAY 用灰条填补图片和图片容器之间的间隙。
WHITE 用白条填补图片和图片容器之间的间隙。
CROPPED 对图片进行缩放,使其宽度和高度符合或超过容器尺寸。如果缩放后的图片高度大于容器高度,则可能会剪裁图片的顶部和底部;如果缩放后的图片宽度大于容器宽度,则可能会剪裁图片的左侧和右侧。这类似于宽屏电视上播放 4:3 视频时的“缩放模式”。

StaticLinkPrompt

定义显示为建议内容信息条并可由用户打开的链接。

JSON 表示法
{
  "name": string,
  "open": {
    object (OpenUrl)
  }
}
字段
name

string

关联名称

open

object (OpenUrl)

定义用户打开链接时的行为。

OpenUrl

定义用户打开链接时的行为。

JSON 表示法
{
  "url": string,
  "hint": enum (UrlHint)
}
字段
url

string

网址字段,可以是以下任一种:- 用于打开与应用关联的应用或网页的 http/https 网址

hint

enum (UrlHint)

表示关于网址类型的提示。

UrlHint

不同类型的网址提示。

枚举
HINT_UNSPECIFIED 未指定
AMP 直接指向 AMP 内容的网址,或通过 <link rel="amphtml"> 引用 AMP 内容的规范网址。

StaticTablePrompt

用于显示文本表格的表格卡片。

JSON 表示法
{
  "title": string,
  "subtitle": string,
  "image": {
    object (StaticImagePrompt)
  },
  "columns": [
    {
      object (TableColumn)
    }
  ],
  "rows": [
    {
      object (TableRow)
    }
  ],
  "button": {
    object (StaticLinkPrompt)
  }
}
字段
title

string

可选。表格的总体标题。如果设置了副标题,则必须设置。

subtitle

string

可选。表格的副标题。

image

object (StaticImagePrompt)

可选。与表关联的图片。

columns[]

object (TableColumn)

可选。标题和列的对齐方式。

rows[]

object (TableRow)

可选。表的行数据。前 3 行一定会显示,但其他行可能会被某些 Surface 裁剪。请使用模拟器进行测试,了解给定界面将会显示哪些行。在支持 WEB_BROWSER 功能的 Surface 上,您可以将用户指向包含更多数据的网页。

button

object (StaticLinkPrompt)

可选。按钮。

TableColumn

描述表中的列。

JSON 表示法
{
  "header": string,
  "align": enum (HorizontalAlignment)
}
字段
header

string

列的标题文本。

align

enum (HorizontalAlignment)

内容列的水平对齐方式。如果未指定,内容将与前边缘对齐。

HorizontalAlignment

单元格内内容的对齐方式。

枚举
UNSPECIFIED 未指定 HorizontalAlignment。
LEADING 单元格的前沿。这是默认值。
CENTER 内容与列中心对齐。
TRAILING 内容与列的尾部边缘对齐。

TableRow

描述表中的行。

JSON 表示法
{
  "cells": [
    {
      object (TableCell)
    }
  ],
  "divider": boolean
}
字段
cells[]

object (TableCell)

此行中的单元格。前 3 个单元格一定会显示,但其他单元格可能在某些表面上被裁剪掉。请使用模拟器进行测试,了解给定界面将会显示哪些单元格。

divider

boolean

指示每行后面是否应该有一个分隔线。

TableCell

描述行中的一个单元格。

JSON 表示法
{
  "text": string
}
字段
text

string

单元格的文本内容。

StaticMediaPrompt

包含媒体的相关信息,例如名称、说明、网址等。下一个 ID:11

JSON 表示法
{
  "mediaType": enum (MediaType),
  "startOffset": string,
  "optionalMediaControls": [
    enum (OptionalMediaControls)
  ],
  "mediaObjects": [
    {
      object (MediaObject)
    }
  ],
  "repeatMode": enum (RepeatMode)
}
字段
mediaType

enum (MediaType)

此响应的媒体类型。

startOffset

string (Duration format)

第一个媒体对象的起始偏移量。

该持续时间以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

optionalMediaControls[]

enum (OptionalMediaControls)

此媒体响应会话可以支持的可选媒体控件类型。如果设置此参数,当特定媒体事件发生时,系统会向第三方发出请求。如果未设置,第三方仍必须处理两种默认控件类型:FINISHED 和 FAILED。

mediaObjects[]

object (MediaObject)

媒体对象的列表。

repeatMode

enum (RepeatMode)

针对媒体对象列表的重复模式。

MediaType

此响应的媒体类型。

枚举
MEDIA_TYPE_UNSPECIFIED 未指定的值
AUDIO 音频文件。
MEDIA_STATUS_ACK 对确认媒体状态报告的响应。

OptionalMediaControls

媒体响应可以选择支持的媒体控件类型

枚举
OPTIONAL_MEDIA_CONTROLS_UNSPECIFIED 未指定的值
PAUSED 活动已暂停。当用户暂停媒体时触发。
STOPPED 事件已停止。当用户在媒体播放期间退出第三方会话时触发。

MediaObject

表示单个媒体对象。

JSON 表示法
{
  "name": string,
  "description": string,
  "url": string,
  "image": {
    object (MediaImage)
  }
}
字段
name

string

此媒体对象的名称。

description

string

此媒体对象的说明。

url

string

指向媒体内容的网址。

image

object (MediaImage)

与媒体卡片一起显示的图片。

MediaImage

要在 MediaPrompt 中显示的图片。

JSON 表示法
{

  // Union field image can be only one of the following:
  "large": {
    object (StaticImagePrompt)
  },
  "icon": {
    object (StaticImagePrompt)
  }
  // End of list of possible types for union field image.
}
字段
联合字段 image。只允许使用一种类型的 MediaImage。image 只能是下列其中一项:
large

object (StaticImagePrompt)

大图片,例如专辑封面等。

icon

object (StaticImagePrompt)

显示在标题右侧的小图片图标。它的大小会调整为 36x36 dp。

RepeatMode

媒体对象列表的重复模式类型。

枚举
REPEAT_MODE_UNSPECIFIED 等同于 OFF。
OFF 在最后一个媒体对象的末尾结束媒体会话。
ALL 当到达最后一个媒体对象的结尾时,循环至第一个媒体对象的开头。

StaticListPrompt

用于显示选项列表的卡片。

JSON 表示法
{
  "title": string,
  "subtitle": string,
  "items": [
    {
      object (ListItem)
    }
  ]
}
字段
title

string

可选。列表标题。

subtitle

string

可选。列表的副标题。

items[]

object (ListItem)

必需。列出项。

ListItem

列表中的一个项。

JSON 表示法
{
  "key": string,
  "title": string,
  "description": string,
  "image": {
    object (StaticImagePrompt)
  }
}
字段
key

string

必需。与关联类型中的条目键名称匹配的 NLU 键。用户点按内容时,此键将以选择选项参数的形式发回。

title

string

必需。商品的标题。用户点按该文字后,系统会将文字完整地发布回对话,就像用户之前输入文字一样。每个标题在一组项中必须是唯一的。

description

string

可选。商品的正文。

image

object (StaticImagePrompt)

可选。商品图片。

StaticCollectionPrompt

一张卡片,用于显示一系列可供选择的选项。

JSON 表示法
{
  "title": string,
  "subtitle": string,
  "items": [
    {
      object (CollectionItem)
    }
  ],
  "imageFill": enum (ImageFill)
}
字段
title

string

可选。集合的标题。

subtitle

string

可选。合集的副标题。

items[]

object (CollectionItem)

必需。集合项。

imageFill

enum (ImageFill)

可选。图片显示选项的类型。

CollectionItem

集合中的一项。

JSON 表示法
{
  "key": string,
  "title": string,
  "description": string,
  "image": {
    object (StaticImagePrompt)
  }
}
字段
key

string

必需。与关联类型中的条目键名称匹配的 NLU 键。用户点按内容时,此键将以选择选项参数的形式发回。

title

string

必需。商品的标题。用户点按该文字后,系统会将文字完整地发布回对话,就像用户之前输入文字一样。每个标题在一组项中必须是唯一的。

description

string

可选。商品的正文。

image

object (StaticImagePrompt)

可选。商品图片。

StaticCollectionBrowsePrompt

将一组网络文档显示为大图块项的集合。可选择项目,以在网络查看器中启动其关联的网络文档。

JSON 表示法
{
  "items": [
    {
      object (CollectionBrowseItem)
    }
  ],
  "imageFill": enum (ImageFill)
}
字段
items[]

object (CollectionBrowseItem)

浏览集合中的项。名单规模应在 [2, 10] 范围内。

imageFill

enum (ImageFill)

集合中图片的图片显示选项。

CollectionBrowseItem

集合中的项。

JSON 表示法
{
  "title": string,
  "description": string,
  "footer": string,
  "image": {
    object (StaticImagePrompt)
  },
  "openUriAction": {
    object (OpenUrl)
  }
}
字段
title

string

必需。合集项的标题。

description

string

合集项的说明。

footer

string

合集项的页脚文本,显示在说明下方。单行文本,用省略号截断。

image

object (StaticImagePrompt)

合集项的图片。

openUriAction

object (OpenUrl)

必需。要在内容被选中时打开的 URI。

建议

表示建议内容信息卡,这是为方便起见而向用户显示的界面元素。

JSON 表示法
{
  "title": string
}
字段
title

string

必需。建议内容信息卡中显示的文本。用户点按该文字后,系统会将文字完整地发布回对话,就像用户之前输入文字一样。每个标题在建议内容信息卡组中必须是唯一的。最多 25 个字符

StaticCanvasPrompt

表示要发送给用户的 Interactive Canvas 响应。除了显示交互式画布响应之外,此字段还可与包含的语音提示中的 firstSimple 字段结合使用。

JSON 表示法
{
  "url": string,
  "data": [
    value
  ],
  "suppressMic": boolean,
  "sendStateDataToCanvasApp": boolean,
  "enableFullScreen": boolean
}
字段
url

string

必需。要加载的网页视图的网址。

data[]

value (Value format)

可选。作为事件传递给沉浸式体验网页的 JSON 数据。如果所在提示中的 override 字段为 false,则系统将在之前的 Canvas 提示中定义的数据值之后添加此 Canvas 提示中定义的数据值。

suppressMic

boolean

可选。值为 true 表示在向用户呈现此沉浸式响应后,不会打开麦克风来捕获输入。

sendStateDataToCanvasApp

boolean

可选。如果为 true,则会包含与对话相关的元数据,并将其发送回画布应用。

enableFullScreen

boolean

可选。如果为 true,则画布应用将占据整个屏幕,并且顶部不会显示标题。加载屏幕上还会显示一条消息框消息,其中包含该 Action 的显示名称、开发者名称以及有关退出该 Action 的说明。默认值:false

场景

在设计对话时,场景是控制流的基本单位。它们可以与其他场景串联在一起、为最终用户生成提示,以及定义槽。场景名称在文件名称中指定。

JSON 表示法
{
  "onEnter": {
    object (EventHandler)
  },
  "intentEvents": [
    {
      object (IntentEvent)
    }
  ],
  "conditionalEvents": [
    {
      object (ConditionalEvent)
    }
  ],
  "slots": [
    {
      object (Slot)
    }
  ],
  "onSlotUpdated": {
    object (EventHandler)
  }
}
字段
onEnter

object (EventHandler)

过渡到此场景时要调用的处理程序。

intentEvents[]

object (IntentEvent)

根据 intent 触发的事件的列表。这些事件可在调用 on_load 处理程序后随时触发。重要提示 - 这些事件定义了一组限定于此场景的 intent,其优先级高于具有相同 intent 或其触发短语的任何全局定义的事件。intent 名称在场景中必须是唯一的。

conditionalEvents[]

object (ConditionalEvent)

根据条件语句触发的事件列表。系统会在填充表单后对其进行评估;如果此场景没有表单,则会立即在 on_load 后立即执行评估(仅执行一次评估)。只会触发第一个匹配事件。

slots[]

object (Slot)

有序的槽列表。每个插槽都定义了将要解析和配置的数据类型,以便自定义此分辨率的体验(例如提示)。

onSlotUpdated

object (EventHandler)

当槽的状态发生变化不是由另一个处理程序中的更新引起的时,系统会调用处理程序。这样一来,槽位会失效、场景也会失效或场景状态发生其他变化。

IntentEvent

注册因 intent 匹配而触发的事件。

JSON 表示法
{
  "intent": string,
  "transitionToScene": string,
  "handler": {
    object (EventHandler)
  }
}
字段
intent

string

必需。触发事件的 intent。

transitionToScene

string

可选。对话应跳转到的目标场景。当前场景的状态会在过渡时销毁。

handler

object (EventHandler)

可选。匹配 intent 时触发的事件处理程序。应在过渡到目标场景之前执行。有助于生成提示以响应事件。

ConditionalEvent

注册由于 true 条件而触发的事件。

JSON 表示法
{
  "condition": string,
  "transitionToScene": string,
  "handler": {
    object (EventHandler)
  }
}
字段
condition

string

必需。要触发的此事件的过滤条件。如果条件的计算结果为 true,则会触发关联的 handler。支持以下变量引用:$session - 用于引用会话存储中的数据。$user - 用于引用用户存储空间中的数据。支持以下布尔运算符(有示例):&& - session.params.counter > 0 && session.params.counter < 100 || - session.params.foo == "John" || session.params.counter == "Adam" ! - !(session.params.counter == 5) 支持以下比较:==!=<><=>=。支持以下列表和字符串运算符(有示例):session.params.fruitList - "Watermelon" in session.params.fruitList size - size(session.params.fruitList) > 2 - {1insubstringsession.params.fullName.contains("John")

transitionToScene

string

可选。当关联条件评估为 true 时,对话应跳转到的目标场景。当前场景的状态会在过渡时销毁。

handler

object (EventHandler)

可选。在关联条件求值为 true 时触发的事件处理脚本。应在过渡到目标场景之前执行。有助于生成提示以响应事件。

槽位

槽的配置。槽是单个数据单元,可通过自然语言(即 intent 参数)、会话参数和其他来源填充。

JSON 表示法
{
  "name": string,
  "type": {
    object (ClassReference)
  },
  "required": boolean,
  "promptSettings": {
    object (PromptSettings)
  },
  "commitBehavior": {
    object (CommitBehavior)
  },
  "config": value,
  "defaultValue": {
    object (DefaultValue)
  }
}
字段
name

string

必需。广告位的名称。

type

object (ClassReference)

必需。声明该插槽的数据类型。

required

boolean

可选。指明是否必须填充广告位才能推进。未填充的必需槽位会触发可自定义的提示。

promptSettings

object (PromptSettings)

可选。为槽位填充的不同阶段注册提示。

commitBehavior

object (CommitBehavior)

可选。与槽关联的提交行为。

config

value (Value format)

可选。与用于填充槽位的槽相关联的额外配置。配置的格式因槽类型而异。您可以将对用户或会话参数的资源引用添加到此配置中。填充与交易和用户互动相关的槽时需要使用此配置。

示例:对于 actions.type.CompletePurchaseValue 类型的广告位,以下配置引用了客户端定义的会话参数 userSelectedSkuId,提出数字商品订单:

{ "@type": "type.googleapis.com/ google.actions.transactions.v3.CompletePurchaseValueSpec", "skuId": { "skuType": "SKU_TYPE_IN_APP", "id": "$session.params.userSelectedSkuId", "packageName": "com.example.company" } }

defaultValue

object (DefaultValue)

可选。用于为此槽填充默认值的配置。

PromptSettings

在一处定义了槽提示。

JSON 表示法
{
  "initialPrompt": {
    object (EventHandler)
  },
  "noMatchPrompt1": {
    object (EventHandler)
  },
  "noMatchPrompt2": {
    object (EventHandler)
  },
  "noMatchFinalPrompt": {
    object (EventHandler)
  },
  "noInputPrompt1": {
    object (EventHandler)
  },
  "noInputPrompt2": {
    object (EventHandler)
  },
  "noInputFinalPrompt": {
    object (EventHandler)
  }
}
字段
initialPrompt

object (EventHandler)

提示槽值本身。例如:“您想要什么尺码?”

noMatchPrompt1

object (EventHandler)

当用户输入的内容首次与槽的预期值类型不匹配时发出提示。示例:“抱歉,我没听明白。”

noMatchPrompt2

object (EventHandler)

当用户第二次输入的内容与槽的预期值类型不匹配时发出提示。示例:“抱歉,我没听明白。”

noMatchFinalPrompt

object (EventHandler)

当用户上次输入的内容与槽的预期值类型不匹配时发出提示。示例:“抱歉,我没听明白。”

noInputPrompt1

object (EventHandler)

在用户首次未提供输入时提示。示例:“抱歉,我没听明白。”

noInputPrompt2

object (EventHandler)

在用户第二次未提供输入时提示。示例:“抱歉,我没听明白。”

noInputFinalPrompt

object (EventHandler)

在用户上次未输入内容时提示。示例:“抱歉,我没听明白。”

CommitBehavior

说明在槽成功填充后与槽关联的提交行为的消息。

JSON 表示法
{
  "writeSessionParam": string
}
字段
writeSessionParam

string

要在广告位值填充后写入到的会话参数。请注意,目前不支持嵌套路径。“$$”用于将广告位值写入与广告位同名的会话参数。例如:writeSessionParam = "fruit" 对应于“$session.params.fruit”。writeSessionParam = "ticket" 对应于“$session.params.ticket”。

DefaultValue

用于为此槽填充默认值的配置。

JSON 表示法
{
  "sessionParam": string,
  "constant": value
}
字段
sessionParam

string

可选。用于初始化槽值的会话参数(如果该参数具有非空值)。值的类型必须与广告位的类型一致。请注意,目前不支持嵌套路径。例如:sessionParam = "fruit" 对应于 $session.params.fruitsessionParam = "ticket" 对应于 $session.params.ticket

constant

value (Value format)

可选。广告位的常量默认值。仅当此槽的值未通过 sessionParam 填充时,才会用到此属性。此值的类型必须与广告位的类型一致。

DataFiles

重复数据文件的封装容器。其中一个重复字段不能存在。

JSON 表示法
{
  "dataFiles": [
    {
      object (DataFile)
    }
  ]
}
字段
dataFiles[]

object (DataFile)

多个数据文件。

DataFile

表示包含非结构化数据的单个文件。例如图片文件、音频文件和 Cloud Functions 函数源代码。

JSON 表示法
{
  "filePath": string,
  "contentType": string,
  "payload": string
}
字段
filePath

string

SDK 文件结构中来自项目根目录的数据文件的相对路径。允许的文件路径:- 图片:resources/images/{multiple directories}?/{ImageName}.{extension} - 音频:resources/audio/{multiple directories}?/{AudioFileName}.{extension} - 内嵌 Cloud Functions 函数代码:webhooks/{WebhookName}.zip 允许的扩展程序:- 图片:pngjpgjpeg - 音频:mp3mpeg - 内嵌 Cloud Functions 函数:zip

contentType

string

必需。此资产的内容类型。示例:text/html。内容类型必须符合规范 (http://www.w3.org/Protocols/rfc1341/4_Content-Type.html)。Cloud Functions 函数必须采用 ZIP 格式,且内容类型应为 application/zip;zip_type=cloud_function。zip_type 参数表示该 ZIP 文件适用于 Cloud Functions 函数。

payload

string (bytes format)

数据文件的内容。例如,图片、音频文件的原始字节或 Cloud Functions 函数 ZIP 格式。载荷大小有 10 MB 的严格限制。

使用 base64 编码的字符串。