Определить действия (диалоговый поток)

Действия — это точки входа в ваше приложение, которые определяют модель вызова и обнаружения для вашего приложения. Вы объявляете действия в файле JSON, известном как пакет действий , который вы позже загружаете в свой проект разработчика, когда хотите протестировать или отправить свой проект действий на утверждение. Пакет действий — это файл JSON, который определяет действия в вашем проекте действий.

Чтобы определить действия в пакете действий, вы создаете намерение, которое определяет, как вызывается действие, и соответствующую конечную точку выполнения, когда намерение срабатывает. Вы можете создавать следующие типы действий:

  • Действие по умолчанию: каждый проект Actions должен иметь приветственное намерение, которое служит отправной точкой для начала общения пользователей. Приветственное намерение срабатывает, когда пользователи явно вызывают действие, произнося его имя (например, «Эй, Google, поговори с exampleAction» ). Это приветственное намерение идентифицируется именем намерения actions.intent.MAIN .
  • Дополнительные действия для глубоких ссылок: вы можете создать дополнительные действия в своем пакете действий с намерениями, которые вы определяете самостоятельно. Это позволяет пользователям вызывать определенные функции, произнося имя действия вместе с намерением (например: «Эй, Google, поговори с exampleAction, чтобы найти обувь» ).

Дополнительные сведения о том, как работают эти модели вызова, см. в разделе «Намерения и вызов».

Определить действие по умолчанию

Каждый пакет действий должен иметь одно и только одно намерение, которое обрабатывает намерение actions.intent.MAIN . Это намерение срабатывает, когда пользователи вызывают ваше действие по имени (например, «Эй, Google, поговори с exampleAction» ).

Чтобы создать шаблонный файл пакета действий с именем action.json , выполните следующие действия:

  1. Загрузите CLI gactions .
  2. Создайте локальный каталог для исходных файлов вашего проекта Action.
  3. Выполните в терминале следующие команды:

    $ 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, чтобы найти мне туфли». ).

Чтобы определить дополнительные действия:

  1. В массиве 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"
         
    ]
       
    }
     
    }
    }
         
  2. Укажите выполнение этого намерения, указав 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"
}