Règle SetDialogflowResponse

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d'Apigee Edge.

icône de la règle

Présentation

La règle "SetDialogflowResponse" facilite l'intégration de Dialogflow à Apigee. Pour en savoir plus, consultez la page Intégrer Apigee à Contact Center AI.

La règle "SetDialogflowResponse" traite et met en forme les données de réponse de vos systèmes backend avant de les envoyer en tant que WebhookResponse à l'agent Dialogflow. Un agent Dialogflow nécessite la réponse "WebhookResponse" dans un format spécifique, et la règle "SetDialogflowResponse" crée la réponse au format requis. La règle crée une réponse "WebhookResponse" au format requis pour un agent Dialogflow. "WebhookResponse" comporte des expressions en langage naturel et d'autres paramètres que l'agent Dialogflow comprend.

Si vous êtes un intégrateur de services de backend, vous n'avez pas besoin de comprendre le format de la réponse Webhook Dialogflow. La règle "SetDialogflowResponse" prête à l'emploi gère le traitement des données de réponse de manière transparente.

Cette règle est une règle extensible et son utilisation peut avoir des conséquences sur le coût ou l'utilisation, en fonction de votre licence Apigee. Pour en savoir plus sur les types de règles et les implications en termes d'utilisation, consultez la section Types de règles.

<SetDialogflowResponse>

Définit une règle SetDialogflowResponse.

Valeur par défaut N/A
Obligatoire ? Obligatoire
Type Objet complexe
Élément parent N/A
Éléments enfants <DisplayName>
<Source>
<DialogflowVersion>
<NaturalLanguageResponse>
<Parameters>
<IgnoreUnresolvedVariables>

Le tableau suivant fournit une description détaillée de tous les éléments enfants de l'élément SetDialogflowResponse :

Élément enfant Obligatoire ? Description
<DisplayName> Facultatif Nom personnalisé de la règle.
<Source> Facultatif Spécifie la variable à analyser.
<DialogflowVersion> Facultatif Spécifie la version de Dialogflow.
<NaturalLanguageResponse> Facultatif Encapsule tout le contenu devant être envoyé en tant qu'objet WebhookResponse.FulfillmentResponse.
<Parameters> Facultatif Élément parent de <Parameter>. Définit l'ensemble de paramètres à définir dans la réponse du webhook.
<IgnoreUnresolvedVariables> Facultatif Spécifie si le traitement s'arrête lorsqu'une variable non résolue est rencontrée.
Autres éléments enfants
<MergeBehavior> Facultatif Spécifie le comportement de fusion des messages de réponse.
<Header> Facultatif Extrait la valeur du champ spécifié dans l'en-tête de réponse.
<JSONPath> Facultatif Extrait la valeur du chemin JSON spécifié.
<Parameter> Obligatoire Spécifie un paramètre à définir dans l'objet sessionInfo.parameters de la réponse du webhook.
<Phrase> Obligatoire Spécifie la phrase (texte) à définir dans l'objet fulfillmentResponse.messages de la réponse du webhook.
<Phrases> Facultatif Élément parent de <Phrase>. Définit l'ensemble des expressions en langage naturel à définir dans la réponse du Webhook.
<Ref> Facultatif Extrait la valeur de la variable de référence spécifiée.
<Value> Facultatif Définit un texte personnalisé sur le paramètre spécifié.

Exemple

L'exemple suivant montre un exemple de règle "SetDialogflowResponse" et la réponse "WebhookResponse" envoyée à l'agent Dialogflow :

