Действия — это точки входа в ваше приложение, которые определяют модель вызова и обнаружения для вашего приложения. Вы объявляете действия в файле JSON, известном как пакет действий , который вы позже загружаете в свой проект разработчика, когда хотите протестировать или отправить свой проект действий на утверждение. Пакет действий — это файл JSON, который определяет действия в вашем проекте действий.
Чтобы определить действия в пакете действий, вы создаете намерение, которое определяет, как вызывается действие, и соответствующую конечную точку выполнения, когда намерение срабатывает. Вы можете создавать следующие типы действий:
- Действие по умолчанию: каждый проект Actions должен иметь приветственное намерение, которое служит отправной точкой для начала общения пользователей. Приветственное намерение срабатывает, когда пользователи явно вызывают действие, произнося его имя (например, «Эй, Google, поговори с exampleAction» ). Это приветственное намерение идентифицируется именем намерения
actions.intent.MAIN
. - Дополнительные действия для глубоких ссылок: вы можете создать дополнительные действия в своем пакете действий с намерениями, которые вы определяете самостоятельно. Это позволяет пользователям вызывать определенные функции, произнося имя действия вместе с намерением (например: «Эй, Google, поговори с exampleAction, чтобы найти обувь» ).
Дополнительные сведения о том, как работают эти модели вызова, см. в разделе «Намерения и вызов».
Определить действие по умолчанию
Каждый пакет действий должен иметь одно и только одно намерение, которое обрабатывает намерение actions.intent.MAIN
. Это намерение срабатывает, когда пользователи вызывают ваше действие по имени (например, «Эй, Google, поговори с exampleAction» ).
Чтобы создать шаблонный файл пакета действий с именем action.json
, выполните следующие действия:
- Загрузите CLI
gactions
. - Создайте локальный каталог для исходных файлов вашего проекта Action.
Выполните в терминале следующие команды:
$ cd
PROJECT_DIRECTORY
$ gactions init
После создания файла пакета действий замените содержимое заполнителя своими значениями. Вот пример action.json
с изменениями для ExampleAction
:
{
"actions": [
{
"description": "Default welcome intent",
"name": "MAIN",
"fulfillment": {
"conversationName": "ExampleAction"
},
"intent": {
"name": "actions.intent.MAIN",
"trigger": {
"queryPatterns": [
"talk to ExampleAction"
]
}
}
}
],
"conversations": {
"ExampleAction": {
"name": "ExampleAction",
"url": "https://www.example.com/ExampleAction"
}
},
"locale": "en"
}
Определить дополнительные действия
Вы можете предоставить дополнительные Действия, которые будут служить точками входа. Это позволяет пользователям устранить неоднозначность своих намерений, позволяя им указать более подробную информацию о том, что они хотят сделать (например, «Эй, Google, поговори с exampleAction, чтобы найти мне туфли». ).
Чтобы определить дополнительные действия:
В массиве
Например, следующий код показывает дополнительное действие «купить», которое определяет:actions
укажите действие для каждой точки входа.- Имя намерения
com.example.ExampleAction.BUY
-
parameters
для анализа пользовательского ввода при срабатывании этого намерения. Это полезно, если вам нужны конкретные данные из фразы действия, когда пользователи вызывают действие. -
queryPatterns
, которые определяют, что пользователи должны сказать, чтобы вызвать намерение. Шаблоны запросов могут включать типы Schema.org, определяющие параметры для анализа.
{
"description": "Direct access",
"name": "BUY",
"fulfillment": {
"conversationName": "ExampleAction"
},
"intent": {
"name": "com.example.ExampleAction.BUY",
"parameters": [
{
"name": "color",
"type": "org.schema.type.Color"
}
],
"trigger": {
"queryPatterns": [
"find some $org.schema.type.Color:color sneakers",
"buy some blue suede shoes",
"get running shoes"
]
}
}
}
- Имя намерения
Укажите выполнение этого намерения, указав
conversationName
, соответствующее элементу в объектеconversations
.{
"conversations": {
"ExampleAction": {
"name": "ExampleAction",
"url": "https://www.example.com/ExampleAction"
}
}
}
Вот пример полного пакета действий:
{
"actions": [
{
"description": "Default welcome intent",
"name": "MAIN",
"fulfillment": {
"conversationName": "ExampleAction"
},
"intent": {
"name": "actions.intent.MAIN",
"trigger": {
"queryPatterns": [
"talk to ExampleAction"
]
}
}
},
{
"description": "Direct access",
"name": "BUY",
"fulfillment": {
"conversationName": "ExampleAction"
},
"intent": {
"name": "com.example.ExampleAction.BUY",
"parameters": [
{
"name": "color",
"type": "org.schema.type.Color"
}
],
"trigger": {
"queryPatterns": [
"find some $org.schema.type.Color:color sneakers",
"buy some blue suede shoes",
"get running shoes"
]
}
}
}
],
"conversations": {
"ExampleAction": {
"name": "ExampleAction",
"url": "https://www.example.com/ExampleAction"
}
},
"locale": "en"
}