SetDialogflowResponse policy

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

Veja a documentação do Apigee Edge.

Ícone de política

Vista geral

A política SetDialogflowResponse facilita a integração do Dialogflow com o Apigee. Para mais informações, consulte o artigo Integração do Apigee com a IA do centro de contacto.

A política SetDialogflowResponse processa e formata os dados de resposta dos seus sistemas de back-end antes de enviar os dados como uma WebhookResponse para o agente do Dialogflow. Um agente do Dialogflow requer a WebhookResponse num formato específico, e a política SetDialogflowResponse cria a resposta no formato necessário. A política cria uma WebhookResponse no formato necessário para um agente do Dialogflow. O WebhookResponse tem expressões de linguagem natural e outros parâmetros que o agente do Dialogflow compreende.

Se for um integrador de serviços de back-end, não precisa de perder tempo a compreender o formato da Dialoglfow WebhookResponse. A política SetDialogflowResponse pronta a usar processa os dados de resposta de forma integrada.

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.

<SetDialogflowResponse>

Define uma política SetDialogflowResponse.

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

A tabela seguinte fornece uma descrição de nível elevado de todos os elementos secundários do elemento SetDialogflowResponse:

Elemento secundário Obrigatório? Descrição
<DisplayName> Opcional Um nome personalizado para a política.
<Source> Opcional Especifica a variável a analisar.
<DialogflowVersion> Opcional Especifica a versão do Dialogflow.
<NaturalLanguageResponse> Opcional Encapsula todo o conteúdo que tem de ser enviado como um objeto WebhookResponse.FulfillmentResponse.
<Parameters> Opcional Elemento principal de <Parameter>. Define o conjunto de parâmetros a definir na resposta do Webhook.
<IgnoreUnresolvedVariables> Opcional Especifica se o processamento é interrompido quando é encontrada uma variável não resolvida.
Outros elementos secundários
<MergeBehavior> Opcional Especifica o comportamento de união das mensagens de resposta.
<Header> Opcional Extrai o valor do campo especificado no cabeçalho da resposta.
<JSONPath> Opcional Extrai o valor do caminho JSON especificado.
<Parameter> Obrigatória Especifica um parâmetro a definir no objeto sessionInfo.parameters da resposta do webhook.
<Phrase> Obrigatória Especifica a expressão (texto) a definir no objeto fulfillmentResponse.messages da resposta do webhook.
<Phrases> Opcional Elemento principal de <Phrase>. Define o conjunto de expressões de linguagem natural a definir na resposta do webhook.
<Ref> Opcional Extrai o valor da variável de referência especificada.
<Value> Opcional Define um texto personalizado para o parâmetro especificado.

Exemplo

O exemplo seguinte mostra uma política SetDialogflowResponse de exemplo e a WebhookResponse enviada para o agente do Dialogflow:

Sintaxe

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

SetDialogflowResponse policy

O exemplo seguinte mostra a definição da 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>

Aceda ao exemplo seguinte para ver a resposta do webhook criada por esta política.

Resposta do webhook

O exemplo seguinte mostra uma WebhookResponse enviada para o agente do 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 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 <SetDialogflowResponse>.

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

<Source>

Especifica a variável a analisar. O valor de <Source> é predefinido como message. O valor message é sensível ao contexto. Num fluxo de pedidos, message é resolvido para a mensagem de pedido. Num fluxo de resposta, message é resolvido para a mensagem de resposta.

Embora use frequentemente esta política para extrair informações de uma mensagem de pedido ou resposta, pode usá-la para extrair informações de qualquer variável. Por exemplo, pode usá-la para extrair informações de uma entidade criada pela política AccessEntity, de dados devolvidos pela política ServiceCallout ou extrair informações de um objeto XML ou JSON.

Se não for possível resolver <Source> ou se for resolvido para um tipo que não seja de mensagem, a política falha e recebe um erro de tempo de execução.

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

Sintaxe

<Source>MESSAGE_VARIABLE</Source>

Exemplo

O exemplo seguinte define a origem como myMessageVar:

<Source>myMessageVar</Source>

<DialogflowVersion>

Especifica a versão do Dialogflow. A política SetDialogflowResponse 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 <SetDialogflowResponse>
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>

<IgnoreUnresolvedVariables>

Determina se o processamento é interrompido quando é encontrada uma variável não resolvida.

Valor predefinido True
Obrigatório? Opcional
Tipo Booleano
Elemento principal <SetDialogflowResponse>
Elementos subordinados Nenhum

Definido como true para ignorar as variáveis não resolvidas e continuar o processamento; caso contrário, false. O valor predefinido é true.

Definir <IgnoreUnresolvedVariables> como true é diferente de definir o <SetDialogflowResponse> de continueOnError como true. Se definir continueOnError como true, o Apigee ignora todos os erros, não apenas os erros nas variáveis.

