Política ParseDialogflowRequest

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

ícono de política

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 name puede contener letras, números, espacios, guiones, guiones bajos y puntos. Este valor no puede superar los 255 caracteres.

De forma opcional, usa el elemento <DisplayName> para etiquetar la política en el editor de proxy de la IU de administración con un nombre de lenguaje natural diferente.

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 Ninguna

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 Ninguna
El elemento <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 Ninguna
El elemento <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

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
For more information about policy errors, see What you need to know about policy errors.

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.