Syntaxe

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SetDialogflowResponse continueOnError="false" enabled="true"
        name="POLICY_NAME">
    <!-- The display name for this policy -->
    <DisplayName>DISPLAY_NAME</DisplayName>
    <!-- The message variable from which the policy extracts the required information -->
    <Source>MESSAGE_VARIABLE</Source>
    <!-- The version of Dialogflow for which this response policy is written up.
         This policy supports only the CX version. This element is optional and
         defaults to CX if unspecified -->
    <DialogflowVersion>DIALOGFLOW_VERSION</DialogflowVersion>
    <!-- A container object to encapsulate all content needed for a natural
         language response to be returned to Dialogflow from the Southbound API -->
    <NaturalLanguageResponse>
        <!-- Defines the merge behavior for existing responses and new responses.
             Refer here for more details -->
        <MergeBehavior>MERGE_BEHAVIOR</MergeBehavior>
        <!-- An ordered list of natural language phrases to be returned to
             Dialogflow from the Southbound API -->
        <Phrases>
            <!-- A phrase is a natural language phrase that Dialogflow agents
                 can send back to their caller/chatting customer -->
            <Phrase>
                <!-- A phrase can be extracted from the response JSON payload of a
                     service callout -->
                <JSONPath>JSON_PATH</JSONPath>
            </Phrase>
            <Phrase>
                <!-- A phrase can be extracted from the response headers of a
                     service callout -->
                <Header name="HEADER_NAME"/>
            </Phrase>
            <Phrase>
                <!-- A phrase refer to the value of an existing flow variable -->
                <Ref>EXISTING_FLOW_VARIABLE</Ref>
            </Phrase>
            <Phrase>
                <!-- A phrase can be static text -->
                <Value>CUSTOM_TEXT</Value>
            </Phrase>
        </Phrases>
    </NaturalLanguageResponse>
    <!-- A container object defining the parameters to be set as session parameters
         in the Webhook response sent to Dialogflow -->
    <Parameters>
        <!-- Defines a single parameter to be set in sessionInfo.parameters object
             of the WebhookResponse object. The name of the parameter is defined
             as an attribute -->
        <Parameter name="PARAMETER_NAME">
            <!-- A parameter's value can be extracted from the response JSON
                 payload of a service callout -->
            <JSONPath>JSON_PATH</JSONPath>
        </Parameter>
        <Parameter name="PARAMETER_NAME">
            <!-- A parameter's value can be extracted from the response headers
                 of a service callout -->
            <Header name="HEADER_NAME"/>
        </Parameter>
        <Parameter name="PARAMETER_NAME">
            <!-- A parameter's value can be refer to the value of an existing flow
                 variable -->
            <Ref>EXISTING_FLOW_VARIABLE</Ref>
        </Parameter>
        <Parameter name="PARAMETER_NAME">
            <!-- A parameter's value can be static text -->
            <Value>CUSTOM_TEXT</Value>
        </Parameter>
    </Parameters>
    <IgnoreUnresolvedVariables>BOOLEAN_VALUE</IgnoreUnresolvedVariables>
</SetDialogflowResponse>
      

Règle SetDialogflowResponse

L'exemple suivant montre la définition de la règle SetDialogflowResponse :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SetDialogflowResponse continueOnError="false" enabled="true"
        name="CCAIDialogflowResponse-InsuranceAgent">
    <DisplayName>Insurance Agent Webhook Response Policy</DisplayName>
    <Source>myMessageVar</Source>
    <DialogflowVersion>CX</DialogflowVersion>
    <NaturalLanguageResponse>
        <MergeBehavior>APPEND</MergeBehavior>
        <Phrases>
            <Phrase>
                <JSONPath>$.claim.status.text</JSONPath>
            </Phrase>
            <Phrase>
                <Header name="X-Response-Text"/>
            </Phrase>
            <Phrase>
                <Ref>myVar</Ref>
            </Phrase>
            <Phrase>
                <Value>You call is important to us</Value>
            </Phrase>
        </Phrases>
    </NaturalLanguageResponse>
    <Parameters>
        <Parameter name="claimStatus">
            <JSONPath>$.claim.status.value</JSONPath>
        </Parameter>
        <Parameter name="claimAmount">
            <JSONPath>$.claim.amount</JSONPath>
        </Parameter>
        <Parameter name="timeSpent">
            <Header name="X-Time-Spent"/>
        </Parameter>
        <Parameter name="myVar">
            <Ref>dialogflow.my.var</Ref>
        </Parameter>
        <Parameter name="responder">
            <Value>SYSTEM</Value>
        </Parameter>
    </Parameters>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</SetDialogflowResponse>

Accédez à l'exemple suivant pour afficher la réponse webhook créée par cette règle.

Réponse webhook

