Projets de compilation

Un projet Actions regroupe toutes vos actions dans un seul conteneur. Vous publiez ce projet sur Actions on Google pour que l'Assistant Google sache comment découvrir et appeler vos expériences de conversation.

composants du projet Actions
Figure 1. Structure du projet Actions

Vous utilisez les composants de bas niveau suivants pour compiler votre projet Actions:

  • Les paramètres et ressources définissent les métadonnées et les ressources du projet, telles que les icônes de projet. Google utilise ces informations pour publier vos actions dans le répertoire de l'Assistant, afin que les utilisateurs puissent les découvrir et les appeler.

  • Les intents représentent une tâche à exécuter, comme une entrée utilisateur ou un événement système qui doit être traité. Le type d'intent le plus courant que vous utiliserez sont les intents utilisateur. Ces intents vous permettent de déclarer des phrases d'entraînement naturellement développées par le moteur de compréhension du langage naturel (NLU) pour inclure de nombreuses autres expressions similaires. La NLU utilise l'agrégation de ces expressions pour entraîner un modèle de langage que l'Assistant utilise pour faire correspondre l'entrée utilisateur. Au cours d'une conversation, si une entrée utilisateur correspond au modèle de langage de l'intent, l'environnement d'exécution de l'Assistant envoie l'intent à votre action afin qu'il puisse la traiter et répondre à l'utilisateur.

  • Les types vous permettent d'extraire des données structurées d'une entrée utilisateur. En annotant les phrases d'entraînement avec des types, la NLU peut extraire des données structurées pertinentes et vous évite d'avoir à analyser les entrées ouvertes.

  • Les Scenes (Scènes) traitent les intents et constituent les principaux exécuteurs de logique pour vos actions. Ils peuvent remplir des emplacements, évaluer une logique conditionnelle, renvoyer des invites à l'utilisateur et même appeler des services Web externes pour exécuter la logique métier. Combinées à des intents, les scènes vous permettent de détecter efficacement des entrées utilisateur ou des événements système spécifiques, et d'exécuter la logique correspondante.

  • Les invites définissent des réponses statiques ou dynamiques que vous utilisez pour répondre aux utilisateurs.

  • Les webhooks vous permettent de déléguer des tâches supplémentaires aux services Web (fulfillment), comme la validation des données ou la génération des invites. Vos actions communiquent avec votre traitement via un protocole de webhook basé sur JSON.

  • Interactive Canvas vous permet de créer des expériences riches et immersives à l'aide d'applications Web qui utilisent le langage HTML, CSS et JavaScript.

Créer un projet

Vous devez créer un projet dans la console Actions avant de pouvoir développer pour l'Assistant Google. Pour créer un projet :

  1. Accédez à la console Actions.
  2. Cliquez sur Nouveau projet.
  3. Saisissez un nom pour votre projet, puis cliquez sur Créer un projet.
  4. Sur l'écran What kind of Action do you want to build? (Quel type d'action voulez-vous créer ?), sélectionnez la catégorie qui représente le mieux votre projet, puis cliquez sur Next (Suivant).
  5. Sur l'écran How do you want to build it (Comment voulez-vous le compiler), sélectionnez une méthode de compilation, puis cliquez sur Start build (Commencer à compiler). Par exemple, vous pouvez commencer avec un projet vide ou avec un exemple.

Créer un projet SDK Actions en local

Une fois que vous avez créé un projet Actions dans la console Actions, vous pouvez initialiser un projet dans votre environnement de développement local.

Pour initialiser un projet SDK Actions à partir d'un projet Actions existant, procédez comme suit:

  1. Créez un répertoire vide pour le projet Actions sur votre système de fichiers local.
  2. Dans ce répertoire vide, créez un répertoire sdk.
  3. Remplacez le répertoire de travail par le répertoire sdk de votre terminal.

Commencer avec un projet vide

Si vous souhaitez commencer à partir du projet vide que vous venez de créer dans la console, exécutez 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

Commencer avec un exemple de projet

Si vous souhaitez commencer à partir d'un exemple de projet, exécutez 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.

Définir les informations du projet

Les paramètres et ressources de votre projet définissent des informations sur votre projet, telles que la compatibilité des caractéristiques et des surfaces, les paramètres régionaux compatibles, le nom à afficher, la description, les logos, etc. Le tableau suivant décrit les principaux paramètres et ressources que vous fournissez. Actions on Google utilise ces informations pour déployer et publier votre projet dans le répertoire de l'Assistant.

