Esta página se aplica a Apigee y Apigee hybrid.
Consulta la documentación de
Apigee Edge.
La política ParseDialogflowRequest facilita la integración de Dialogflow con Apigee. Para obtener más información, consulta Integrar Apigee con Contact Center AI.
Esta política es una política extensible y su uso puede tener implicaciones en cuanto a costes o utilización, en función de tu licencia de Apigee. Para obtener información sobre los tipos de políticas y las implicaciones de uso, consulta Tipos de políticas.
La política ParseDialogflowRequest procesa la WebhookRequest de un agente de Dialogflow antes de enviar los datos de la solicitud a tus sistemas backend. La política extrae datos de WebhookRequest en las variables de flujo, que están disponibles durante toda la llamada a la API. Puedes usar las variables en tus llamadas, búsquedas o lógica orquestada posteriores. Esta política es especialmente útil si quieres que el agente de Dialogflow interactúe con tus sistemas backend antiguos. Antes de enviar los datos del agente a los sistemas backend, puedes analizar los datos y estructurarlos de forma que tus sistemas backend puedan consumirlos.
Si eres integrador de servicios de backend, no tienes que dedicar tiempo a entender el formato de WebhookRequest de Dialogflow. La política ParseDialogflowRequest predefinida gestiona el procesamiento de los datos de la solicitud sin problemas.
Para acceder a WebhookRequest de tu agente de Dialogflow en Apigee, debes definir la URL de webhook (cumplimiento) del agente en el ProxyEndPoint que hayas configurado en Apigee. Se debe poder acceder públicamente a ProxyEndPoint. Para obtener más información, consulta los requisitos del servicio de webhook.
<ParseDialogflowRequest>
Define una política de ParseDialogflowRequest.
| Valor predeterminado | N/A |
| ¿Es obligatorio? | Obligatorio |
| Tipo | Objeto complejo |
| Elemento principal | N/A |
| Elementos secundarios |
<DialogflowVersion><DisplayName><VariablePrefix> |
En la siguiente tabla se ofrece una descripción general de los elementos secundarios específicos de la política ParseDialogflowRequest:
| Elemento secundario | ¿Es obligatorio? | Descripción |
|---|---|---|
<VariablePrefix> |
Opcional | Especifica un prefijo personalizado para las variables de flujo. |
<DialogflowVersion> |
Opcional | Especifica la versión de Dialogflow. |
Ejemplo
En el ejemplo siguiente se muestra una solicitud de webhook de ejemplo, la política ParseDialogflowRequest correspondiente y las variables de flujo generadas después de aplicar la política:
Sintaxis
<?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>
Solicitud de webhook
En el siguiente ejemplo se muestra la solicitud de webhook (en formato JSON) de un agente de 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
}
}Para ver los distintos campos que puedes configurar en la solicitud, consulta WebhookRequest.
Ve al siguiente ejemplo para ver la configuración de la política ParseDialogflowRequest.
Política de 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>
Ve al siguiente ejemplo para ver las variables de flujo creadas por la política.
Variables de flujo
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
Todas las variables de flujo generadas empiezan por google.dialogflow seguido del prefijo (my-prefix) especificado en el elemento <VariablePrefix>.
Este elemento tiene los siguientes atributos, que son comunes a todas las políticas:
| Atributo | Predeterminado | ¿Es obligatorio? | Descripción |
|---|---|---|---|
name |
N/A | Obligatorio |
El nombre interno de la política. El valor del atributo Opcionalmente, usa el elemento |
continueOnError |
falso | Opcional | Asigna el valor false para devolver un error cuando falle una política. Este es el comportamiento esperado de la mayoría de las políticas. Asigna el valor true para que la ejecución del flujo continúe incluso después de que falle una política. Consulta también:
|
enabled |
true | Opcional | Asigna el valor true para aplicar la política. Selecciona false para desactivar la política. La política no se aplicará aunque siga adjunta a un flujo. |
async |
falso | Obsoleto | Este atributo está obsoleto. |
Referencia de elemento secundario
En esta sección se describen los elementos secundarios de<ParseDialogflowRequest>.
<DisplayName>
Se usa junto con el atributo name para etiquetar la política en el editor de proxy de la interfaz de usuario de gestión con un nombre diferente que suene más natural.
El elemento <DisplayName> es común a todas las políticas.
| Valor predeterminado | N/A |
| ¿Es obligatorio? | Opcional. Si omite <DisplayName>, se usará el valor del atributo name de la política. |
| Tipo | Cadena |
| Elemento principal | <PolicyElement> |
| Elementos secundarios | Ninguno |
El elemento <DisplayName> utiliza la siguiente sintaxis:
Sintaxis
<PolicyElement> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> ... </PolicyElement>
Ejemplo
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
El elemento <DisplayName> no tiene atributos ni elementos secundarios.
<VariablePrefix>
Especifica un prefijo personalizado para las variables de flujo. El valor especificado en este elemento se añade como prefijo a todos los nombres de variables generados por la política ParseDialogflowRequest. De forma predeterminada, todas las variables
generadas por la política tienen el prefijo google.dialogflow. Si ha especificado el elemento VariablePrefix, su prefijo personalizado se añade después de google.dialogflow. Por lo tanto, el nombre de la variable empieza por google.dialogflow.CUSTOM_PREFIX.
Si no especifica el elemento VariablePrefix, el nombre de la variable solo tendrá el prefijo google.dialogflow.
| Valor predeterminado | N/A |
| ¿Es obligatorio? | Opcional |
| Tipo | Cadena |
| Elemento principal |
<ParseDialogflowRequest>
|
| Elementos secundarios | Ninguno |
<VariablePrefix> utiliza la siguiente sintaxis:
Sintaxis
<VariablePrefix>VARIABLE_PREFIX</VariablePrefix>
Ejemplo
En el siguiente ejemplo se asigna el valor my-prefix a VariablePrefix:
<VariablePrefix>my-custom-prefix</VariablePrefix>
Según esta configuración, todos los nombres de las variables empiezan por google.dialogflow.my-custom-prefix.
<DialogflowVersion>
Especifica la versión de Dialogflow. La política ParseDialogflowRequest solo admite la versión CX. Si no especifica este elemento en su política, la versión predeterminada será CX.
| Valor predeterminado | N/A |
| ¿Es obligatorio? | Opcional |
| Tipo | Cadena |
| Elemento principal | N/A |
| Elementos secundarios | Ninguno |
<DialogflowVersion> utiliza la siguiente sintaxis:
Sintaxis
<DialogflowVersion>DIALOGFLOW_VERSION</DialogflowVersion>
Ejemplo
En el siguiente ejemplo se asigna el valor CX a DialogflowVersion:
<DialogflowVersion>CX</DialogflowVersion>
Códigos de error
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 |
Temas relacionados
En Apigee GitHub se pueden consultar implementaciones de referencia de proxies y flujos compartidos de Apigee que muestran el uso de la política ParseDialogflowRequest. Para obtener más información, consulta las implementaciones de referencia de IA conversacional.