Migration d'exécution

Une fois que vous avez configuré vos intents et vos scènes, vous devez mettre à jour votre code de traitement pour tenir compte des modifications apportées aux formats de requête et de réponse d'Action Builder. C'est également l'occasion d'envisager d'utiliser des fonctionnalités supplémentaires d'Actions Builder. Cette page décrit la procédure à suivre et les points à prendre en compte lorsque vous mettez à jour votre code de traitement.

Réfléchissez à votre approche de traitement

Le code de traitement de votre projet dépend du modèle de conversation et des fonctionnalités de la plate-forme de développement. Actions Builder introduit un nouveau modèle de conversation et de nouvelles fonctionnalités qui changent la manière dont vous créez une conversation et qui sont susceptibles de changer votre approche de traitement du projet. Cette section décrit les fonctionnalités d'Actions Builder qui diffèrent de celles de Dialogflow et en quoi ces différences modifient la manière dont vous implémentez votre code de traitement.

  • Modifications apportées à l'implémentation des conversations

    • Dialogflow utilise un flux de conversation d'intent-intent contextuel, dans lequel les intents individuels sont mis en correspondance en fonction des phrases d'entraînement et des contextes d'entrée/de sortie de l'intent précédent.
    • Le flux de conversation d'Actions Builder utilise des scènes comme conteneur pour les tours de conversation. Dans une scène, des intents spécifiques peuvent être mis en correspondance, tout comme les contextes de Dialogflow. Les transitions définissent la scène vers laquelle effectuer la transition, en fonction de l'intent mis en correspondance.
  • Fonctions de webhook réutilisables

    • Dans Dialogflow, les gestionnaires de webhooks sont liés à des intents individuels. Si une logique supplémentaire est nécessaire, vous devez créer un intent distinct pour gérer la nouvelle fonction.
    • Les gestionnaires de webhooks ont des noms de gestionnaire personnalisés dans Actions Builder. Cette fonctionnalité vous permet d'appeler une fonction à partir de plusieurs scènes de votre projet.
  • Autres façons d'appeler des webhooks

    • L'approche d'un webhook par intent dans Dialogflow nécessite des intents supplémentaires pour faciliter la logique de conversation dans le traitement de votre projet.
    • Action Builder vous permet d'effectuer des appels de webhook à partir de plusieurs endroits d'une scène: lors de l'entrée, en fonction de conditions, en fonction du remplissage d'emplacements, et via une correspondance d'intent personnalisée et système.

Mettre à jour votre code de traitement

Le code de traitement de chaque action varie en fonction de la complexité et de l'objectif de l'action. Toutefois, vous devez suivre des étapes générales pour mettre à jour votre code:

  1. Téléchargez et installez la dernière version de la bibliothèque cliente.

    npm install @assistant/conversation
    
  2. Mettez à jour les instructions require dans votre code. Exemple :

    const {
      SimpleResponse,
      BasicCard,
      Image,
    } = require('actions-on-google');
    

    Le code ci-dessus est mis à jour comme suit:

    const {
      conversation,
      Simple,
      Card,
      Image,
    } = require('@assistant/conversation');
    
  3. Refactorisez votre code pour utiliser les nouvelles méthodes.

    • Gestionnaires d'intents: app.intentapp.handle
    • Réponse/invites: conv.askconv.add
    • Fonctionnalités de la surface/de l'appareil: conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')conv.device.capabilities.includes('RICH_RESPONSE')
    • Stockage des données: conv.dataconv.session.params
    • Types de réponses:

      • SimpleResponseSimple
      • BasicCardCard
      • SuggestionsSuggestion
    • Paramètres d'intent: conv.parameters[KEY]conv.intent.parameters[KEY].resolved

    • Transitions de contextes/de scènes: conv.contexts.set(content_name, 5);conv.scene.next.name = 'context_name'

    • Terminer la conversation: conv.close(response)conv.add.response; conv.scene.next.name = 'actions.page.END_CONVERSATION'

  4. Mettre à jour le code de réponse pour utiliser les nouvelles primitives de réponse du compilateur. Exemple :

    conv.ask(new Suggestions (['a', 'b']));
    

    Le code ci-dessus est mis à jour comme suit:

    for (suggestion of ['a', 'b']) {
      conv.add.(new Suggestion({title: suggestion}))
    }
    