O elemento <IgnoreUnresolvedVariables> usa a seguinte sintaxe:

Sintaxe

 <IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>

Exemplo

O exemplo seguinte define <IgnoreUnresolvedVariables> como false:

       <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<MergeBehavior>

Define o comportamento de união das mensagens de resposta. Pode especificar qualquer um dos seguintes valores:

  • APPEND: acrescenta as mensagens à lista de mensagens que aguardam envio para o utilizador.
  • REPLACE: substitui as mensagens mais antigas por mensagens mais recentes na lista de mensagens à espera de serem enviadas ao utilizador.
Se não especificar o elemento, o comportamento é predefinido para APPEND.
Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <NaturalLanguageResponse>
Elementos subordinados Nenhum
O elemento <MergeBehavior> usa a seguinte sintaxe:

Sintaxe

<MergeBehavior>BEHAVIOR</MergeBehavior>

Exemplo

O exemplo seguinte define o comportamento de união como APPEND:

<MergeBehavior>APPEND</MergeBehavior>

<NaturalLanguageResponse>

Encapsula toda a resposta de linguagem natural que quer enviar para o agente do Dialogflow.

Valor predefinido N/A
Obrigatório? Opcional
Tipo Objeto complexo
Elemento principal <SetDialogflowResponse>
Elementos subordinados <MergeBehavior>
<Phrases>

<Parameters>

Define o conjunto de parâmetros a definir na resposta do Webhook. O nome do parâmetro é um atributo do elemento <Parameter>.

Valor predefinido N/A
Obrigatório? Opcional
Tipo Objeto complexo
Elemento principal <SetDialogflowResponse>
Elementos subordinados <Parameter>

<Parameter>

Especifica um parâmetro a definir no objeto sessionInfo.parameters da resposta do webhook.

Pode especificar um texto estático como um valor de parâmetro ou extrair o valor de qualquer um dos seguintes campos na resposta:

  • Campos de cabeçalho da resposta
  • Payload de JSON
  • Variáveis de fluxo

Tem de definir um elemento <Parameter> separado para cada valor que quer extrair.

Valor predefinido N/A
Obrigatório? Obrigatória
Tipo Objeto complexo
Elemento principal <Parameters>
Elementos subordinados <Header>
<JSONPath>
<Ref>
<Value>
O elemento <Parameter> tem os seguintes atributos:
Atributo Descrição Obrigatório? Tipo
name O nome da variável a criar com este parâmetro. Sim String

O elemento <Parameter> usa a seguinte sintaxe:

Sintaxe

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

Extraia o valor do campo de cabeçalho

Este exemplo define o parâmetro timeSpent para o valor do campo de cabeçalho X-Time-Spent.

<Parameter name="timeSpent">
     <Header name="X-Time-Spent"/>
</Parameter>

Extraia o valor do caminho JSON

Este exemplo define o parâmetro claimAmount para o valor do campo claim.amount na carga útil JSON.

<Parameter name="claimAmount">
   <JSONPath>$.claim.amount</JSONPath>
</Parameter>

Extraia o valor da variável de fluxo

Este exemplo define o parâmetro myVar com o valor da variável de fluxo dialogflow.my.var.

<Parameter name="myVar">
   <Ref>dialogflow.my.var</Ref>
</Parameter>
       

Defina texto personalizado

Este exemplo define o valor do parâmetro responder como SYSTEM.

<Parameter name="responder">
   <Value>SYSTEM</Value>
</Parameter>

<Phrases>

Elemento principal de <Phrase>. Define a lista ordenada de expressões de linguagem natural a serem definidas na resposta do webhook.

Valor predefinido N/A
Obrigatório? Opcional
Tipo Objeto complexo
Elemento principal <NaturalLanguageResponse>
Elementos subordinados <Phrase>

<Phrase>

Especifica a expressão (texto) a definir no objeto fulfillmentResponse.messages da resposta do webhook.

Pode especificar um texto estático como um valor de expressão ou extrair o valor de qualquer um dos seguintes campos na resposta:

  • Campos de cabeçalho da resposta
  • Payload de JSON
  • Variáveis de fluxo

Tem de definir um elemento <Phrase> separado para cada valor que quer extrair.

Valor predefinido N/A
Obrigatório? Obrigatória
Tipo Objeto complexo
Elemento principal <Phrases>
Elementos subordinados <Header>
<JSONPath>
<Ref>
<Value>

O elemento <Phrase> usa a seguinte sintaxe:

Sintaxe

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

Extraia o valor do campo de cabeçalho

Este exemplo define um texto de linguagem natural na resposta para o valor do campo de cabeçalho X-Response-Text.

<Phrase>
     <Header name="X-Response-Text"/>
</Phrase>

