Política ParseDialogflowRequest

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

A política ParseDialogflowRequest facilita a integração do Dialogflow com o Apigee. Para mais informações, consulte o artigo Integrar o Apigee com o Contact Center AI.

Esta política é uma política extensível e a utilização desta política pode ter implicações de custo ou utilização, consoante a sua licença do Apigee. Para ver informações sobre os tipos de políticas e as implicações de utilização, consulte Tipos de políticas.

A política ParseDialogflowRequest processa o WebhookRequest de um agente do Dialogflow antes de enviar os dados do pedido para os seus sistemas de back-end. A política extrai dados do WebhookRequest para as variáveis de fluxo que estão disponíveis para si durante toda a chamada da API. Pode usar as variáveis nos seus lances adicionais, pesquisas ou lógica organizada subsequentes. Esta política é particularmente útil se quiser que o agente do Dialogflow interaja com os seus sistemas de back-end antigos. Antes de enviar os dados do agente para os sistemas de back-end, pode analisar os dados e estruturá-los de forma que os seus sistemas de back-end possam consumir.

Se for um integrador de serviços de back-end, não precisa de perder tempo a compreender o formato do WebhookRequest do Dialogflow. A política ParseDialogflowRequest pronta a usar processa os dados do pedido de forma integrada.

Para aceder ao WebhookRequest do seu agente do Dialogflow no Apigee, tem de definir o URL do webhook (execução) do agente para o ProxyEndPoint que configurou no Apigee. O ProxyEndPoint deve ser acessível publicamente. Para mais informações, consulte os requisitos do serviço de webhook.

<ParseDialogflowRequest>

Define uma política ParseDialogflowRequest.

Valor predefinido N/A
Obrigatório? Obrigatória
Tipo Objeto complexo
Elemento principal N/A
Elementos subordinados <DialogflowVersion>
<DisplayName>
<VariablePrefix>

A tabela seguinte fornece uma descrição geral dos elementos subordinados específicos da política ParseDialogflowRequest:

Elemento secundário Obrigatório? Descrição
<VariablePrefix> Opcional Especifica um prefixo personalizado para as variáveis de fluxo.
<DialogflowVersion> Opcional Especifica a versão do Dialogflow.

Exemplo

O exemplo seguinte mostra um pedido de webhook de exemplo, a política ParseDialogflowRequest correspondente e as variáveis de fluxo geradas após a aplicação da política:

Sintaxe

<?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>

Pedido de webhook

O exemplo seguinte mostra o pedido de webhook (no formato JSON) de um agente do 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 os vários campos que pode configurar no pedido, consulte WebhookRequest.

Aceda ao exemplo seguinte para ver a configuração da 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>

Aceda ao exemplo seguinte para ver as variáveis de fluxo criadas pela política.

Variáveis de fluxo

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 as variáveis de fluxo geradas começam por google.dialogflow, seguido do prefixo (my-prefix) conforme especificado no elemento <VariablePrefix>.

Este elemento tem os seguintes atributos comuns a todas as políticas:

Atributo Predefinição Obrigatório? Descrição
name N/A Obrigatório

O nome interno da política. O valor do atributo name pode conter letras, números, espaços, hífenes, sublinhados e pontos finais. Este valor não pode exceder 255 carateres.

Opcionalmente, use o elemento <DisplayName> para etiquetar a política no editor de proxy da IU de gestão com um nome diferente em linguagem natural.

continueOnError falso Opcional Definido como false para devolver um erro quando uma política falha. Este comportamento é o esperado para a maioria das políticas. Definido como true para que a execução do fluxo continue mesmo depois de uma política falhar. Veja também:
enabled verdadeiro Opcional Defina como true para aplicar a política. Defina como false para desativar a política. A política não é aplicada, mesmo que permaneça anexada a um fluxo.
async   falso Descontinuado Este atributo foi descontinuado.

Referência de elemento secundário

Esta secção descreve os elementos subordinados de <ParseDialogflowRequest>.

<DisplayName>

Use em conjunto com o atributo name para etiquetar a política no editor de proxy da IU de gestão com um nome diferente e mais natural.

O elemento <DisplayName> é comum a todas as políticas.

Valor predefinido N/A
Obrigatório? Opcional. Se omitir <DisplayName>, é usado o valor do atributo name da política.
Tipo String
Elemento principal <PolicyElement>
Elementos subordinados Nenhum

O elemento <DisplayName> usa a seguinte sintaxe:

Sintaxe

<PolicyElement>
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  ...
</PolicyElement>

Exemplo

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

O elemento <DisplayName> não tem atributos nem elementos subordinados.

<VariablePrefix>

Especifica um prefixo personalizado para as variáveis de fluxo. O valor especificado neste elemento tem o prefixo de todos os nomes de variáveis gerados pela política ParseDialogflowRequest. Por predefinição, todas as variáveis geradas pela política têm o prefixo google.dialogflow. Se tiver especificado o elemento VariablePrefix, o prefixo personalizado é adicionado após google.dialogflow. Por isso, o nome da variável começa com google.dialogflow.CUSTOM_PREFIX.

Se não especificar o elemento VariablePrefix, o nome da variável tem apenas o prefixo google.dialogflow.

Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <ParseDialogflowRequest>
Elementos subordinados Nenhum
O elemento <VariablePrefix> usa a seguinte sintaxe:

Sintaxe

<VariablePrefix>VARIABLE_PREFIX</VariablePrefix>

Exemplo

O exemplo seguinte define o VariablePrefix como my-prefix:

<VariablePrefix>my-custom-prefix</VariablePrefix>

De acordo com esta configuração, todos os nomes das variáveis começam por google.dialogflow.my-custom-prefix.

<DialogflowVersion>

Especifica a versão do Dialogflow. A política ParseDialogflowRequest só suporta a versão CX. Se não especificar este elemento na sua política, a versão é CX por predefinição.

Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal N/A
Elementos subordinados Nenhum
O elemento <DialogflowVersion> usa a seguinte sintaxe:

Sintaxe

<DialogflowVersion>DIALOGFLOW_VERSION</DialogflowVersion>

Exemplo

O exemplo seguinte define o DialogflowVersion como CX:

<DialogflowVersion>CX</DialogflowVersion>

Códigos de erro

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.

Tópicos relacionados

As implementações de referência de proxies do Apigee e fluxos partilhados que mostram a utilização da política ParseDialogflowRequest estão disponíveis no GitHub do Apigee. Para mais informações, consulte o artigo Implementações de referência de IA de conversação.