L'exemple suivant illustre une réponse "WebhookResponse" envoyée à l'agent Dialogflow :

{
    "fulfillmentResponse": {
        "mergeBehavior": "APPEND",
        "messages": [{
            "text": {
                "text": ["Your claim is currently being processed",
                          "Please call back in a couple of days"]
            }
        }]
    },
    "sessionInfo": {
        "parameters": {
            "claimStatus": "PROCESSING",
            "claimAmount": 1000
        }
    }
}

Cet élément possède les attributs suivants qui sont communs à toutes les règles :

Attribut Par défaut Obligatoire ? Description
name ND Obligatoire

Nom interne de la règle. La valeur de l'attribut name peut contenir des lettres, des chiffres, des espaces, des tirets, des traits de soulignement et des points. Cette valeur ne peut pas dépasser 255 caractères.

Vous pouvez également utiliser l'élément <DisplayName> pour ajouter un libellé à la règle dans l'éditeur de proxy de l'interface utilisateur de gestion avec un nom différent, en langage naturel.

continueOnError faux Facultatif Définissez sur false pour afficher une erreur en cas d'échec d'une règle. Il s'agit du comportement attendu pour la plupart des règles. Définissez sur true pour que l'exécution du flux se poursuive même après l'échec d'une règle. Voir aussi :
enabled true Facultatif Définissez sur true pour appliquer la règle. Définissez sur false pour désactiver la règle. La règle ne sera pas appliquée même si elle reste associée à un flux.
async   faux Obsolète Cet attribut est obsolète.

Référence d'élément enfant

Cette section décrit les éléments enfants de <SetDialogflowResponse>.

<DisplayName>

Utilisez-le, en plus de l'attribut name, pour appliquer un libellé à la règle dans l'éditeur de proxys de l'interface de gestion en utilisant un nom différent et plus naturel.

L'élément <DisplayName> est commun à toutes les règles.

Valeur par défaut N/A
Obligatoire ? Facultatif. Si vous omettez <DisplayName>, la valeur de l'attribut name de la règle est utilisée.
Type Chaîne
Élément parent <PolicyElement>
Éléments enfants Aucun

L'élément <DisplayName> utilise la syntaxe suivante :

Syntaxe

<PolicyElement>
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  ...
</PolicyElement>

Exemple

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

L'élément <DisplayName> ne comporte aucun attribut ni élément enfant.

<Source>

Spécifie la variable à analyser. La valeur <Source> est définie sur message par défaut. La valeur message est sensible au contexte. Dans un flux de requête, message renvoie le message de requête. Dans un flux de réponse, message renvoie le message de réponse.

Cette règle sert souvent à extraire des informations d'un message de requête ou de réponse, mais vous pouvez l'utiliser pour extraire des informations de n'importe quelle variable. Par exemple, vous pouvez l'utiliser pour extraire des informations d'une entité créée par la règle AccessEntity, des données renvoyées par la règle ServiceCallout, ou extraire des informations d'un objet XML ou JSON.

Si <Source> ne peut être résolu ou est associé à un type qui n'est pas un message, la règle échoue et une erreur d'exécution est générée.

Valeur par défaut N/A
Obligatoire ? Facultatif
Type Chaîne
Élément parent <SetDialogflowResponse>
Éléments enfants Aucun
L'élément <Source> utilise la syntaxe suivante :

Syntaxe

<Source>MESSAGE_VARIABLE</Source>

Exemple

L'exemple suivant définit la source sur myMessageVar :

<Source>myMessageVar</Source>

<DialogflowVersion>

Spécifie la version de Dialogflow. La règle "SetDialogflowResponse" n'est compatible qu'avec la version CX. Si vous ne spécifiez pas cet élément dans votre règle, la version par défaut est CX.

Valeur par défaut N/A
Obligatoire ? Facultatif
Type Chaîne
Élément parent <SetDialogflowResponse>
Éléments enfants Aucun
L'élément <DialogflowVersion> utilise la syntaxe suivante :

Syntaxe

<DialogflowVersion>DIALOGFLOW_VERSION</DialogflowVersion>

Exemple

L'exemple suivant définit "DialogflowVersion" sur CX :