Extraia o valor do caminho JSON

Este exemplo define um texto de linguagem natural na resposta para o valor do campo claim.status.text no payload JSON.

<Phrase>
   <JSONPath>$.claim.status.text</JSONPath>
</Phrase>

Extraia o valor da variável de fluxo

Este exemplo define um texto de linguagem natural na resposta para o valor da variável de fluxo myVar.

<Phrase>
   <Ref>myVar</Ref>
</Phrase>
       

Defina texto personalizado

Este exemplo adiciona o texto You call is important to us ao texto em linguagem natural na resposta.

<Phrase>
   <Value>You call is important to us</Value>
</Phrase>

Extrai o valor do campo especificado no cabeçalho da resposta. Pode usar o valor do cabeçalho para definir um texto em linguagem natural ou um parâmetro de resposta.

  • Para extrair o valor do cabeçalho como uma resposta em linguagem natural, especifique o elemento <Header> no interior do elemento <Phrase>.
  • Para extrair o valor do cabeçalho como um parâmetro de resposta, especifique o elemento <Header> no interior do elemento <Parameter>.
Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <Phrase>
<Parameter>
Elementos subordinados Nenhum
O elemento <Header> usa a seguinte sintaxe:

Sintaxe

<Header name="HEADER_FIELD"/>

Exemplo 1

O exemplo seguinte obtém o valor do campo de cabeçalho X-Response-Text como uma resposta de linguagem natural:

<Phrase>
  <Header name="X-Response-Text"/>
<Phrase/>

Exemplo 2

O exemplo seguinte obtém o valor do campo do cabeçalho X-Response-Text como um parâmetro de resposta:

<Parameter name="timeSpent">
  <Header name="X-Response-Text"/>
<Parameter/>

A variável de fluxo timeSpent é definida com o valor do campo de cabeçalho X-Response-Text.

O elemento <Header> tem os seguintes atributos:

Atributo Descrição Obrigatório? Tipo
nome Especifica o nome do cabeçalho de resposta do qual extrai o valor. Obrigatória String

<JSONPath>

Extrai o valor de um caminho JSON num payload JSON da chamada de serviço. Pode usar o valor para definir um texto de linguagem natural ou um parâmetro de resposta.

  • Para extrair o valor JSON como um texto de linguagem natural, especifique o elemento <JSONPath> no interior do elemento <Phrase>.
  • Para extrair o valor JSON como um parâmetro de resposta, especifique o elemento <JSONPath> no elemento <Parameter>.
Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <Phrase>
<Parameter>
Elementos subordinados Nenhum
O elemento <JSONPath> usa a seguinte sintaxe:

Sintaxe

<JSONPath>JSON_PATH</JSONPath>

Exemplo 1

O exemplo seguinte obtém o valor do campo JSON claim.status.text como uma resposta de linguagem natural:

<Phrase>
  <JSONPath>$.claim.status.text</JSONPath>
<Phrase/>

Exemplo 2

O exemplo seguinte obtém o valor do campo JSON claim.amount como um parâmetro de resposta:

<Parameter name="claimAmount">
  <JSONPath>$.claim.amount.</JSONPath>
<Parameter/>

A variável de fluxo claimAmount é definida com o valor do campo JSON {claim.amount}.

<Ref>

Extrai o valor de uma variável de fluxo existente. Pode usar o valor para definir um texto de linguagem natural ou um parâmetro de resposta.

  • Para extrair o valor de uma variável como texto de linguagem natural, especifique o elemento <Ref> no interior do elemento <Phrase>.
  • Para extrair o valor de uma variável como um parâmetro de resposta, especifique o elemento <Ref> no interior do elemento <Parameter>.
Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <Phrase>
<Parameter>
Elementos subordinados Nenhum
O elemento <Ref> usa a seguinte sintaxe:

Sintaxe

<Ref>EXISTING_FLOW_VARIABLE</Ref>

Exemplo 1

O exemplo seguinte obtém o valor da variável de fluxo myVar como uma resposta em linguagem natural:

<Phrase>
  <Ref>myVar</Ref>
<Phrase/>

Exemplo 2

O exemplo seguinte obtém o valor da variável de fluxo dialogflow.my.var como um parâmetro de resposta:

<Parameter name="customVar">
  <Ref>dialogflow.my.var</Ref>
<Parameter/>

A variável de fluxo customVar é definida com o valor da variável dialogflow.my.var.

<Value>

Define um valor literal para um texto de linguagem natural ou um parâmetro de resposta.

  • Para definir o valor literal como um texto em linguagem natural, especifique o elemento <Value> no interior do elemento <Phrase>.
  • Para definir o valor literal como um parâmetro de resposta, especifique o elemento <Value> no interior do elemento <Parameter>.
Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <Phrase>
<Parameter>
Elementos subordinados Nenhum
O elemento <Value> usa a seguinte sintaxe:

