Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.
Descripción general
La política ParseDialogflowRequest facilita la integración de Dialogflow con Apigee. Para obtener más información, consulta Integra Apigee con Contact Center AI.
Esta política es una política extensible, y el uso de esta puede tener implicaciones de costo o uso, según tu licencia de Apigee. Para obtener información sobre los tipos de políticas y sus 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 de backend. La política extrae datos de WebhookRequest a las variables de flujo que están disponibles para toda la llamada a la API. Puedes usar las variables en los textos destacados posteriores, las búsquedas o la lógica organizada. En particular, esta política es útil si deseas que el agente de Dialogflow interactúe con tus sistemas de backend heredados. Antes de enviar los datos del agente a los sistemas de backend, puedes analizarlos y estructurarlos de una manera que pueda consumir tus sistemas de backend.
Si eres un integrador de servicios de backend, no necesitas dedicar tiempo a comprender el formato de la WebhookRequest de Dialogflow. La política ParseDialogflowRequest lista para usar controla el procesamiento de los datos de la solicitud sin problemas.
Para acceder a la WebhookRequest de tu agente de Dialogflow en Apigee, debes configurar la URL de webhook (entrega) del agente en el ProxyEndPoint que configuraste en Apigee. El ProxyEndPoint debe ser de acceso público. Para obtener más información, consulta Requisitos del servicio de webhook.
<ParseDialogflowRequest>
Define una política 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 proporciona una descripción de alto nivel 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 siguiente ejemplo, se muestra una solicitud de webhook de muestra, 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 diversos campos que puedes configurar en la solicitud, consulta WebhookRequest.
Ve a la siguiente muestra para ver la configuración de la política ParseDialogflowRequest.
Política 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 a la siguiente muestra 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 comienzan con google.dialogflow, seguidas del prefijo (my-prefix), como se especifica en el elemento <VariablePrefix>
.
Este elemento tiene los siguientes atributos que son comunes a todas las políticas:
Atributo | Predeterminada | (obligatorio) | Descripción |
---|---|---|---|
name |
N/A | Obligatorio |
El nombre interno de la política. El valor del atributo De forma opcional, usa el elemento |
continueOnError |
falso | Opcional | Configúralo como false para mostrar un error cuando una política falla. Este es el comportamiento previsto para la mayoría de las políticas. Configúralo como true para continuar con la ejecución del flujo incluso después de que una política falle. También consulta:
|
enabled |
true | Opcional | Configúralo como true para aplicar la política. Configúralo como false para desactivar la política. La política no se aplicará, incluso si permanece conectada a un flujo. |
async |
falso | Obsoleta | Este atributo dejó de estar disponible. |
Referencia del elemento secundario
En esta sección, se describen los elementos secundarios de<ParseDialogflowRequest>
.
<DisplayName>
Se usan además del atributo name
para etiquetar la política en el editor de proxy de la IU de administración con un nombre de lenguaje natural diferente.
El elemento <DisplayName>
es común a todas las políticas.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional. Si omites <DisplayName> , se usa el valor del atributo name de la política. |
Tipo | String |
Elemento principal | <PolicyElement> |
Elementos secundarios | Ninguno |
El elemento <DisplayName>
usa 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 tiene el prefijo de todos los nombres de variables que genera la política ParseDialogflowRequest. De forma predeterminada, todas las variables que genera la política tienen el prefijo google.dialogflow
. Si especificaste el elemento VariablePrefix
, tu prefijo personalizado se agrega después de google.dialogflow
. Por lo tanto, el nombre de la variable comienza con google.dialogflow.CUSTOM_PREFIX
.
Si no especificas el elemento VariablePrefix
, el nombre de la variable tiene el prefijo google.dialogflow
.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | String |
Elemento principal |
<ParseDialogflowRequest>
|
Elementos secundarios | Ninguno |
<VariablePrefix>
usa la siguiente sintaxis:
Sintaxis
<VariablePrefix>VARIABLE_PREFIX</VariablePrefix>
Ejemplo
En el siguiente ejemplo, se establece VariablePrefix en my-prefix
:
<VariablePrefix>my-custom-prefix</VariablePrefix>
Según esta configuración, todos los nombres de las variables comienzan con google.dialogflow.my-custom-prefix.
<DialogflowVersion>
Especifica la versión de Dialogflow. La política ParseDialogflowRequest solo admite la versión CX. Si no especificas este elemento en tu política, la versión predeterminada es CX.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | String |
Elemento principal | N/A |
Elementos secundarios | Ninguno |
<DialogflowVersion>
usa la siguiente sintaxis:
Sintaxis
<DialogflowVersion>DIALOGFLOW_VERSION</DialogflowVersion>
Ejemplo
En el siguiente ejemplo, se establece DialogflowVersion en CX
:
<DialogflowVersion>CX</DialogflowVersion>
Códigos de error
En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
Código de falla | Estado de HTTP | Causa | Corregir |
---|---|---|---|
steps.parsedialogflowrequest.InvalidSessionInfo |
500 |
Este error se produce si hay un campo sessionInfo.session no válido en una solicitud de Dialogflow. Un webhook puede usar este campo para identificar una sesión. Para obtener información sobre el formato de sesión admitido, consulta Class SessionInfo. | |
steps.parsedialogflowrequest.MalformedInput |
500 |
Este error se produce cuando el JSON proporcionado a esta política no es válido o presenta errores de formato. |
Errores en la implementación
Estos errores pueden generarse cuando implementas un proxy que contiene esta política.
Nombre del error | Causa | Corregir |
---|---|---|
UnsupportedOperation |
Este error se produce si especificaste la versión de Dialogflow no compatible en el elemento DialogflowVersion . La política ParseDialogflowRequest solo admite la versión CX . |
Variables con fallas
Cuando hay errores de ejecución en una política, Apigee genera mensajes de error. Puedes ver estos mensajes de error en la respuesta de error. Es posible que muchos mensajes de error generados por el sistema no sean relevantes en el contexto de tu producto. Te recomendamos personalizar los mensajes de error según el tipo de error para que los mensajes sean más significativos.
Para personalizar los mensajes de error, puedes usar reglas de falla o la política RaiseFault. Para obtener información sobre las diferencias entre las reglas de fallas y la política RaiseFault, consulta Política FaultRules en comparación con la política RaiseFault.
Debes verificar las condiciones mediante el elemento Condition
en las reglas de fallas y la política RaiseFault.
Apigee proporciona variables de fallas únicas para cada política, y los valores de las variables de fallas se establecen cuando una política activa errores de entorno de ejecución.
Si usas estas variables, puedes verificar las condiciones de error específicas y tomar las medidas adecuadas. Si deseas obtener más información para verificar las condiciones de error, consulta Condiciones de compilación.
En la siguiente tabla, se describen las variables de fallas específicas de esta política.
Variables | Donde | Ejemplo |
---|---|---|
fault.name="FAULT_NAME" |
FAULT_NAME es el nombre de la falla, como se indica en la tabla Errores del entorno de ejecución. El nombre de la falla es la última parte del código de la falla. | fault.name Matches "UnresolvedVariable" |
ParseDialogflowRequest.POLICY_NAME.failed |
POLICY_NAME es el nombre especificado por el usuario de la política que generó la falla. | ParseDialogflowRequest.My-Parse-Dialogflow-Req.failed = true |
Temas relacionados
Las implementaciones de referencia de los proxies de Apigee y los flujos compartidos que muestran el uso de la política ParseDialogflowRequest están disponibles en GitHub de Apigee. Para obtener más información, consulta Implementaciones de referencia de Conversation AI.