Guide de démarrage rapide : Fulfillment

Ce guide vous explique comment intégrer votre agent aux services à l'aide du fulfillment. L'intégration de votre service vous permet d'effectuer des actions basées sur les expressions des utilisateurs finaux et de leur renvoyer des réponses dynamiques.

Avant de commencer

Si vous ne comptez pas utiliser le fulfillment, vous pouvez ignorer ce guide de démarrage rapide.

Ces étapes utilisent Cloud Functions et exigent des connaissances de base sur Node.js. Si vous souhaitez créer un fulfillment à l'aide de votre propre serveur ou d'un autre langage, consultez la présentation des fulfillments, qui est plus détaillée.

Avant de lire ce guide, procédez comme suit :

  1. Consultez la section Principes de base de Dialogflow.
  2. Effectuez la procédure de configuration.
  3. Suivez la procédure décrite dans le guide de démarrage rapide Créer un agent. Les étapes ci-dessous continuent d'utiliser le même agent. Si vous n'avez plus cet agent, vous pouvez télécharger build-agent-quickstart.zip et importer le fichier.

L'éditeur intégré

La console Dialogflow dispose d'un éditeur de code intégré, appelé éditeur intégré, qui vous permet de créer du code de fulfillment et de le déployer sur Cloud Functions. Cloud Functions est payant, mais le service est disponible sans frais jusqu'à un nombre important d'appels mensuels. Notez que vous devez toujours enregistrer et fournir un compte de facturation valide. Vous pouvez résilier à tout moment.

Lorsque vous activez initialement l'éditeur intégré, le code de fulfillment Node.js est prérempli avec des gestionnaires par défaut pour les intents par défaut qui sont inclus pour tous les agents. Le code contient également des instructions commentées permettant d'ajouter des gestionnaires pour les intents définis par le développeur.

L'éditeur intégré est destiné aux tests et au prototypage de fulfillment simples. Une fois que vous êtes prêt à créer une application de production, vous devez créer un service de webhook.

Activer et déployer le fulfillment à l'aide de l'éditeur intégré

Pour activer et déployer le code de fulfillment à l'aide de l'éditeur intégré, procédez comme suit :

  1. Cliquez sur Fulfillment dans le menu de la barre latérale gauche.
  2. Définissez l'éditeur intégré sur Activé.
  3. Si vous n'avez pas activé la facturation lors des étapes de configuration, vous êtes invité à le faire maintenant. Des frais sont associés à Cloud Functions, mais le service est disponible sans frais jusqu'à un nombre important d'appels mensuels. Notez que vous devez toujours enregistrer et fournir un compte de facturation. Vous pouvez résilier à tout moment.
  4. Cliquez sur Déployer en bas du formulaire et attendez que les boîtes de dialogue indiquent qu'il a été déployé.

Vous devez activer le fulfillment pour chaque intent nécessitant celui-ci. Pour activer le fulfillment pour l'intent d'accueil par défaut, procédez comme suit :

  1. Cliquez sur Intents dans le menu de la barre latérale gauche.
  2. Cliquez sur Intent d'accueil par défaut.
  3. Faites défiler jusqu'à la section Fulfillment et cochez l'option Activer l'appel webhook pour cet intent.

  4. Cliquez sur le bouton Save (Enregistrer) et attendez que la boîte de dialogue Agent Training (Entraînement de l'agent) indique que l'entraînement est terminé.

Vous pouvez maintenant tester le fulfillment dans le simulateur. Saisissez Hi dans le simulateur, et il renvoie Welcome to my agent!. Cette réponse provient du webhook de fulfillment que vous venez de déployer. Plus particulièrement, elle provient du code suivant :

function welcome(agent) {
  agent.add(`Welcome to my agent!`);
}

Créer un gestionnaire de fulfillment personnalisé

Au cours des étapes ci-dessus, vous avez utilisé un gestionnaire fourni par le code de l'éditeur intégré par défaut. Pour créer un gestionnaire personnalisé, procédez comme suit :

  1. Activez le fulfillment pour l'intent get-agent-name que vous avez créé lors des étapes précédentes.
  2. Cliquez sur Fulfillment dans le menu de la barre latérale gauche et examinez le code dans l'éditeur intégré.
  3. Localisez la ligne suivante :

    exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
    

    La fonction onRequest traite toutes les requêtes de Dialogflow. Dans le corps de cette fonction, des fonctions de gestionnaire spécifiques sont définies. Ces fonctions de gestionnaire sont appelées lorsque les intents associés sont mis en correspondance. Par exemple, la fonction utilisée dans la section précédente est la suivante : function welcome(agent).

  4. Sous les gestionnaires existants, ajoutez cette fonction pour l'intent get-agent-name :

    function getAgentNameHandler(agent) {
      agent.add('From fulfillment: My name is Dialogflow!');
    }
    
  5. Sous les définitions de la fonction de gestionnaire, vous verrez des appels intentMap.set(). Ces appels associent des gestionnaires spécifiques à des intents en fonction de leur nom. Par exemple, l'appel intentMap.set('Default Welcome Intent', welcome) associe le gestionnaire welcome à l'intent nommé Default Welcome Intent.

  6. Sous les appels intentMap.set existants, ajoutez cette ligne pour l'intent get-agent-name :

    intentMap.set('get-agent-name', getAgentNameHandler);
    
  7. Cliquez sur Déployer au bas de la page.

  8. Saisissez What's your name? dans le simulateur. La réponse From fulfillment: My name is Dialogflow! est envoyée par votre nouveau gestionnaire.

Accéder aux valeurs des paramètres

Au cours des étapes précédentes, vous avez créé un intent set-language destiné à identifier le langage humain et les langages de programmation. L'intent utilise les paramètres language et language-programming. Dans cette section, vous allez accéder aux valeurs de ces paramètre dans votre gestionnaire de fulfillment.

Pour ajouter le gestionnaire, procédez comme suit :

  1. Activez le fulfillment pour l'intent set-language.
  2. Cliquez sur Fulfillment dans le menu de la barre latérale gauche.
  3. Comme pour les étapes ci-dessus, ajoutez le gestionnaire suivant et l'appel intentMap :

    function languageHandler(agent) {
        const language = agent.parameters.language;
        const programmingLanguage = agent.parameters['language-programming'];
        if (language) {
            agent.add(`From fulfillment: Wow! I didn't know you knew ${language}`);
        } else if (programmingLanguage) {
            agent.add(`From fulfillment: ${programmingLanguage} is cool`);
        } else {
            agent.add(`From fulfillment: What language do you know?`);
        }
    }
    
    intentMap.set('set-language', languageHandler);
    
  4. Cliquez sur Déployer.

Ce gestionnaire récupère les paramètres language et language-programming et les stocke dans des variables. Il extrait ces valeurs de l'attribut agent.parameters, qui est un objet contenant tous les noms et toutes les valeurs de paramètre spécifiés par les utilisateurs finaux dans leurs requêtes.

Pour l'essayer, saisissez I know how to speak German dans le simulateur.