Definir acciones (Dialogflow)

Las acciones son puntos de entrada a tu app que definen la invocación y el descubrimiento. para tu app. Declaras acciones en un archivo JSON conocido como el paquete de acciones. que luego subirás a tu proyecto de desarrollador cuando quieras probar o envía tu proyecto de Acciones para su aprobación. El paquete Action es un archivo JSON que Define las acciones en tu proyecto de acciones.

Para definir acciones en tu paquete de acciones, debes crear un intent que defina cómo se invoca la Acción y el extremo de entrega correspondiente para cuando se activa el intent. Puedes crear los siguientes tipos de acciones:

  • Acción predeterminada: Todos los proyectos de acciones deben tener un intent de bienvenida que actúe como punto de entrada para que los usuarios inicien conversaciones. El intent de bienvenida es se activa cuando los usuarios invocan explícitamente una acción pronunciando su nombre (por por ejemplo, "Hey Google, habla con AcciónDeEjemplo"). Este intent de bienvenida se identifica con el nombre del intent actions.intent.MAIN
  • Acciones adicionales para la vinculación directa: Puedes crear Acciones adicionales en el paquete Action con intents que tú definas. Esto permite que los usuarios para invocar una funcionalidad específica con solo decir un nombre de Acción junto con un intent (por ejemplo: "Hey Google, habla con AcciónDeEjemplo para buscar unos zapatos").

Consulta Intents y invocación para obtener más información sobre cómo funcionan estos modelos de invocación.

Cómo definir una acción predeterminada

Cada paquete de acción debe tener un único intent que controle las actions.intent.MAIN. Este intent se activa cuando los usuarios invocan tu Acción por nombre (por ejemplo, "Hey Google, habla con AcciónDeEjemplo").

Para generar un archivo de paquete de acción estándar llamado action.json, toma la siguiente información: los siguientes pasos:

  1. Descarga la CLI de gactions.
  2. Crea un directorio local para los archivos fuente de tu proyecto de acción.
  3. Ejecuta los siguientes comandos en la terminal:

    $ cd PROJECT_DIRECTORY
    $ gactions init

Una vez que se genere el archivo del paquete de acciones, reemplaza el contenido del marcador de posición por tu de salida. Este es un ejemplo de action.json con cambios para 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"
}

Cómo definir acciones adicionales

Puedes proporcionar Acciones adicionales que actúen como puntos de entrada. Esto permite que los usuarios desambiguar su intención al permitirles especificar más detalles sobre lo que lo que quieres hacer (por ejemplo, "Hey Google, habla con ExampleAction para encontrarme zapatos”.).

Para definir Acciones adicionales, sigue estos pasos:

  1. En el array actions, especifica una acción para cada punto de entrada.

    Por ejemplo, el siguiente código muestra una “compra” adicional Acción que define lo siguiente:
    • Un nombre de intent de com.example.ExampleAction.BUY
    • parameters para analizar la entrada del usuario cuando se activa este intent Esto es útil si necesitas datos específicos de la frase Acción cuando los usuarios invoquen la acción.
    • queryPatterns que definen lo que los usuarios deben decir para activar el intent. Los patrones de consulta pueden incluir tipos de Schema.org. que definen los parámetros para analizar.
    {
      "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. Para especificar la entrega de este intent, especifica un conversationName que corresponde a un elemento del objeto conversations.

    {
      "conversations": {
        "ExampleAction": {
          "name": "ExampleAction",
          "url": "https://www.example.com/ExampleAction"
        }
      }
    }
        

Este es un ejemplo de un paquete Action completo:

{
  "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"
}