Crea Google Custom Types desde Alexa Custom Slots

Crea Google Custom Types desde Alexa Custom Slots

Una CLI simple que transforma los Alexa Custom Slots en Google Custom Types

  1. Google Action Type Importer
    1. Prefacio
      1. Natural Language Understanding
      2. Custom Types y su importancia
    2. Instalación
      1. Hombrew
    3. Uso
      1. Importar un Custom Slot de una Alexa Skill a un Custom Type de una Google Action
      2. Ejemplo
    4. Recursos
    5. Conclusión

Google Action Type Importer

Esta CLI te permite transformar tus Alexa Custom Slots en Google Custom Types.

Prefacio

Natural Language Understanding

NLU o Natural Language Understanding es un campo de la IA que nos permite comprender el input de los usuarios en forma de voz o texto.

Para eso, debes especificar el modelo de interacción (Interaction Model). En términos de Google Assistant y sus Google Actions, será el Voice Interaction Model o VUI. Con la VUI, tú, como voice app developer, especificarás cómo vas a interactuar con el asistente.

En la Google Action, crearás intents (globales o específicas de una Scene) que contendrán Uttrances. Estos Utterances determinarán la misma acción/intención del usuario. Además, esas expresiones pueden contener variables también llamadas slots o entities. Cada slot puede tener su tipo.

Habiendo definido bien la VUI, el proceso de NLU puede identificar lo que el usuario solicita en cualquier momento:

Full-width image NLU. Foto de Chatbots Magazine.

Custom Types y su importancia

Google Assistant tiene sus propios tipos personalizados como actions.type.Date, actions.type.DateTime, actions.type.Time o actions.type.Number. Es importante que si estás desarrollando tus Google Actions y estás trabajando con tus propias palabras, aquellas que sean específicas/relacionadas con tu negocio, deberás crear tus tipos personalizados. El Asistente de Google utilizará estos tipos para entrenar su IA. Así podrá entenderte mientras interactúas con él. La usabilidad de tus Google Action depende directamente de qué tan bien los utterances y los valores de los custom types representen el uso del lenguaje en el mundo real.

Es por eso que creé esta herramienta, para transformar adecuadamente tus Custom Slots creados en Alexa en Custo Types de tus Google Actions.

Instalación

Puede descargar la última versión desde aquí

Hombrew

Si usas el administrador de paquetes Homebrew, puede instalar esta CLI siguiendo estos pasos:

  1. Añade mi Hombre tab:
      brew tap xavidop/tap git@github.com:xavidop/homebrew-tap.git
      brew update
    
  2. Instala la CLI:
      brew install google-action-type-importer
    

Uso

Esta es la descripción general de la herramienta:

  ➜  google-action-type-importer git:(master) ✗ google-action-type-importer 
  Welcome to google-action-type-importer!

  This utility provides you with an easy way to create custom types 
  for your Google Actions projects importing those values from files. 

  You can find the documentation at https://github.com/xavidop/google-action-type-importer/master/README.md.

  Please file all bug reports on Github at https://github.com/xavidop/google-action-type-importer/issues.

  Usage:
    google-action-type-importer [flags]
    google-action-type-importer [command]

  Available Commands:
    completion  generate the autocompletion script for the specified shell
    help        Help about any command
    import      Imports a type
    version     Get google-action-type-importer version

  Flags:
    -h, --help      help for google-action-type-importer
    -v, --verbose   verbose error output (with stack trace)

  Use "google-action-type-importer [command] --help" for more information about a command.

Importar un Custom Slot de una Alexa Skill a un Custom Type de una Google Action

Para importar un Slot de Alexa, debes tener tu Slot en un CSV con el formato que acepta Alexa:

  Slot value,identifier,synonym,synonym,...

Teniendo ese archivo, puedes ejecutar el subcomando import:

  ➜  google-action-type-importer git:(master) ✗ google-action-type-importer import --help
  Imports a type

  Usage:
    google-action-type-importer import [flags]

  Flags:
    -f, --file string        CSV to read (default "file.csv")
    -e, --header             Specifies if the CSV contains headers or not
    -h, --help               help for import
    -t, --type-name string   Type to create (default "type")

  Global Flags:
    -v, --verbose   verbose error output (with stack trace)

Ejemplo

  google-action-type-importer import -f examples/pokemon.csv --header -t pokemon

El comando anterior creará el archivo pokemon.yaml. Puedes encontrar el CSV de ejemplo aquí y el fichero YAML resultante aquí.

Alexa Custom Slot:

Full-width image Alexa Custom Slot

Google Action Custom Type:

Full-width image Google Action Custom type

Fácil ¿Verdad?

Recursos

Conclusión

Como puedes ver, puedes transferir tus Alexa Slots fácilmente a tus Google Actions. ¡Deseando ver las Google Actions que vas a desarrollar utilizando esta CLI!

Espero que esta herramienta te sea de utilidad.

Puedes encontrar el código en mi Github

!Eso es todo!

Happy coding!


Made with ❤ by Xavier Portilla Edo © 2021. All rights reserved.