<DialogflowVersion>CX</DialogflowVersion>

<IgnoreUnresolvedVariables>

Détermine si le traitement s'arrête lorsqu'une variable non résolue est rencontrée.

Valeur par défaut True
Obligatoire ? Facultatif
Type Booléen
Élément parent <SetDialogflowResponse>
Éléments enfants Aucun

Définissez la valeur sur true pour ignorer les variables non résolues et poursuivre le traitement, sinon false. La valeur par défaut est true.

Définir <IgnoreUnresolvedVariables> sur true n'est pas la même chose que définir la valeur continueOnError de <SetDialogflowResponse> sur true. Si vous définissez continueOnError sur true, Apigee ignore toutes les erreurs, et pas seulement les erreurs dans les variables.

L'élément <IgnoreUnresolvedVariables> utilise la syntaxe suivante :

Syntaxe

 <IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>

Exemple

L'exemple suivant définit <IgnoreUnresolvedVariables> sur false :

       <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<MergeBehavior>

Définit le comportement de fusion des messages de réponse. Vous pouvez spécifier l'une des valeurs suivantes :

  • APPEND : ajoute les messages à la liste des messages en attente d'envoi à l'utilisateur.
  • REPLACE : remplace les anciens messages par des messages plus récents dans la liste des messages en attente d'envoi à l'utilisateur.
Si vous ne spécifiez pas l'élément, le comportement par défaut est APPEND.
Valeur par défaut N/A
Obligatoire ? Facultatif
Type Chaîne
Élément parent <NaturalLanguageResponse>
Éléments enfants Aucun
L'élément <MergeBehavior> utilise la syntaxe suivante :

Syntaxe

<MergeBehavior>BEHAVIOR</MergeBehavior>

Exemple

L'exemple suivant définit le comportement de fusion sur APPEND :

<MergeBehavior>APPEND</MergeBehavior>

<NaturalLanguageResponse>

Encapsule toutes les réponses en langage naturel que vous souhaitez envoyer à l'agent Dialogflow.

Valeur par défaut N/A
Obligatoire ? Facultatif
Type Objet complexe
Élément parent <SetDialogflowResponse>
Éléments enfants <MergeBehavior>
<Phrases>

<Parameters>

Définit l'ensemble de paramètres à définir dans la réponse du webhook. Le nom du paramètre est un attribut de l'élément <Parameter>.

Valeur par défaut N/A
Obligatoire ? Facultatif
Type Objet complexe
Élément parent <SetDialogflowResponse>
Éléments enfants <Parameter>

<Parameter>

Spécifie un paramètre à définir dans l'objet sessionInfo.parameters de la réponse du webhook.

Vous pouvez spécifier un texte statique en tant que valeur de paramètre ou extraire la valeur de l'un des champs suivants de la réponse :

  • Champs d'en-tête de réponse
  • Données utiles JSON
  • Variables de flux

Vous devez définir un élément <Parameter> distinct pour chaque valeur que vous souhaitez extraire.

Valeur par défaut N/A
Obligatoire ? Obligatoire
Type Objet complexe
Élément parent <Parameters>
Éléments enfants <Header>
<JSONPath>
<Ref>
<Value>
L'élément <Parameter> possède les attributs suivants :
Attribut Description Obligatoire ? Type
name Nom de la variable à créer avec ce paramètre. Oui Chaîne

L'élément <Parameter> utilise la syntaxe suivante :

Syntaxe

<Parameters>
  <Parameter name="PARAMETER_NAME">
  <Header name="HEADER_NAME"/>
</Parameter>
<Parameter name="PARAMETER_NAME">
  <JSONPath>JSON_PATH</JSONPath>
</Parameter>
<Parameter name="PARAMETER_NAME">
  <Ref>EXISTING_FLOW_VARIABLE</Ref>
</Parameter>
<Parameter name="PARAMETER_NAME">
  <Value>CUSTOM_TEXT</Value>
</Parameter>
</Parameters>

Extraire la valeur du champ d'en-tête

Cet exemple définit le paramètre timeSpent sur la valeur du champ d'en-tête X-Time-Spent.

<Parameter name="timeSpent">
     <Header name="X-Time-Spent"/>
</Parameter>

Extraire la valeur du chemin JSON

Cet exemple définit le paramètre claimAmount sur la valeur du champ claim.amount de la charge utile JSON.

<Parameter name="claimAmount">
   <JSONPath>$.claim.amount</JSONPath>
</Parameter>

Extraire la valeur de la variable de flux

Cet exemple définit le paramètre myVar sur la valeur de la variable de flux dialogflow.my.var.

<Parameter name="myVar">
   <Ref>dialogflow.my.var</Ref>
</Parameter>
       

Définir du texte personnalisé

Cet exemple définit la valeur du paramètre responder sur SYSTEM.

<Parameter name="responder">
   <Value>SYSTEM</Value>
</Parameter>

<Phrases>

Élément parent de <Phrase>. Définit la liste numérotée des expressions en langage naturel à définir dans la réponse du Webhook.

Valeur par défaut N/A
Obligatoire ? Facultatif
Type Objet complexe
Élément parent <NaturalLanguageResponse>
Éléments enfants <Phrase>

<Phrase>

Spécifie la phrase (texte) à définir dans l'objet fulfillmentResponse.messages de la réponse du Webhook.

Vous pouvez spécifier un texte statique en tant que valeur de d'expression ou extraire la valeur de l'un des champs suivants de la réponse :

  • Champs d'en-tête de réponse
  • Données utiles JSON
  • Variables de flux

Vous devez définir un élément <Phrase> distinct pour chaque valeur que vous souhaitez extraire.

Valeur par défaut N/A
Obligatoire ? Obligatoire
Type Objet complexe
Élément parent <Phrases>
Éléments enfants <Header>
<JSONPath>
<Ref>
<Value>

L'élément <Phrase> utilise la syntaxe suivante :

Syntaxe

<Phrases>
  <Phrase>
    <Header name="HEADER_NAME"/>
  </Phrase>
  <Phrase>
    <JSONPath>JSON_PATH</JSONPath>
  </Phrase>
  <Phrase>
    <Ref>EXISTING_FLOW_VARIABLE</Ref>
  </Phrase>
  <Phrase>
    <Value>CUSTOM_TEXT</Value>
  </Phrase>
</Phrases>

Extraire la valeur du champ d'en-tête

Cet exemple définit un texte en langage naturel dans la réponse sur la valeur du champ d'en-tête X-Response-Text.

<Phrase>
     <Header name="X-Response-Text"/>
</Phrase>

Extraire la valeur du chemin JSON

Cet exemple définit un texte en langage naturel dans la réponse sur la valeur du champ claim.status.text de la charge utile JSON.

<Phrase>
   <JSONPath>$.claim.status.text</JSONPath>
</Phrase>

Extraire la valeur de la variable de flux

Cet exemple définit un texte en langage naturel dans la réponse sur la valeur de la variable de flux myVar.

<Phrase>
   <Ref>myVar</Ref>
</Phrase>
       

Définir du texte personnalisé

Cet exemple ajoute le texte You call is important to us au texte en langage naturel dans la réponse.

<Phrase>
   <Value>You call is important to us</Value>
</Phrase>

Extrait la valeur du champ spécifié dans l'en-tête de réponse. Vous pouvez utiliser la valeur d'en-tête pour définir soit un texte en langage naturel, soit un paramètre de réponse.

  • Pour extraire la valeur d'en-tête en tant que réponse en langage naturel, spécifiez l'élément <Header> dans l'élément <Phrase>.
  • Pour extraire la valeur de l'en-tête en tant que paramètre de réponse, spécifiez l'élément <Header> dans l'élément <Parameter>.
Valeur par défaut N/A
Obligatoire ? Facultatif
Type Chaîne
Élément parent <Phrase>
<Parameter>
Éléments enfants Aucun
L'élément <Header> utilise la syntaxe suivante :

Syntaxe

<Header name="HEADER_FIELD"/>

Exemple 1

L'exemple suivant obtient la valeur du champ d'en-tête X-Response-Text en tant que réponse en langage naturel :

<Phrase>
  <Header name="X-Response-Text"/>