Sintaxe

<Value>CUSTOM_TEXT</Value>

Exemplo 1

O exemplo seguinte define o texto literal You call is important to us como uma resposta de linguagem natural:

<Phrase>
  <Value>You call is important to us</Value>
<Phrase/>

Exemplo 2

O exemplo seguinte define o texto literal SYSTEM como um parâmetro de resposta:

<Parameter name="responder">
  <Value>SYSTEM</Value>
<Parameter/>

A variável de fluxo responder está definida como SYSTEM.

Códigos de erro

Esta secção descreve os códigos de falha e as mensagens de erro devolvidas, bem como as variáveis de falha definidas pelo Apigee quando esta política aciona um erro. Estas informações são importantes para saber se está a desenvolver regras de falhas para tratar falhas. Para saber mais, consulte o artigo O que precisa de saber acerca dos erros de políticas e Como processar falhas.

Erros de tempo de execução

Estes erros podem ocorrer quando a política é executada.

Código de falha Estado de HTTP Causa
steps.setdialogflowresponse.ExecutionFailed 500 Este erro ocorre quando a execução da política falhou devido a uma exceção genérica. A mensagem de falha tem os detalhes da exceção.
steps.setdialogflowresponse.InvalidSourceType 500 Este erro ocorre se a variável especificada no elemento <Source> não for do tipo message.
steps.setdialogflowresponse.MalformedInput 500 Este erro ocorre quando o JSON fornecido a esta política é inválido ou está mal formado.
steps.setdialogflowresponse.SourceMessageNotAvailable 500 Este erro ocorre se a variável message especificada no elemento Source da política for:
  • Fora do âmbito (não disponível no fluxo específico onde a política é executada)
  • ou
  • Não é possível resolver (não está definido)
steps.setdialogflowresponse.UnresolvedHeader 500 Este erro ocorre se o elemento Header tiver um cabeçalho inválido. Por exemplo, se o elemento Header tiver o valor X-Response-Text, e não existir nenhum X-Response-Text no cabeçalho da resposta, recebe este erro.
steps.setdialogflowresponse.UnresolvedJSONPath 500 Este erro ocorre se o elemento JSONPath tiver um caminho inválido. Por exemplo, se o elemento JSONPath tiver o valor {claim.status.value}, e não existir nenhum objeto status no payload JSON, recebe este erro.
steps.setdialogflowresponse.UnresolvedVariable 500

Este erro ocorre se uma variável especificada na política SetDialogflowResponse for:

  • Fora do âmbito (não disponível no fluxo específico onde a política está a ser executada)
  • ou
  • Não é possível resolver (não está definido)

Erros de implementação

Estes erros podem ocorrer quando implementa um proxy que contém esta política.

Nome do erro Causa
UnsupportedOperation Este erro ocorre se tiver especificado uma versão do Dialogflow não suportada no elemento DialogflowVersion. A política SetDialogflowResponse só suporta a versão CX.

Variáveis de falha

Sempre que existem erros de execução numa política, o Apigee gera mensagens de erro. Pode ver estas mensagens de erro na resposta de erro. Muitas vezes, as mensagens de erro geradas pelo sistema podem não ser relevantes no contexto do seu produto. Pode personalizar as mensagens de erro com base no tipo de erro para tornar as mensagens mais significativas.

Para personalizar as mensagens de erro, pode usar regras de falhas ou a política RaiseFault. Para informações sobre as diferenças entre as regras de falhas e a política RaiseFault, consulte Regras de falhas vs. a política RaiseFault. Tem de verificar as condições através do elemento Condition nas regras de falhas e na política RaiseFault. O Apigee fornece variáveis de falhas exclusivas para cada política, e os valores das variáveis de falhas são definidos quando uma política aciona erros de tempo de execução. Ao usar estas variáveis, pode verificar condições de erro específicas e tomar as medidas adequadas. Para mais informações sobre a verificação das condições de erro, consulte o artigo Criar condições.

A tabela seguinte descreve as variáveis de falha específicas desta política.

Variáveis Onde Exemplo
fault.name="FAULT_NAME" FAULT_NAME é o nome da falha, conforme indicado na tabela Erros de tempo de execução. O nome da falha é a última parte do código de falha. fault.name Matches "UnresolvedVariable"
setdialogflowresponse.POLICY_NAME.failed POLICY_NAME é o nome especificado pelo utilizador da política que gerou a falha. setdialogflowresponse.My-Set-Dialogflow-Response.failed = true
Para mais informações sobre erros de políticas, consulte o artigo O que precisa de saber sobre erros de políticas.

Tópicos relacionados

As implementações de referência de proxies do Apigee e fluxos partilhados que mostram a utilização da política SetDialogflowResponse 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.