Cette page s'applique à Apigee et à Apigee hybrid.
Consultez
la documentation d' Apigee Edge.
La règle "ParseDialogflowRequest" facilite l'intégration de Dialogflow à Apigee. Pour en savoir plus, consultez la page Intégrer Apigee à Contact Center AI.
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.
La règle "ParseDialogflowRequest" traite la requête WebhookRequest à partir d'un agent Dialogflow avant d'envoyer les données de requête à vos systèmes backend. La règle extrait les données de "WebhookRequest" dans les variables de flux qui sont disponibles pour toute la durée de l'appel d'API. Vous pouvez utiliser les variables dans vos appels, recherches ou logiques orchestrée ultérieurs. Cette règle est particulièrement utile si vous souhaitez que l'agent Dialogflow interagisse avec vos anciens systèmes backend. Avant d'envoyer les données de l'agent aux systèmes backend, vous pouvez les analyser et les structurer de manière à ce que vos systèmes backend puissent les utiliser.
Si vous êtes un intégrateur de services de backend, vous n'avez pas besoin de comprendre le format de la requête Webhook Dialogflow. La règle "ParseDialogflowRequest" prête à l'emploi gère le traitement des données de la requête de manière transparente.
Pour accéder à la requête "WebhookRequest" de votre agent Dialogflow dans Apigee, vous devez définir l'URL de webhook (fulfillment) de l'agent sur le point de terminaison du proxy (ProxyEndPoint) que vous avez configuré dans Apigee. Le point de terminaison du proxy doit être accessible au public. Pour en savoir plus, consultez la section Conditions requises pour le service de webhook.
<ParseDialogflowRequest>
Définit une règle "ParseDialogflowRequest".
| Valeur par défaut | N/A |
| Obligatoire ? | Obligatoire |
| Type | Objet complexe |
| Élément parent | ND |
| Éléments enfants |
<DialogflowVersion><DisplayName><VariablePrefix> |
Le tableau suivant fournit une description détaillée des éléments enfants spécifiques à la règle "ParseDialogflowRequest" :
| Élément enfant | Obligatoire ? | Description |
|---|---|---|
<VariablePrefix> |
Facultatif | Spécifie un préfixe personnalisé pour les variables de flux. |
<DialogflowVersion> |
Facultatif | Spécifie la version de Dialogflow. |
Exemple
L'exemple suivant montre un exemple de requête de webhook, la règle ParseDialogflowRequest correspondante et les variables de flux générées après l'application de la règle :
Syntaxe
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ParseDialogflowRequest continueOnError="false" enabled="true" name="POLICY_NAME"> <!-- The display name for this policy --> <DisplayName>DISPLAY_NAME</DisplayName> <!-- The optional prefix to be added to all variables created from the Dialogflow Webhook request. Note that all variables created from the WebhookRequest object will be within a container named "google.dialogflow" --> <VariablePrefix>CUSTOM_PREFIX</VariablePrefix> <!-- The version of Dialogflow for which this request 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> </ParseDialogflowRequest>
Requête de webhook
L'exemple suivant montre la requête webhook (au format JSON) d'un agent Dialogflow.
{
"fulfillmentInfo": {
"tag": "check-claim-status"
},
"sessionInfo": {
"session": "projects/apigee-test/locations/global/agents/ea45003d-3f5c-46ba-ac6b-f4c6dc8db707/sessions/5ea2e8-7c1-cf4-2cf-8e4d89e72",
"parameters": {
"claimId": "1234",
"policyId": "abcd"
}
},
"sentimentAnalysisResult": {
"score": -0.7,
"magnitude": 0.7
}
}Pour afficher les différents champs que vous pouvez configurer dans la requête, consultez la section WebhookRequest.
Passez à l'exemple suivant pour voir la configuration de la règle "ParseDialogflowRequest".
Règle ParseDialogflowRequest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ParseDialogflowRequest continueOnError="false" enabled="true" name="DialogflowRequest-InsuranceAgent"> <DisplayName>Insurance Agent Webhook Request Policy</DisplayName> <VariablePrefix>my-prefix</VariablePrefix> <DialogflowVersion>CX</DialogflowVersion> </ParseDialogflowRequest>
Accédez à l'exemple suivant pour afficher les variables de flux créées par la règle.
Variables de flux
google.dialogflow.my-prefix.fulfillment.tag = "check-claim-status" google.dialogflow.my-prefix.session.id = "5ea2e8-7c1-cf4-2cf-8e4d89e72" google.dialogflow.my-prefix.session.project.id = "apigee-test" google.dialogflow.my-prefix.session.agent.id = "ea45003d-3f5c-46ba-ac6b-f4c6dc8db707" google.dialogflow.my-prefix.session.parameters.claimId = "1234" google.dialogflow.my-prefix.session.parameters.policyId = "abcd" google.dialogflow.my-prefix.sentimentAnalysisResultScore = -0.7 google.dialogflow.my-prefix.sentimentAnalysisResultMagnitude = 0.7
Toutes les variables de flux générées commencent par google.dialogflow suivi du préfixe (my-prefix), comme spécifié dans l'élément <VariablePrefix>.
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 Vous pouvez également utiliser l'élément |
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<ParseDialogflowRequest>.
<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.
<VariablePrefix>
Spécifie un préfixe personnalisé pour les variables de flux. La valeur spécifiée dans cet élément est précédée de tous les noms de variables générés par la règle ParseDialogflowRequest. Par défaut, toutes les variables générées par la règle sont précédées du préfixe google.dialogflow. Si vous avez spécifié l'élément VariablePrefix, votre préfixe personnalisé est ajouté après google.dialogflow. Par conséquent, le nom de la variable commence par google.dialogflow.CUSTOM_PREFIX.
Si vous ne spécifiez pas l'élément VariablePrefix, le nom de la variable n'est précédé que de google.dialogflow.
| Valeur par défaut | N/A |
| Obligatoire ? | Facultatif |
| Type | Chaîne |
| Élément parent |
<ParseDialogflowRequest>
|
| Éléments enfants | Aucun |
<VariablePrefix> utilise la syntaxe suivante :
Syntaxe
<VariablePrefix>VARIABLE_PREFIX</VariablePrefix>
Exemple
L'exemple suivant définit "VariablePrefix" sur my-prefix :
<VariablePrefix>my-custom-prefix</VariablePrefix>
Conformément à cette configuration, tous les noms de variables commencent par google.dialogflow.my-custom-prefix.
<DialogflowVersion>
Spécifie la version de Dialogflow. La règle ParseDialogflowRequest 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 | ND |
| Éléments enfants | Aucun |
<DialogflowVersion> utilise la syntaxe suivante :
Syntaxe
<DialogflowVersion>DIALOGFLOW_VERSION</DialogflowVersion>
Exemple
L'exemple suivant définit "DialogflowVersion" sur CX :
<DialogflowVersion>CX</DialogflowVersion>
Codes d'erreur
This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause | Fix |
|---|---|---|---|
steps.parsedialogflowrequest.InvalidSessionInfo |
500 |
This error occurs if there is an invalid sessionInfo.session field in a Dialogflow request. A Webhook can use this field to identify a session. For information about the supported session format, see Class SessionInfo. | |
steps.parsedialogflowrequest.MalformedInput |
500 |
This error occurs when the JSON provided to this policy is invalid or malformed. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
UnsupportedOperation |
This error occurs if you have specified unsupported Dialogflow version in the
DialogflowVersion element. The ParseDialogflowRequest policy supports
only CX version. |
Fault variables
Whenever there are execution errors in a policy, Apigee generates error messages. You can view these error messages in the error response. Many a time, system generated error messages might not be relevant in the context of your product. You might want to customize the error messages based on the type of error to make the messages more meaningful.
To customize the error messages, you can use either fault rules or the RaiseFault policy. For
information about differences between fault rules and the RaiseFault policy, see
FaultRules vs. the RaiseFault policy.
You must check for conditions using the Condition element in both the fault rules and the RaiseFault policy.
Apigee provides fault variables unique to each policy and the values of the fault variables are set when a policy triggers runtime errors.
By using these variables, you can check for specific error conditions and take appropriate actions. For more information about checking error
conditions, see Building conditions.
The following table describes the fault variables specific to this policy.
| Variables | Where | Example |
|---|---|---|
fault.name="FAULT_NAME" |
FAULT_NAME is the name of the fault, as listed in the Runtime errors table. The fault name is the last part of the fault code. | fault.name Matches "UnresolvedVariable" |
ParseDialogflowRequest.POLICY_NAME.failed |
POLICY_NAME is the user-specified name of the policy that threw the fault. | ParseDialogflowRequest.My-Parse-Dialogflow-Req.failed = true |
Articles associés
Les mises en œuvre de référence des proxys Apigee et des flux partagés montrant l'utilisation de la règle "ParseDialogflowRequest" sont disponibles sur Apigee GitHub. Pour en savoir plus, consultez la page Implémentations de référence pour l'IA conversationnelle.