Consultez le mappage de traduction du code de traitement ci-dessous pour obtenir la liste complète des méthodes.

Utilisez les pages suivantes pour comparer les charges utiles de requête et de réponse:

Configurer des webhooks

Après avoir mis à jour votre fulfillment, activez les appels webhook dans toutes les scènes de votre projet. Bien que l'outil de migration migre les paramètres de webhook de votre intent Dialogflow, vous devez examiner ces paramètres, car votre code de fulfillment et vos fonctions de webhook refactorisés peuvent changer.

Dans Dialogflow, les webhooks sont activés dans les intents, et votre code de fulfillment inclut les gestionnaires et les fonctions à exécuter, lorsque l'intent est mis en correspondance. Dans Actions Builder, un webhook peut se déclencher dans des intents d'appel ou des scènes, ce qui envoie une requête à votre point de terminaison de traitement. Votre fulfillment contient des gestionnaires de webhooks qui traitent la charge utile JSON dans la requête. Vous pouvez déclencher des webhooks dans les situations suivantes:

  • Après une correspondance d'intent d'appel
  • Pendant l'entrée sur scène
  • Après qu'une condition est évaluée à true dans l'étape de condition d'une scène
  • Au cours de l'étape de classement d'emplacements d'une scène
  • Après une correspondance d'intent à l'étape d'entrée d'une scène

Lorsque vous passez de Dialogflow à Actions Builder, vous devez prendre en compte les modifications apportées à votre flux de conversation, car cela peut changer quand et où vous passez des appels webhook.

Pour activer un appel webhook, procédez comme suit:

  1. Sélectionnez la scène à partir de laquelle vous souhaitez appeler le webhook.
  2. Choisissez l'état pour lequel vous souhaitez activer le webhook. Vous pouvez activer un webhook pour un ou plusieurs des états suivants:

    • À l'entrée
    • Condition
    • Remplissage de cases
    • Gestion des intentions de l'utilisateur
    • Gestion des intents du système
  3. Cochez l'option Call your webhook (Appeler votre webhook).

  4. Saisissez le gestionnaire de webhook que vous avez défini dans votre code de fulfillment.

  5. Cliquez sur Enregistrer.

  6. Accédez à Test pour tester les modifications apportées à l'appel webhook et au traitement.

Carte de traduction du code de traitement

Le tableau ci-dessous montre comment la syntaxe du code de fulfillment de Dialogflow se traduit en code Actions Builder. Pour obtenir la liste complète des méthodes, consultez la documentation de référence sur Actions Builder et le SDK.

Dialogflow Actions Builder
conv.data conv.session.params
conv.ask conv.add
conv.close conv.scene.next.name = 'actions.scene.END_CONVERSATION'
conv.user.storage conv.user.params
conv.input.raw conv.intent.query
conv.parameters conv.intent.params[key].resolved
conv.arguments.get('MEDIA_STATUS')
mediaStatus.status==='FINISHED'
conv.intent.params['MEDIA_STATUS']
mediaStatus.resolved==='FINISHED'
Événements Gestion des intents système:
MEDIA_STATUS_FINISHED
MEDIA_STATUS_FAILED
conv.device.capabilities.has("actions.capability.SCREEN_OUTPUT") conv.device.capabilities.includes("RICH_RESPONSE")
app.intent app.handler
app.middleware app.middleware
Réponse simple prompt -firstSimple
Réponse enrichie prompt -content -card: object -image: object -table: object -media: object -suggestions -link

Vous trouverez ci-dessous des informations sur d'autres outils: