Esta página aplica-se ao Apigee e ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
Vista geral
A política ParseDialogflowRequest 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.
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, pesquisas ou lógica orquestrada 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) 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 Opcionalmente, use o elemento |
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 |
<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 |
<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
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 o artigo Processamento de falhas.
Erros de tempo de execução
Estes erros podem ocorrer quando a política é executada.
Código de falha | Estado de HTTP | Causa | Corrigir |
---|---|---|---|
steps.parsedialogflowrequest.InvalidSessionInfo |
500 |
Este erro ocorre se existir um campo sessionInfo.session inválido num pedido do Dialogflow. Um webhook pode usar este campo para identificar uma sessão. Para obter informações sobre o formato de sessão suportado, consulte Class SessionInfo. | |
steps.parsedialogflowrequest.MalformedInput |
500 |
Este erro ocorre quando o JSON fornecido a esta política é inválido ou está mal formado. |
Erros de implementação
Estes erros podem ocorrer quando implementa um proxy que contém esta política.
Nome do erro | Causa | Corrigir |
---|---|---|
UnsupportedOperation |
Este erro ocorre se tiver especificado uma versão do Dialogflow não suportada no elemento DialogflowVersion . A política ParseDialogflowRequest 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" |
ParseDialogflowRequest.POLICY_NAME.failed |
POLICY_NAME é o nome especificado pelo utilizador da política que gerou a falha. | ParseDialogflowRequest.My-Parse-Dialogflow-Req.failed = true |
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.