Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Información general
La política SetDialogflowResponse facilita la integración de Dialogflow con Apigee. Para obtener más información, consulta Integrar Apigee con Contact Center AI.
La política SetDialogflowResponse procesa y da formato a los datos de respuesta de tus sistemas backend antes de enviar los datos como WebhookResponse al agente de Dialogflow. Un agente de Dialogflow requiere que WebhookResponse tenga un formato específico, y la política SetDialogflowResponse crea la respuesta con el formato necesario. La política crea un WebhookResponse con el formato necesario para un agente de Dialogflow. El objeto WebhookResponse tiene frases en lenguaje natural y otros parámetros que el agente de Dialogflow entiende.
Si eres integrador de servicios de backend, no tienes que dedicar tiempo a entender el formato de WebhookResponse de Dialogflow. La política SetDialogflowResponse predefinida gestiona el procesamiento de los datos de respuesta sin problemas.
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.
<SetDialogflowResponse>
Define una política SetDialogflowResponse.
Valor predeterminado | N/A |
¿Es obligatorio? | Obligatorio |
Tipo | Objeto complejo |
Elemento principal | N/A |
Elementos secundarios |
<DisplayName> <Source> <DialogflowVersion> <NaturalLanguageResponse> <Parameters> <IgnoreUnresolvedVariables> |
En la siguiente tabla se ofrece una descripción general de todos los elementos secundarios del elemento SetDialogflowResponse
:
Elemento secundario | ¿Es obligatorio? | Descripción |
---|---|---|
<DisplayName> |
Opcional | Un nombre personalizado para la política. |
<Source> |
Opcional | Especifica la variable que se va a analizar. |
<DialogflowVersion> |
Opcional | Especifica la versión de Dialogflow. |
<NaturalLanguageResponse> |
Opcional | Encapsula todo el contenido que se debe enviar como objeto WebhookResponse.FulfillmentResponse . |
<Parameters> |
Opcional | Elemento principal de <Parameter> . Define el conjunto de parámetros que se van a definir en la respuesta del webhook. |
<IgnoreUnresolvedVariables> |
Opcional | Especifica si el procesamiento se detiene cuando se encuentra una variable sin resolver. |
Otros elementos secundarios | ||
<MergeBehavior> |
Opcional | Especifica el comportamiento de combinación de los mensajes de respuesta. |
<Header> |
Opcional | Extrae el valor del campo especificado en el encabezado de la respuesta. |
<JSONPath> |
Opcional | Extrae el valor de la ruta JSON especificada. |
<Parameter> |
Obligatorio | Especifica un parámetro que se va a definir en el objeto sessionInfo.parameters de la respuesta del webhook. |
<Phrase> |
Obligatorio | Especifica la frase (texto) que se va a definir en el objeto fulfillmentResponse.messages de la respuesta del webhook. |
<Phrases> |
Opcional | Elemento principal de <Phrase> . Define el conjunto de frases en lenguaje natural que se incluirán en la respuesta del webhook. |
<Ref> |
Opcional | Extrae el valor de la variable de referencia especificada. |
<Value> |
Opcional | Define un texto personalizado para el parámetro especificado. |
Ejemplo
En el siguiente ejemplo se muestra una política SetDialogflowResponse de muestra y la WebhookResponse enviada al agente de Dialogflow:
Sintaxis
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SetDialogflowResponse continueOnError="false" enabled="true" name="POLICY_NAME"> <!-- The display name for this policy --> <DisplayName>DISPLAY_NAME</DisplayName> <!-- The message variable from which the policy extracts the required information --> <Source>MESSAGE_VARIABLE</Source> <!-- The version of Dialogflow for which this response 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> <!-- A container object to encapsulate all content needed for a natural language response to be returned to Dialogflow from the Southbound API --> <NaturalLanguageResponse> <!-- Defines the merge behavior for existing responses and new responses. Refer here for more details --> <MergeBehavior>MERGE_BEHAVIOR</MergeBehavior> <!-- An ordered list of natural language phrases to be returned to Dialogflow from the Southbound API --> <Phrases> <!-- A phrase is a natural language phrase that Dialogflow agents can send back to their caller/chatting customer --> <Phrase> <!-- A phrase can be extracted from the response JSON payload of a service callout --> <JSONPath>JSON_PATH</JSONPath> </Phrase> <Phrase> <!-- A phrase can be extracted from the response headers of a service callout --> <Header name="HEADER_NAME"/> </Phrase> <Phrase> <!-- A phrase refer to the value of an existing flow variable --> <Ref>EXISTING_FLOW_VARIABLE</Ref> </Phrase> <Phrase> <!-- A phrase can be static text --> <Value>CUSTOM_TEXT</Value> </Phrase> </Phrases> </NaturalLanguageResponse> <!-- A container object defining the parameters to be set as session parameters in the Webhook response sent to Dialogflow --> <Parameters> <!-- Defines a single parameter to be set in sessionInfo.parameters object of the WebhookResponse object. The name of the parameter is defined as an attribute --> <Parameter name="PARAMETER_NAME"> <!-- A parameter's value can be extracted from the response JSON payload of a service callout --> <JSONPath>JSON_PATH</JSONPath> </Parameter> <Parameter name="PARAMETER_NAME"> <!-- A parameter's value can be extracted from the response headers of a service callout --> <Header name="HEADER_NAME"/> </Parameter> <Parameter name="PARAMETER_NAME"> <!-- A parameter's value can be refer to the value of an existing flow variable --> <Ref>EXISTING_FLOW_VARIABLE</Ref> </Parameter> <Parameter name="PARAMETER_NAME"> <!-- A parameter's value can be static text --> <Value>CUSTOM_TEXT</Value> </Parameter> </Parameters> <IgnoreUnresolvedVariables>BOOLEAN_VALUE</IgnoreUnresolvedVariables> </SetDialogflowResponse>
Política SetDialogflowResponse
En el ejemplo siguiente se muestra la definición de la política SetDialogflowResponse
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SetDialogflowResponse continueOnError="false" enabled="true" name="CCAIDialogflowResponse-InsuranceAgent"> <DisplayName>Insurance Agent Webhook Response Policy</DisplayName> <Source>myMessageVar</Source> <DialogflowVersion>CX</DialogflowVersion> <NaturalLanguageResponse> <MergeBehavior>APPEND</MergeBehavior> <Phrases> <Phrase> <JSONPath>$.claim.status.text</JSONPath> </Phrase> <Phrase> <Header name="X-Response-Text"/> </Phrase> <Phrase> <Ref>myVar</Ref> </Phrase> <Phrase> <Value>You call is important to us</Value> </Phrase> </Phrases> </NaturalLanguageResponse> <Parameters> <Parameter name="claimStatus"> <JSONPath>$.claim.status.value</JSONPath> </Parameter> <Parameter name="claimAmount"> <JSONPath>$.claim.amount</JSONPath> </Parameter> <Parameter name="timeSpent"> <Header name="X-Time-Spent"/> </Parameter> <Parameter name="myVar"> <Ref>dialogflow.my.var</Ref> </Parameter> <Parameter name="responder"> <Value>SYSTEM</Value> </Parameter> </Parameters> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </SetDialogflowResponse>
Ve al siguiente ejemplo para ver la respuesta de webhook creada por esta política.
Respuesta de webhook
En el siguiente ejemplo se muestra un WebhookResponse enviado al agente de Dialogflow:
{ "fulfillmentResponse": { "mergeBehavior": "APPEND", "messages": [{ "text": { "text": ["Your claim is currently being processed", "Please call back in a couple of days"] } }] }, "sessionInfo": { "parameters": { "claimStatus": "PROCESSING", "claimAmount": 1000 } } }
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<SetDialogflowResponse>
.
<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.
<Source>
Especifica la variable que se va a analizar. El valor de <Source>
es message
de forma predeterminada. El valor message
depende del contexto. En un flujo de solicitudes, message
se resuelve en el mensaje de solicitud. En un flujo de respuesta, message
se resuelve en el mensaje de respuesta.
Aunque esta política se suele usar para extraer información de un mensaje de solicitud o respuesta, también se puede usar para extraer información de cualquier variable. Por ejemplo, puedes usarla para extraer información de una entidad creada por la política AccessEntity, de datos devueltos por la política ServiceCallout o de un objeto XML o JSON.
Si <Source>
no se puede resolver o se resuelve en un tipo que no es de mensaje,
la política falla y se produce un error de tiempo de ejecución.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Cadena |
Elemento principal |
<SetDialogflowResponse>
|
Elementos secundarios | Ninguno |
<Source>
utiliza la siguiente sintaxis:
Sintaxis
<Source>MESSAGE_VARIABLE</Source>
Ejemplo
En el ejemplo siguiente se asigna el valor myMessageVar
a la fuente:
<Source>myMessageVar</Source>
<DialogflowVersion>
Especifica la versión de Dialogflow. La política SetDialogflowResponse 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 |
<SetDialogflowResponse>
|
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>
<IgnoreUnresolvedVariables>
Determina si el procesamiento se detiene cuando se encuentra una variable sin resolver.
Valor predeterminado | Verdadero |
¿Es obligatorio? | Opcional |
Tipo | Booleano |
Elemento principal |
<SetDialogflowResponse>
|
Elementos secundarios | Ninguno |
Asigna el valor true
para ignorar las variables sin resolver y continuar con el procesamiento. De lo contrario, asigna el valor false
. El valor predeterminado es true
.
Asignar el valor true
a <IgnoreUnresolvedVariables>
no es lo mismo que asignar el valor true
a continueOnError
de <SetDialogflowResponse>
. Si asigna el valor true
a continueOnError
, Apigee ignora todos los errores, no solo los de las variables.
El elemento <IgnoreUnresolvedVariables>
utiliza la siguiente sintaxis:
Sintaxis
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
Ejemplo
En el siguiente ejemplo se asigna false
a <IgnoreUnresolvedVariables>
:
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<MergeBehavior>
Define el comportamiento de combinación de los mensajes de respuesta. Puedes especificar cualquiera de los siguientes valores:
APPEND
: añade los mensajes a la lista de mensajes que están esperando a enviarse al usuario.REPLACE
: sustituye los mensajes antiguos por mensajes más recientes en la lista de mensajes que están esperando a enviarse al usuario.
APPEND
.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Cadena |
Elemento principal |
<NaturalLanguageResponse>
|
Elementos secundarios | Ninguno |
<MergeBehavior>
utiliza la siguiente sintaxis:
Sintaxis
<MergeBehavior>BEHAVIOR</MergeBehavior>
Ejemplo
En el siguiente ejemplo se define el comportamiento de combinación como APPEND
:
<MergeBehavior>APPEND</MergeBehavior>
<NaturalLanguageResponse>
Encapsula toda la respuesta en lenguaje natural que quieras enviar al agente de Dialogflow.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Objeto complejo |
Elemento principal |
<SetDialogflowResponse>
|
Elementos secundarios |
<MergeBehavior> <Phrases> |
<Parameters>
Define el conjunto de parámetros que se van a definir en la respuesta del webhook. El nombre del parámetro se indica como atributo del elemento <Parameter>
.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Objeto complejo |
Elemento principal |
<SetDialogflowResponse>
|
Elementos secundarios |
<Parameter>
|
<Parameter>
Especifica un parámetro que se va a definir en el objeto sessionInfo.parameters de la respuesta del webhook.
Puede especificar un texto estático como valor de un parámetro o extraer el valor de cualquiera de los siguientes campos de la respuesta:
- Campos de encabezado de respuesta
- Carga útil de JSON
- Variables de flujo
Debes definir un elemento <Parameter>
independiente para cada valor que quieras extraer.
Valor predeterminado | N/A |
¿Es obligatorio? | Obligatorio |
Tipo | Objeto complejo |
Elemento principal |
<Parameters>
|
Elementos secundarios |
<Header> <JSONPath> <Ref> <Value> |
<Parameter>
tiene los siguientes atributos:
Atributo | Descripción | ¿Es obligatorio? | Tipo |
---|---|---|---|
name |
Nombre de la variable que se va a crear con este parámetro. | Sí | Cadena |
El elemento <Parameter>
utiliza la siguiente sintaxis:
Sintaxis
<Parameters> <Parameter name="PARAMETER_NAME"> <Header name="HEADER_NAME"/> </Parameter> <Parameter name="PARAMETER_NAME"> <JSONPath>JSON_PATH</JSONPath> </Parameter> <Parameter name="PARAMETER_NAME"> <Ref>EXISTING_FLOW_VARIABLE</Ref> </Parameter> <Parameter name="PARAMETER_NAME"> <Value>CUSTOM_TEXT</Value> </Parameter> </Parameters>
Extraer el valor del campo de encabezado
En este ejemplo, se asigna al parámetro timeSpent el valor del campo de encabezado X-Time-Spent.
<Parameter name="timeSpent"> <Header name="X-Time-Spent"/> </Parameter>
Extraer el valor de la ruta JSON
En este ejemplo, se asigna al parámetro claimAmount el valor del campo claim.amount de la carga útil JSON.
<Parameter name="claimAmount"> <JSONPath>$.claim.amount</JSONPath> </Parameter>
Extraer el valor de una variable de flujo
En este ejemplo, se asigna al parámetro myVar el valor de la variable de flujo dialogflow.my.var.
<Parameter name="myVar"> <Ref>dialogflow.my.var</Ref> </Parameter>
Definir texto personalizado
En este ejemplo, se asigna el valor SYSTEM al parámetro responder.
<Parameter name="responder"> <Value>SYSTEM</Value> </Parameter>
<Phrases>
Elemento principal de <Phrase>
. Define la lista ordenada de frases en lenguaje natural que se incluirán en la respuesta del webhook.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Objeto complejo |
Elemento principal |
<NaturalLanguageResponse>
|
Elementos secundarios |
<Phrase>
|
<Phrase>
Especifica la frase (texto) que se va a definir en el objeto fulfillmentResponse.messages de la respuesta del webhook.
Puede especificar un texto estático como valor de frase o extraer el valor de cualquiera de los siguientes campos de la respuesta:
- Campos de encabezado de respuesta
- Carga útil de JSON
- Variables de flujo
Debes definir un elemento <Phrase>
independiente para cada valor que quieras extraer.
Valor predeterminado | N/A |
¿Es obligatorio? | Obligatorio |
Tipo | Objeto complejo |
Elemento principal |
<Phrases>
|
Elementos secundarios |
<Header> <JSONPath> <Ref> <Value> |
El elemento <Phrase>
utiliza la siguiente sintaxis:
Sintaxis
<Phrases> <Phrase> <Header name="HEADER_NAME"/> </Phrase> <Phrase> <JSONPath>JSON_PATH</JSONPath> </Phrase> <Phrase> <Ref>EXISTING_FLOW_VARIABLE</Ref> </Phrase> <Phrase> <Value>CUSTOM_TEXT</Value> </Phrase> </Phrases>
Extraer el valor del campo de encabezado
En este ejemplo se asigna a la respuesta un texto en lenguaje natural con el valor del campo de encabezado X-Response-Text
.
<Phrase> <Header name="X-Response-Text"/> </Phrase>
Extraer el valor de la ruta JSON
En este ejemplo, se asigna un texto en lenguaje natural en la respuesta al valor del campo claim.status.text
de la carga útil de JSON.
<Phrase> <JSONPath>$.claim.status.text</JSONPath> </Phrase>
Extraer el valor de una variable de flujo
En este ejemplo, se asigna a la respuesta un texto en lenguaje natural con el valor de la variable de flujo myVar
.
<Phrase> <Ref>myVar</Ref> </Phrase>
Definir texto personalizado
En este ejemplo, se añade el texto You call is important to us
al texto en lenguaje natural de la respuesta.
<Phrase> <Value>You call is important to us</Value> </Phrase>
<Header>
Extrae el valor del campo especificado en el encabezado de respuesta. Puede usar el valor del encabezado para definir un texto en lenguaje natural o un parámetro de respuesta.
- Para extraer el valor del encabezado como respuesta en lenguaje natural, especifica el elemento
<Header>
dentro del elemento<Phrase>
. - Para extraer el valor del encabezado como parámetro de respuesta, especifica el elemento
<Header>
dentro del elemento<Parameter>
.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Cadena |
Elemento principal |
<Phrase> <Parameter> |
Elementos secundarios | Ninguno |
<Header>
utiliza la siguiente sintaxis:
Sintaxis
<Header name="HEADER_FIELD"/>
Ejemplo 1
En el siguiente ejemplo se obtiene el valor del campo de encabezado X-Response-Text
como respuesta en lenguaje natural:
<Phrase> <Header name="X-Response-Text"/> <Phrase/>
Ejemplo 2
En el siguiente ejemplo se obtiene el valor del campo de encabezado X-Response-Text
como parámetro de respuesta:
<Parameter name="timeSpent"> <Header name="X-Response-Text"/> <Parameter/>
La variable de flujo timeSpent
se define como el valor del campo de encabezado X-Response-Text
.
El elemento <Header>
tiene los siguientes atributos:
Atributo | Descripción | ¿Es obligatorio? | Tipo |
---|---|---|---|
name | Especifica el nombre del encabezado de respuesta del que se extrae el valor. | Obligatorio | Cadena |
<JSONPath>
Extrae el valor de una ruta JSON en una carga útil JSON de la llamada externa de servicio. Puede usar el valor para definir un texto en lenguaje natural o un parámetro de respuesta.
- Para extraer el valor JSON como texto en lenguaje natural, especifica el elemento
<JSONPath>
dentro del elemento<Phrase>
. - Para extraer el valor JSON como parámetro de respuesta, especifica el elemento
<JSONPath>
dentro del elemento<Parameter>
.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Cadena |
Elemento principal |
<Phrase> <Parameter> |
Elementos secundarios | Ninguno |
<JSONPath>
utiliza la siguiente sintaxis:
Sintaxis
<JSONPath>JSON_PATH</JSONPath>
Ejemplo 1
En el siguiente ejemplo se obtiene el valor del campo JSON claim.status.text
como respuesta en lenguaje natural:
<Phrase> <JSONPath>$.claim.status.text</JSONPath> <Phrase/>
Ejemplo 2
En el siguiente ejemplo se obtiene el valor del campo JSON claim.amount
como parámetro de respuesta:
<Parameter name="claimAmount"> <JSONPath>$.claim.amount.</JSONPath> <Parameter/>
La variable de flujo claimAmount
se asigna al valor del campo JSON {claim.amount}
.
<Ref>
Extrae el valor de una variable de flujo. Puede usar el valor para definir un texto en lenguaje natural o un parámetro de respuesta.
- Para extraer el valor de una variable como texto en lenguaje natural, especifique el elemento
<Ref>
dentro del elemento<Phrase>
. - Para extraer el valor de una variable como parámetro de respuesta, especifique el elemento
<Ref>
dentro del elemento<Parameter>
.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Cadena |
Elemento principal |
<Phrase> <Parameter> |
Elementos secundarios | Ninguno |
<Ref>
utiliza la siguiente sintaxis:
Sintaxis
<Ref>EXISTING_FLOW_VARIABLE</Ref>
Ejemplo 1
En el siguiente ejemplo se obtiene el valor de la variable de flujo myVar
como respuesta en lenguaje natural:
<Phrase> <Ref>myVar</Ref> <Phrase/>
Ejemplo 2
En el siguiente ejemplo se obtiene el valor de la variable de flujo dialogflow.my.var
como parámetro de respuesta:
<Parameter name="customVar"> <Ref>dialogflow.my.var</Ref> <Parameter/>
La variable de flujo customVar
se asigna al valor de la variable dialogflow.my.var
.
<Value>
Asigna un valor literal a un texto en lenguaje natural o a un parámetro de respuesta.
- Para definir el valor literal como texto en lenguaje natural, especifica el elemento
<Value>
dentro del elemento<Phrase>
. - Para definir el valor literal como parámetro de respuesta, especifica el elemento
<Value>
dentro del elemento<Parameter>
.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Cadena |
Elemento principal |
<Phrase> <Parameter> |
Elementos secundarios | Ninguno |
<Value>
utiliza la siguiente sintaxis:
Sintaxis
<Value>CUSTOM_TEXT</Value>
Ejemplo 1
En el siguiente ejemplo se define el texto literal You call is important to us
como respuesta en lenguaje natural:
<Phrase> <Value>You call is important to us</Value> <Phrase/>
Ejemplo 2
En el siguiente ejemplo se define el texto literal SYSTEM
como parámetro de respuesta:
<Parameter name="responder"> <Value>SYSTEM</Value> <Parameter/>
La variable de flujo responder
se ha definido como SYSTEM
.
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 |
---|---|---|
steps.setdialogflowresponse.ExecutionFailed |
500 |
Este error se produce cuando no se puede ejecutar la política debido a una excepción genérica. El mensaje de error contiene los detalles de la excepción. |
steps.setdialogflowresponse.InvalidSourceType |
500 |
Este error se produce si la variable especificada en el elemento <Source> no es del tipo message. |
steps.setdialogflowresponse.MalformedInput |
500 |
Este error se produce cuando el JSON proporcionado a esta política no es válido o está mal formado. |
steps.setdialogflowresponse.SourceMessageNotAvailable |
500 |
Este error se produce si la variable message especificada en el elemento Source de la política es:
|
steps.setdialogflowresponse.UnresolvedHeader |
500 |
Este error se produce si el elemento Header tiene un encabezado no válido.
Por ejemplo, si el elemento Header tiene el valor X-Response-Text y no hay ningún X-Response-Text en el encabezado de respuesta, se producirá este error.
|
steps.setdialogflowresponse.UnresolvedJSONPath |
500 |
Este error se produce si el elemento JSONPath tiene una ruta no válida.
Por ejemplo, si el elemento JSONPath tiene el valor {claim.status.value} y no hay ningún objeto status en la carga útil JSON, se producirá este error. |
steps.setdialogflowresponse.UnresolvedVariable |
500 |
Este error se produce si una variable especificada en la política SetDialogflowResponse es:
|
Errores de implementación
Estos errores pueden producirse al implementar un proxy que contenga esta política.
Nombre del error | Causa |
---|---|
UnsupportedOperation |
Este error se produce si ha especificado una versión de Dialogflow no compatible en el elemento DialogflowVersion . La política SetDialogflowResponse 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" |
setdialogflowresponse.POLICY_NAME.failed |
POLICY_NAME es el nombre de la política especificado por el usuario que ha provocado el error. | setdialogflowresponse.My-Set-Dialogflow-Response.failed = true |
Temas relacionados
En Apigee GitHub se pueden consultar implementaciones de referencia de proxies de Apigee y flujos compartidos que muestran el uso de la política SetDialogflowResponse. Para obtener más información, consulta las implementaciones de referencia de IA conversacional.