Compila proyectos

Un proyecto de Acciones empaqueta todas tus acciones en un solo contenedor. Publicas este proyecto en Actions on Google para que Asistente de Google sepa cómo descubrir e invocar tus experiencias de conversación.

componentes del proyecto de Actions
Figura 1: Estructura del proyecto de Acciones

Usarás los siguientes componentes de bajo nivel para compilar tu proyecto de Acciones:

  • En la configuración y los recursos, se definen los metadatos y los recursos del proyecto, como los íconos del proyecto. Google usa esta información para publicar tus acciones en el directorio de Asistente, de modo que los usuarios puedan descubrirlas e invocarlas.

  • Los intents representan una tarea que se debe realizar, como una entrada del usuario o un evento del sistema que necesita procesamiento. El tipo de intent más común que usarás son los intents de usuario. Estos intents te permiten declarar frases de entrenamiento que el motor de comprensión del lenguaje natural (CLN) expande naturalmente para incluir muchas más frases similares. La CLN usa la agregación de estas frases para entrenar un modelo de lenguaje que Asistente utiliza para hacer coincidir la entrada del usuario. Durante una conversación, si alguna entrada del usuario coincide con el modelo de lenguaje del intent, el tiempo de ejecución de Asistente envía el intent a tu acción para que pueda procesarlo y responder al usuario.

  • Los tipos te permiten extraer datos estructurados de las entradas del usuario. Cuando se anotan frases de entrenamiento con tipos, el CLN puede extraer datos estructurados relevantes por ti, de modo que no tengas que analizar la entrada abierta.

  • Las Scenes procesan intents y son los ejecutores de lógica principales para tus acciones. Pueden completar ranuras, evaluar la lógica condicional, mostrar solicitudes al usuario o incluso llamar a servicios web externos para llevar a cabo la lógica empresarial. En combinación con los intents, las escenas te brindan una manera potente de detectar entradas específicas del usuario o eventos del sistema y realizar la lógica correspondiente.

  • Los mensajes definen las respuestas estáticas o dinámicas que usas para responder a los usuarios.

  • Los webhooks te permiten delegar trabajo adicional a los servicios web (entregas), como la validación de datos o la generación de mensajes. Tus acciones se comunican con tu entrega a través de un protocolo de webhook basado en JSON.

  • Interactive Canvas te permite crear experiencias enriquecidas y envolventes con las apps web que utilizan HTML, CSS y JavaScript.

Cómo crear un proyecto

Debes crear un proyecto en la Consola de Actions antes de poder desarrollar para Asistente de Google. Para crear un proyecto, sigue estos pasos:

  1. Ve a la Consola de Actions.
  2. Haz clic en Proyecto nuevo.
  3. Ingresa un nombre para tu proyecto y haz clic en Crear proyecto.
  4. En la pantalla What kind of Action do you want to build?, selecciona la categoría que mejor represente tu proyecto y haz clic en Next.
  5. En la pantalla How do you want to build it, selecciona una forma de compilar y haz clic en Start build. Por ejemplo, puedes comenzar con un proyecto vacío o con una muestra.

Cómo crear un proyecto del SDK de Actions local

Una vez que hayas creado un proyecto de acciones en la Consola de Actions, puedes inicializar un proyecto en tu entorno de desarrollo local.

Para inicializar un proyecto del SDK de Actions a partir de un proyecto de acciones existente, sigue estos pasos:

  1. Crea un directorio vacío para el proyecto de acciones en el sistema de archivos local.
  2. En este directorio vacío, crea un directorio sdk.
  3. Cambia tu directorio de trabajo al directorio sdk en tu terminal.

Comienza con un proyecto vacío

Si deseas comenzar desde el proyecto vacío que acabas de crear en la consola, ejecuta gactions pull --project-id <my-project-id>.

$ mkdir myAction
$ cd myAction
$ mkdir sdk
$ cd sdk
$ gactions pull --project-id my-project-id
Pulling your project files from Draft for a project id: "my-project-id"
✔ Done. You should see the files written in path/to/myAction/sdk

Comienza con un proyecto de muestra

Si quieres comenzar desde un proyecto de muestra, ejecuta gactions init <sample name>.

$ mkdir actions-test
$ cd actions-test
$ mkdir sdk
$ cd sdk
$ gactions init question
Writing sample files for question.
✔ Done. Please checkout the following documentation - https://developers.google.com/assistant/conversational/build on the next steps on how to get started.

Definir la información del proyecto

La configuración y los recursos de tu proyecto definen información sobre él, como la compatibilidad con las funciones y la plataforma, las configuraciones regionales compatibles, el nombre visible, la descripción, los logotipos y mucho más. En la siguiente tabla, se describen la configuración y los recursos principales que proporcionas. Actions on Google usa esta información para implementar y publicar tu proyecto en el directorio de Asistente.

Nombre Descripción
Información del directorio Proporciona información para que Actions on Google pueda publicar tu proyecto en el directorio del Asistente. Incluye metadatos y descripciones de tu proyecto, además de recursos de imagen para imágenes de banners y logotipos.
Segmentación geográfica Configura las configuraciones regionales en las que están disponibles tus acciones.
Capacidades de superficie Configura las plataformas en las que están disponibles tus acciones.
Datos de la empresa Especifica la información de contacto de tu empresa.
Verificación de marca Conecta un sitio web o una app para Android que te pertenezca para obtener beneficios adicionales, como nombres de invocación reservados y vínculos a sitios web dentro de tus Acciones.
Lanzamiento Configura diferentes versiones de prueba y producción para tu acción a fin de realizar pruebas y producción.
Vínculos de Asistente Permite que los usuarios invoquen tus acciones desde tus propiedades web.

