Política de ParseDialogflowRequest

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

Consulta la documentación de Apigee Edge.

Icono de política

Información general

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

Opcionalmente, usa el elemento <DisplayName> para etiquetar la política en el editor de proxy de la interfaz de gestión con un nombre diferente en lenguaje natural.

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
El elemento <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 será CX de forma predeterminada.

Valor predeterminado N/A
¿Es obligatorio? Opcional
Tipo Cadena
Elemento principal N/A
Elementos secundarios Ninguno
El elemento <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

En esta sección se describen los códigos de error y los mensajes de error que devuelve Apigee, así como las variables de error que define, cuando esta política activa un error. Es importante que conozcas esta información si vas a desarrollar reglas de errores para gestionarlos. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo gestionar los fallos.

Errores de tiempo de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de fallo Estado de HTTP Causa Solucionar
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 está mal formado.

Errores de implementación

Estos errores pueden producirse al implementar un proxy que contenga esta política.

Nombre del error Causa Solucionar
UnsupportedOperation Este error se produce si ha especificado una versión de Dialogflow no compatible en el elemento DialogflowVersion. La política ParseDialogflowRequest solo admite la versión CX.

Variables de error

Cuando se producen errores de ejecución en una política, Apigee genera mensajes de error. Puedes ver estos mensajes de error en la respuesta de error. En muchas ocasiones, los mensajes de error generados por el sistema pueden no ser relevantes en el contexto de su producto. Puede que quieras personalizar los mensajes de error en función del tipo de error para que sean más significativos.

Para personalizar los mensajes de error, puedes usar reglas de error o la política RaiseFault. Para obtener información sobre las diferencias entre las reglas de errores y la política RaiseFault, consulta Reglas de errores frente a la política RaiseFault. Debes comprobar las condiciones mediante el elemento Condition tanto en las reglas de errores como en la política RaiseFault. Apigee proporciona variables de error únicas para cada política. Los valores de las variables de error se definen cuando una política activa errores de tiempo de ejecución. Al usar estas variables, puede comprobar si se dan condiciones de error específicas y tomar las medidas oportunas. Para obtener más información sobre cómo comprobar las condiciones de error, consulta Crear condiciones.

En la siguiente tabla se describen las variables de error específicas de esta política.

Variables Dónde Ejemplo
fault.name="FAULT_NAME" FAULT_NAME es el nombre del error, tal como se indica en la tabla Errores de tiempo de ejecución. El nombre del error es la última parte del código de error. fault.name Matches "UnresolvedVariable"
ParseDialogflowRequest.POLICY_NAME.failed POLICY_NAME es el nombre de la política especificado por el usuario que ha provocado el error. ParseDialogflowRequest.My-Parse-Dialogflow-Req.failed = true
Para obtener más información sobre los errores de las políticas, consulta Qué debes saber sobre los errores de las políticas.

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.