<Phrase/>

Exemple 2

L'exemple suivant obtient la valeur du champ d'en-tête X-Response-Text en tant que paramètre de réponse :

<Parameter name="timeSpent">
  <Header name="X-Response-Text"/>
<Parameter/>

La variable de flux timeSpent est définie sur la valeur du champ d'en-tête X-Response-Text.

L'élément <Header> possède les attributs suivants :

Attribut Description Obligatoire ? Type
nom Spécifie le nom de l'en-tête de réponse à partir duquel extraire la valeur. Obligatoire Chaîne

<JSONPath>

Extrait la valeur d'un chemin JSON dans une charge utile JSON de l'appel de service. Vous pouvez utiliser la valeur pour définir soit un texte en langage naturel, soit un paramètre de réponse.

  • Pour extraire la valeur JSON en tant que texte en langage naturel, spécifiez l'élément <JSONPath> dans l'élément <Phrase>.
  • Pour extraire la valeur JSON en tant que paramètre de réponse, spécifiez l'élément <JSONPath> dans l'élément <Parameter>.
Valeur par défaut N/A
Obligatoire ? Facultatif
Type Chaîne
Élément parent <Phrase>
<Parameter>
Éléments enfants Aucun
L'élément <JSONPath> utilise la syntaxe suivante :

Syntaxe

<JSONPath>JSON_PATH</JSONPath>

Exemple 1

L'exemple suivant obtient la valeur du champ JSON claim.status.text en tant que réponse en langage naturel :

<Phrase>
  <JSONPath>$.claim.status.text</JSONPath>
<Phrase/>

Exemple 2

L'exemple suivant obtient la valeur du champ JSON claim.amount en tant que paramètre de réponse :

<Parameter name="claimAmount">
  <JSONPath>$.claim.amount.</JSONPath>
<Parameter/>

La variable de flux claimAmount est définie sur la valeur du champ JSON {claim.amount}.

<Ref>

Extrait la valeur d'une variable de flux existante. Vous pouvez utiliser la valeur pour définir soit un texte en langage naturel, soit un paramètre de réponse.

  • Pour extraire la valeur d'une variable en tant que texte en langage naturel, spécifiez l'élément <Ref> dans l'élément <Phrase>.
  • Pour extraire la valeur d'une variable en tant que paramètre de réponse, spécifiez l'élément <Ref> dans l'élément <Parameter>.
Valeur par défaut N/A
Obligatoire ? Facultatif
Type Chaîne
Élément parent <Phrase>
<Parameter>
Éléments enfants Aucun
L'élément <Ref> utilise la syntaxe suivante :

Syntaxe

<Ref>EXISTING_FLOW_VARIABLE</Ref>

Exemple 1

L'exemple suivant récupère la valeur de la variable de flux myVar en tant que réponse en langage naturel :

<Phrase>
  <Ref>myVar</Ref>
<Phrase/>

Exemple 2

L'exemple suivant obtient la valeur de la variable de flux dialogflow.my.var en tant que paramètre de réponse :

<Parameter name="customVar">
  <Ref>dialogflow.my.var</Ref>
<Parameter/>

La variable de flux customVar est définie sur la valeur de la variable dialogflow.my.var.

<Value>

Définit une valeur littérale sur un texte en langage naturel ou un paramètre de réponse.

  • Pour définir la valeur littérale sous forme de texte en langage naturel, spécifiez l'élément <Value> dans l'élément <Phrase>.
  • Pour définir la valeur littérale en tant que paramètre de réponse, spécifiez l'élément <Value> dans l'élément <Parameter>.
Valeur par défaut N/A
Obligatoire ? Facultatif
Type Chaîne
Élément parent <Phrase>
<Parameter>
Éléments enfants Aucun
L'élément <Value> utilise la syntaxe suivante :

Syntaxe

<Value>CUSTOM_TEXT</Value>

Exemple 1

L'exemple suivant définit le texte littéral You call is important to us en tant que réponse en langage naturel :

<Phrase>
  <Value>You call is important to us</Value>
<Phrase/>

Exemple 2

L'exemple suivant définit le texte littéral SYSTEM en tant que paramètre de réponse :