Para definir la información del proyecto, haz lo siguiente:

  1. Define la configuración global para tu proyecto de acciones en sdk/settings/settings.yaml. Consulta la documentación de referencia de Configuración para conocer los valores admitidos.

    En el siguiente fragmento, se muestra un ejemplo de archivo sdk/settings/settings.yaml:

    accountLinking:
      enableAccountCreation: true
      linkingType: GOOGLE_SIGN_IN
    category: GAMES_AND_TRIVIA
    projectId: my-project-id
    ...
    

  2. Define parámetros de configuración que pueden variar según la configuración regional del usuario (por ejemplo, frases de invocación en diferentes idiomas) en un archivo sdk/settings/<locale>/settings.yaml y reemplaza la configuración regional con la configuración regional de destino.

    Consulta la documentación de referencia de LocalizedSettings para ver los valores admitidos.

    El siguiente fragmento es un ejemplo de la configuración en inglés definida en un archivo sdk/settings/en/settings.yaml:

    localizedSettings:
      developerEmail: developer@developers.com
      developerName: Developer Name
      displayName: My Display Name
      fullDescription: full description of the action
      largeBannerImage: https://path/to/large/banner
      privacyPolicyUrl: http://path/to/privacy/policy
      sampleInvocations:
      - Talk to My Display Name
      shortDescription: short description of the action
      smallLogoImage: https://path/to/small/logo
      voice: female_1
    ...
    

Agrega recursos

Puedes almacenar recursos como archivos de imagen, archivos de audio y strings en tu proyecto de Actions y hacer referencia a ellos desde archivos de configuración (por ejemplo, condiciones o definiciones de mensajes) con la variable $resources definida por el sistema.

Los recursos del proyecto se almacenan en resources/, y a cada tipo de recurso se le asigna una carpeta en el directorio.

Para localizar recursos, puedes crear carpetas específicas de configuración regional en la carpeta de tipo de recurso. Por ejemplo, puedes almacenar versiones en español de tus strings en resources/strings/es/<filename>.yaml.

Imágenes

Los archivos de imagen se almacenan en resources/images/ y puedes hacer referencia a ellos con $resources.images.<name of the image file without file extension>. Las extensiones de archivo permitidas son las siguientes:

  • gif
  • png
  • jpg
  • jpeg

Por ejemplo, si la versión en inglés del logotipo pequeño se guarda en resources/images/en/square.png y la versión en inglés del banner grande se guarda en resources/images/en/landscape.jpg respectivamente, sdk/settings/en/settings.yaml del ejemplo anterior se convertiría en lo siguiente:

localizedSettings:
  developerEmail: developer@developers.com
  developerName: Developer Name
  displayName: My Display Name
  fullDescription: full description of the action

  largeBannerImage: $resources.images.landscape
  privacyPolicyUrl: http://path/to/privacy/policy
  sampleInvocations:
  - Talk to My Display Name
  shortDescription: short description of the action

  smallLogoImage: $resources.images.square
  voice: female_1
...

Archivos de audio

Los archivos de audio se almacenan en resources/audio/, y puedes hacer referencia a ellos con $resources.audio.<name of the audio file without file extension>.

Las extensiones de archivo permitidas son las siguientes:

  • mp3
  • mpeg

Por ejemplo, puedes hacer referencia a grabaciones de audio a partir de instrucciones:

candidates:
  - first_simple:
      variants:
        - speech: your speech response
    content:
      media:
        mediaType: audio
        mediaObjects:
          - name: media name
            description: media description
            url: $resources.audio.intro

Cadenas

Las strings se almacenan en resources/strings/ como archivos .yaml. Cada archivo contiene un mapa de claves de string y valores asociados, que pueden ser strings individuales o listas de strings. Puedes hacer referencia a los valores mediante $resources.strings.<name of the image file without file extension>.<key> para valores de string únicos o para obtener un valor aleatorio de una lista, y $resources.strings.<name of the image file without file extension>.<key>.<numerical index> para un valor de string específico dentro de una lista.

Por ejemplo, si usas strings de recursos para la localización de strings, el valor de sdk/settings/en/settings.yaml del ejemplo anterior podría convertirse en el siguiente:

localizedSettings:
  developerEmail: developer@developers.com
  developerName: $resources.strings.appinfo.developerName
  displayName: $resources.strings.appinfo.displayName
  fullDescription: $resources.strings.appinfo.fullDescription
  largeBannerImage: $resources.images.landscape
  privacyPolicyUrl: $resources.strings.appinfo.privacyPolicyUrl
  sampleInvocations:
  - $resources.strings.invocations.sample
  shortDescription: $resources.strings.appinfo.shortDescription
  smallLogoImage: $resources.images.square
  voice: female_1
...

Cómo probar proyectos en el simulador

La Consola de Actions proporciona un simulador para obtener una vista previa de tus acciones. El simulador te permite ver información de depuración, configurar las capacidades del dispositivo, simular la configuración regional y mucho más.

Figura 3: Las áreas principales del simulador: (1) entrada del usuario, (2) vista de dispositivo, (3) opciones y configuración, y (4) registro de conversaciones.

Para probar un proyecto, haz lo siguiente:

  1. Ejecuta gactions deploy preview a fin de implementar tu acción para obtener una "vista previa" y habilitar las pruebas en el simulador.
  2. Abre la URL en el resultado del comando para acceder al simulador.
$ gactions deploy preview
Deploying your project files to your Actions console preview for a project id: "my-project". This may take a few minutes.
Sending configuration files
Waiting for server to respond.
✔ Done. You can now navigate to the Actions Console simulator to test your changes: http://console.actions.google.com/project/my-project/simulator?disableAutoPreview