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

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

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。每种类型的配置文件都应该在其中一个字段中具有相应的字段。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)

单个 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 列表。

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}”推送通知将类似于“Is it ok if I send push notifications for {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

操作是否可以在对话期间让麦克风保持打开状态,而不显示明确提示。

surfaceRequirements

object (SurfaceRequirements)

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

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

类别

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 项目的默认详细说明(如果没有翻译版本)。上限为 4,000 个字符。

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

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

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

操作的主要主题颜色将用于为 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 - Mons Serif Bold - Sans Serif Black - Sans Serif Condensed Medium - Serif - Serif Bold - 小号字体

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 会生成用于向 Google 标识您的应用的客户端 ID(即控制台界面上的“Google 向您的 Action 发放的客户端 ID”)。此字段是只读字段,您可以转到控制台界面的“账号关联”页面进行查看。请参阅: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,则仅允许在您的网站上创建账号。如果您想在注册期间显示您的服务条款或征求用户同意,请选择此选项。当此类型为 false 时,linkingType 不能为 GOOGLE_SIGN_IN。如果关联类型为 true,则关联类型不能为 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 隐式代码授权。您只需提供身份验证网址即可。

网络钩子

不同类型的网络钩子的元数据。如果您使用的是 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_type。仅支持一种 webhook 类型。webhook_type 只能是下列其中一项:
httpsEndpoint

object (HttpsEndpoint)

自定义 webhook HTTPS 端点。

inlineCloudFunction

object (InlineCloudFunction)

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

Handler

声明 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

保存从 webhook 文件夹部署的内嵌 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 '温哥华')的航班”

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”中的实体集目录。

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/ 目录中。

类型

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

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)

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

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 项目中必须是唯一的。

在会话期间可随时匹配全局意图,从而允许用户访问“获取帮助”等常用流程或“返回首页”还可用于在用户调用 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 发出请求的界面。

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

enum (Capability)

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

能力

请求时设备 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 的 Content 部分的占位符。

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 个单元格一定会显示,但其他单元格可能会被在某些表面上剪切。请使用模拟器进行测试,看看将针对给定 Surface 显示哪些单元格。

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)

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

mediaObjects[]

object (MediaObject)

媒体对象的列表。

repeatMode

enum (RepeatMode)

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

MediaType

此响应的媒体类型。

枚举
MEDIA_TYPE_UNSPECIFIED 值 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 在最后一个媒体对象的末尾结束媒体会话。
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 字段是此 Canvas 提示中定义的 false 数据值,则将在之前的 Canvas 提示中定义的数据值之后添加。

suppressMic

boolean

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

sendStateDataToCanvasApp

boolean

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

enableFullScreen

boolean

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

场景

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

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

object (EventHandler)

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

intentEvents[]

object (IntentEvent)

基于意图触发的事件列表。这些事件可在调用 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) 支持以下比较运算符:==!=<><=>= 支持以下列表和字符串运算符(示例):in -“西瓜”session.params.fruitList size - size(session.params.fruitList) > 2 substring - session.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,提出了一个数字商品订单:

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

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 编码的字符串。