Nom Description
Informations de l'annuaire Fournit des informations permettant à Actions on Google de publier votre projet dans le répertoire de l'Assistant. Inclut des métadonnées et des descriptions sur votre projet, ainsi que des ressources image pour les logos et les images de bannière.
Ciblage géographique Configure les paramètres régionaux dans lesquels vos actions sont disponibles.
Fonctionnalités de surface Configure les surfaces sur lesquelles vos actions sont disponibles.
Informations détaillées sur l'entreprise Indique les coordonnées de votre entreprise.
Validation de la marque Associez un site Web ou une application Android que vous possédez pour bénéficier d'avantages supplémentaires, tels que des noms d'appel réservés et des liens vers des sites Web dans vos actions.
Version Configure différentes versions de test et de production pour votre action à des fins de test et de production.
Liens de l'Assistant Permettez aux utilisateurs d'appeler vos actions à partir de vos propriétés Web.

Pour définir les informations du projet:

  1. Définissez les paramètres généraux de votre projet Actions dans sdk/settings/settings.yaml. Consultez la documentation de référence sur les paramètres pour connaître les valeurs acceptées.

    L'extrait de code suivant montre un exemple de fichier sdk/settings/settings.yaml :

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

  2. Définissez des paramètres pouvant varier en fonction des paramètres régionaux de l'utilisateur (par exemple, des expressions d'appel dans différentes langues) dans un fichier sdk/settings/<locale>/settings.yaml, en remplaçant les paramètres régionaux par vos paramètres régionaux cibles.

    Consultez la documentation de référence de LocalizedSettings pour connaître les valeurs acceptées.

    L'extrait de code suivant est un exemple de paramètres en anglais définis dans un fichier 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
    ...
    

Ajouter des ressources

Vous pouvez stocker des ressources telles que des fichiers image, des fichiers audio et des chaînes dans votre projet Actions, et les référencer à partir de fichiers de configuration (par exemple, des définitions d'invites ou des conditions) à l'aide de la variable $resources définie par le système.

Les ressources du projet sont stockées sous resources/, et chaque type de ressource se voit attribuer un dossier dans le répertoire.

Vous pouvez localiser des ressources en créant des dossiers spécifiques aux paramètres régionaux dans le dossier des types de ressources. Vous pouvez par exemple stocker les versions en espagnol de vos chaînes dans resources/strings/es/<filename>.yaml.

Images

Les fichiers image sont stockés dans resources/images/. Vous pouvez les référencer avec $resources.images.<name of the image file without file extension>. Les extensions de fichier autorisées sont les suivantes:

  • gif
  • png
  • jpg
  • jpeg

Par exemple, si la version anglaise du petit logo est enregistrée dans resources/images/en/square.png et que la version anglaise de la grande bannière est respectivement enregistrée dans resources/images/en/landscape.jpg, sdk/settings/en/settings.yaml de l'exemple précédent devient:

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
...

Fichiers audio

Les fichiers audio sont stockés dans resources/audio/. Vous pouvez les référencer avec $resources.audio.<name of the audio file without file extension>.

Les extensions de fichier autorisées sont les suivantes:

  • mp3
  • mpeg

Par exemple, vous pouvez référencer des enregistrements audio à partir de requêtes:

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

Strings

Les chaînes sont stockées dans resources/strings/ en tant que fichiers .yaml. Chaque fichier contient un mappage de clés de chaîne et de valeurs associées, qui peuvent être des chaînes uniques ou des listes de chaînes. Vous pouvez référencer les valeurs à l'aide de $resources.strings.<name of the image file without file extension>.<key> pour les valeurs de chaîne unique ou pour obtenir une valeur aléatoire dans une liste, et de $resources.strings.<name of the image file without file extension>.<key>.<numerical index> pour une valeur de chaîne spécifique au sein d'une liste.

Par exemple, en utilisant des chaînes de ressources pour la localisation des chaînes, sdk/settings/en/settings.yaml de l'exemple précédent pourrait devenir:

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
...

Projets de test dans le simulateur

La console Actions propose un simulateur dans lequel vous pouvez prévisualiser vos actions. Il vous permet de consulter les informations de débogage, de définir les fonctionnalités de l'appareil, de simuler des paramètres régionaux, etc.

Figure 3. Principales zones du simulateur: (1) entrées utilisateur, (2) vue de l'appareil, (3) options et paramètres, et (4) journal des conversations.

Pour tester un projet:

  1. Exécutez gactions deploy preview pour déployer votre action en "preview" et activer les tests dans le simulateur.
  2. Ouvrez l'URL dans le résultat de la commande pour accéder au simulateur.
$ 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