<Parameter name="responder">
  <Value>SYSTEM</Value>
<Parameter/>

La variable de flux responder est définie sur SYSTEM.

Codes d'erreur

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés et les variables d'erreur définies par Apigee lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause
steps.setdialogflowresponse.ExecutionFailed 500 Cette erreur se produit lorsque l'exécution de la règle échoue en raison d'une exception générique. Le message d'erreur contient les détails de l'exception.
steps.setdialogflowresponse.InvalidSourceType 500 Cette erreur se produit si la variable spécifiée dans l'élément <source> n'est pas du type Message.
steps.setdialogflowresponse.MalformedInput 500 Cette erreur se produit lorsque le code JSON fourni à cette règle est incorrect ou non valide.
steps.setdialogflowresponse.SourceMessageNotAvailable 500 Cette erreur se produit si la variable message spécifiée dans l'élément Source de la règle est
    :
  • hors de portée (non disponible dans le flux spécifique où la règle est exécutée)
  • ou
  • impossible à résoudre (non définie)
steps.setdialogflowresponse.UnresolvedHeader 500 Cette erreur se produit si l'élément Header comporte un en-tête non valide. Par exemple, si l'élément Header a la valeur X-Response-Text et qu'il n'y a pas de X-Response-Text dans l'en-tête de réponse, vous obtiendrez cette erreur.
steps.setdialogflowresponse.UnresolvedJSONPath 500 Cette erreur se produit si l'élément JSONPath comporte un chemin non valide. Par exemple, si l'élément JSONPath a la valeur {claim.status.value} et qu'il n'y a pas d'objet status dans la charge utile JSON, vous obtiendrez cette erreur.
steps.setdialogflowresponse.UnresolvedVariable 500

Cette erreur se produit si une variable spécifiée dans la règle "SetDialogflowResponse" est :

  • hors du champ d'application (non disponible dans le flux spécifique où la règle est exécutée) ;
  • ou
  • impossible à résoudre (non définie)

Erreurs de déploiement

Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause
UnsupportedOperation Cette erreur se produit si vous avez spécifié une version de Dialogflow non compatible dans l'élément DialogflowVersion. La règle "SetDialogflowResponse" n'est compatible qu'avec la version CX.

Variables de panne

Chaque fois qu'une règle comporte des erreurs d'exécution, Apigee génère des messages d'erreur. Vous pouvez afficher ces messages d'erreur dans la réponse d'erreur. Souvent, les messages d'erreur générés par le système peuvent ne pas être pertinents dans le contexte de votre produit. Vous pouvez personnaliser les messages d'erreur en fonction du type d'erreur pour rendre les messages plus significatifs.

Pour personnaliser les messages d'erreur, vous pouvez utiliser des règles d'erreur ou la règle RaiseFault. Pour en savoir plus sur les différences entre les règles d'erreur et la règle RaiseFault, consultez la section Règles d'erreur et règle RaiseFault. Vous devez vérifier les conditions à l'aide de l'élément Condition dans les règles d'erreur et dans la règle RaiseFault. Apigee fournit des variables d'erreur propres à chaque règle et les valeurs des variables d'erreur sont définies lorsqu'une règle déclenche des erreurs d'exécution. En utilisant ces variables, vous pouvez vérifier des conditions d'erreur spécifiques et prendre les mesures appropriées. Pour en savoir plus sur la vérification des conditions d'erreur, consultez la page Conditions de création.

Le tableau suivant décrit les variables d'erreur spécifiques à cette règle.

Variables Où : Exemple
fault.name="FAULT_NAME" FAULT_NAME est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "UnresolvedVariable"
setdialogflowresponse.POLICY_NAME.failed POLICY_NAME est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. setdialogflowresponse.My-Set-Dialogflow-Response.failed = true
Pour en savoir plus sur les erreurs de règles, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Articles associés

Les implémentations de référence des proxys Apigee et des flux partagés qui montrent l'utilisation de la règle "SetDialogflowResponse" sont disponibles sur Apigee GitHub. Pour en savoir plus, consultez la page Implémentations de référence pour l'IA conversationnelle.