Definir, referenciar, configurar e conseguir parâmetros
Há quatro maneiras gerais de usar os parâmetros:
- Definir no momento do design: durante o momento do design, você usa o console ou a API para definir parâmetros. Por exemplo, você pode definir um parâmetro de intent e usá-lo em uma frase de treinamento para indicar a entrada do usuário final que deve ser extraída.
- Referência no momento do design: referências de parâmetro são variáveis que armazenam valores de parâmetro extraídos no ambiente de execução. Durante tempo de design, use o console ou a API para fazer referência a parâmetros em vários tipos de dados. Por exemplo, é possível fazer referência a um parâmetro de sessão em uma resposta de fulfillment estática para uma rota.
- Definido no ambiente de execução: no ambiente de execução, o serviço do Dialogflow CX, o serviço que chama a API e o serviço de webhook podem definir valores de parâmetro. Por exemplo, o serviço do Dialogflow CX define o valor de um parâmetro de intent quando uma entrada do usuário final corresponde à intent, e a entrada contém dados de parâmetro.
- Receber no ambiente de execução: no ambiente de execução, as referências de parâmetro contêm os valores de parâmetro que foram definidos, e você pode usar a API ou um webhook para receber os valores de parâmetro. Por exemplo, quando uma intent é correspondida e o webhook é chamado, o serviço de webhook recebe os valores de parâmetro da intent.
Nomenclatura de parâmetros
As seguintes regras se aplicam à nomenclatura de parâmetros:
- Use os seguintes caracteres:
[A-Z],[a-z],[0-9],.,-,_ - Os nomes de parâmetros não diferenciam maiúsculas de minúsculas.
Portanto, o Dialogflow CX trata
Appleeapplecomo o mesmo parâmetro. O código do webhook e do cliente da API também precisa tratar os nomes de parâmetros como não diferenciação de maiúsculas de minúsculas, porque não há garantia de diferenciação de maiúsculas de minúsculas para nomes de parâmetros retornados pelo Dialogflow CX. - Ao criar parâmetros com o mesmo ID ou nome de exibição em diferentes intents ou formulários, verifique se o tipo de entidade e outras configurações são os mesmos para todas as definições. Se o tipo de entidade ou outras configurações de parâmetro forem diferentes, use um ID de parâmetro ou nome de exibição exclusivo para cada definição.
Tipos de valores de parâmetro
Os valores de parâmetro são compatíveis com vários tipos de valor. A seção de sessões a seguir descreve como referenciar cada tipo de valor de parâmetro. Veja a seguir os tipos compatíveis:
| Tipo | Descrição |
|---|---|
| Escalar | Um único valor numérico ou de string. |
| Composto | Um objeto JSON preenchido pela correspondência de uma entidade composta ou pelo preenchimento de um parâmetro de intent, que contém os campos original e resolved. |
| Lista | Uma lista de valores escalares ou compostos preenchidos para um parâmetro configurado como uma lista. Confira as seguintes opções de É uma lista. |
String vazia de parâmetro e valores nulos
É possível definir valores de parâmetro de string como "",
o que define o parâmetro como a string vazia.
É possível definir qualquer valor de parâmetro como null,
o que indica que o parâmetro não foi definido.
Valores originais de parâmetro
Quando o texto é associado a uma entidade específica no ambiente de execução, ele geralmente é resolvido para um valor mais conveniente para o processamento. Por exemplo, a palavra "maçãs" na entrada do usuário final pode ser resolvida como "maçã" para uma entidade de fruta.
Todos os tipos de valor para referências de parâmetro de intent podem se referir ao valor original ou resolvido.
Somente tipos de valor composto para referências de parâmetro de sessão podem referenciar o valor original.
Parâmetros de intent
As intents usam parâmetros para extrair dados fornecidos pelos usuários finais quando as intents são correspondidas. Os seguintes dados são usados para definir um parâmetro de intent:
- Nome (também conhecido como ID ou Nome de exibição): um nome que identifica o parâmetro.
- Tipo de entidade: o tipo de entidade associado ao parâmetro.
- É uma lista: se for verdadeiro, o parâmetro será tratado como uma lista de valores.
- Editar no registro: se for verdadeiro, os dados de parâmetro fornecidos pelo usuário final serão editados.
Definir parâmetros de intent
Os parâmetros de intent são definidos no momento do design ao criar dados de intent ou ao anotar frases de treinamento.
Parâmetros de intent de referência
As referências de parâmetro de intent podem ser usadas em mensagens de resposta de fulfillment estática de rotas de intent.
É possível referenciar o valor original ou o valor resolvido.
Para referenciar um parâmetro da intent correspondente atual, use um dos seguintes formatos:
$intent.params.parameter-id.original $intent.params.parameter-id.resolved
Por exemplo, se o código do parâmetro for date, é possível fazer referência ao valor resolvido como $intent.params.date.resolved.
Definir parâmetros de intent
Quando uma entrada do usuário final corresponde a uma intent no ambiente de execução, qualquer parâmetro usado por uma anotação para a frase de treinamento associada é definido pelo Dialogflow CX.
O fulfillment de uma rota de intent pode usar uma predefinição de parâmetro de fulfillment para definir um valor de parâmetro de intent no ambiente de execução.
Receber parâmetros de intent
Durante a rodada de conversas em que uma intent é correspondida, o código que você tem pode acessar os valores de parâmetro da intent.
As interações com a API vão retornar os valores de parâmetro de intent.
Consulte o campo de resposta queryResult.parameters do método detectIntent
para o tipo Session.
Selecione um protocolo e uma versão para a referência de sessão:
| Protocolo | V3 | V3beta1 |
|---|---|---|
| REST | Recurso de sessão | Recurso de sessão |
| RPC (remote procedure call) | Interface de sessão | Interface de sessão |
| C++ | SessionsClient | Indisponível |
| C# | SessionsClient | Indisponível |
| Go | SessionsClient | Indisponível |
| Java | SessionsClient | SessionsClient |
| Node.js | SessionsClient | SessionsClient |
| PHP | Indisponível | Indisponível |
| Python | SessionsClient | SessionsClient |
| Ruby | Indisponível | Indisponível |
Valores de parâmetro de intent de recebimento do webhook.
Consulte o campo intentInfo.parameters na solicitação de webhook.
Parâmetros do formulário
Para cada página, é possível definir um formulário, que é uma lista de parâmetros que precisam ser coletados do usuário final para a página. O agente interage com o usuário final em várias rodadas de conversas até que ele tenha coletado todos os parâmetros de formulário obrigatórios, também conhecidos como parâmetros de página. O agente coleta esses parâmetros na ordem definida na página. Para cada parâmetro de formulário obrigatório, você também fornece prompts que o agente usa para solicitar essas informações do usuário final. Esse processo é chamado de preenchimento de formulário.
Por exemplo, é possível criar um formulário
que coleta o nome e o número de telefone
do usuário final de uma página Collect Customer Info.
Os seguintes dados são usados para definir um parâmetro de formulário:
| Nome da opção do console | Cadeia de campos da API | Descrição |
|---|---|---|
| Nome de exibição | Page.form.parameters[].displayName |
Um nome que identifica o parâmetro. |
| Tipo de entidade | Page.form.parameters[].entityType |
O tipo de entidade associado ao parâmetro. |
| Obrigatório | Page.form.parameters[].required |
Indica se o parâmetro é obrigatório. Os parâmetros obrigatórios devem ser preenchidos antes da conclusão do preenchimento do formulário, e o agente solicitará valores ao usuário final. Consulte a seção Definir parâmetros de formulário para mais detalhes. |
| Valor padrão (visível somente quando a opção Obrigatório está desmarcada) | Page.form.parameters[].defaultValue |
O valor padrão de um parâmetro opcional. Consulte a seção Definir parâmetros de formulário para mais detalhes. |
| É uma lista | Page.form.parameters[].isList |
Se for verdadeiro, o parâmetro será tratado como uma lista de valores. |
| Editar no registro | Page.form.parameters[].redact |
Se verdadeiro, os dados de parâmetros fornecidos pelo usuário final serão editados. |
| Fulfillment do prompt inicial | Page.form.parameters[].fillBehavior.initialPromptFulfillment |
Solicitações iniciais na forma de fulfillment para solicitar um valor de parâmetro obrigatório ao usuário final. Consulte a seção Definir parâmetros de formulário para mais detalhes. |
| Manipuladores de eventos de reenvio do comando | Page.form.parameters[].fillBehavior.repromptEventHandlers |
São usados quando o agente precisa solicitar novamente que o usuário final preencha o parâmetro após uma tentativa com falha. Consulte Gerenciadores de nova solicitação de preenchimento de formulário. Se nenhum manipulador de eventos de reprompt estiver definido, o agente enviará novamente o prompt com os prompts iniciais após uma tentativa com falha. |
| DTMF | Indisponível | Consulte a seção DTMF a seguir. |
Definir e gerenciar parâmetros de formulário
Os parâmetros do formulário são definidos no momento do design ao criar uma página.
Para mudar a ordem dos parâmetros do formulário com o console, clique no título da seção Parâmetros na página e arraste as linhas de parâmetros na tabela.
Para excluir um parâmetro de formulário, clique no título da seção Parâmetros na página, mantenha o ponteiro sobre um parâmetro e clique no botão de exclusão delete.
Parâmetros do formulário de referência
As referências de parâmetro do formulário não são usadas diretamente. Você só pode verificar o status de preenchimento dos parâmetros de formulários individuais ou do formulário como um todo. Você pode usar essas referências de status de formulário em um requisito de condição de uma rota de condição.
Para verificar se o formulário completo da página atual está preenchido, use a seguinte condição:
$page.params.status = "FINAL"
Para verificar se um parâmetro de formulário específico foi preenchido na última rodada, use a seguinte condição:
$page.params.parameter-id.status = "UPDATED"
Definir parâmetros de formulário
É possível definir os valores de parâmetro do formulário de várias maneiras. As subseções a seguir descrevem cada mecanismo para definir os valores de parâmetro do formulário.
Valores de parâmetro padrão
Você tem a opção de fornecer valores padrão para parâmetros de formulário opcionais. Quando o preenchimento do formulário é iniciado, todos os parâmetros opcionais não definidos são definidos para os valores padrão. Esses valores podem ser inicializados ou substituídos por alguns dos mecanismos a seguir.
Se um parâmetro for obrigatório, o valor padrão será ignorado.
Preenchimento de formulário
O Dialogflow CX define automaticamente os valores de parâmetro fornecidos pelo usuário final durante o preenchimento do formulário. O agente coleta os parâmetros necessários na ordem definida na página. O agente solicita ao usuário final os valores necessários usando o fulfillment inicial que você fornece para cada parâmetro obrigatório. Os parâmetros opcionais não acionam comandos.
Se um valor de parâmetro obrigatório não for fornecido pelo usuário final após um prompt do agente, o prompt inicial será repetido, a menos que um comportamento diferente seja definido nos gerenciadores de nova solicitação. Se houver várias solicitações de texto iniciais definidas, o comportamento do agente será o mesmo de qualquer resposta de texto de fulfillment.
Propagação do parâmetro da intent e da sessão
Quando um parâmetro de qualquer tipo for definido no ambiente de execução, ele é gravado na sessão e se torna um parâmetro de sessão.
Quando uma página se torna ativa inicialmente, e durante seu período ativo, qualquer parâmetro de formulário com o mesmo nome de um parâmetro de sessão é definido automaticamente como o valor de parâmetro de sessão.
Isso pode acontecer com um parâmetro de intent correspondente em uma rota de intent ou uma propagação de parâmetro.
A propagação de parâmetros de intent e sessão é o único mecanismo para definir parâmetros de formulário opcionais para valores da entrada do usuário final. No entanto, esse mecanismo também pode definir ou modificar os valores de parâmetros do formulário necessários.
Predefinições de parâmetro de fulfillment
O fulfillment para uma rota, manipulador de eventos ou reprompt de formulário pode usar uma predefinição de parâmetro de fulfillment para definir um valor de parâmetro de formulário no ambiente de execução. Uma predefinição de parâmetro de fulfillment substituirá um valor de parâmetro, incluindo valores padrão de parâmetros.
Configuração do parâmetro do webhook
O webhook pode definir os valores dos parâmetros de formulário no ambiente de execução.
Veja o campo pageInfo.formInfo.parameterInfo na resposta do webhook.
Receber parâmetros de formulário
As interações com a API retornarão os valores de parâmetro do formulário.
Consulte o campo de resposta queryResult.parameters do método detectIntent
para o tipo Session.
Selecione um protocolo e uma versão para a referência de sessão:
| Protocolo | V3 | V3beta1 |
|---|---|---|
| REST | Recurso de sessão | Recurso de sessão |
| RPC (remote procedure call) | Interface de sessão | Interface de sessão |
| C++ | SessionsClient | Indisponível |
| C# | SessionsClient | Indisponível |
| Go | SessionsClient | Indisponível |
| Java | SessionsClient | SessionsClient |
| Node.js | SessionsClient | SessionsClient |
| PHP | Indisponível | Indisponível |
| Python | SessionsClient | SessionsClient |
| Ruby | Indisponível | Indisponível |
Valores de parâmetro do formulário de recebimento do webhook.
Consulte o campo pageInfo.formInfo.parameterInfo na solicitação de webhook.
Gerenciadores de prompts de preenchimento de formulário
Os manipuladores de reenvio do comando, também conhecidos como manipuladores de eventos no nível do parâmetro, são usados para definir o comportamento complexo de comandos de parâmetros obrigatórios. Por exemplo, gerenciadores de nova solicitação podem ser usados para alterar a solicitação quando o usuário final não fornece um valor após a solicitação inicial e fazer a transição para outra página após N tentativas malsucedidas.
Se nenhum gerenciador de nova solicitação for definido, a solicitação inicial será usada para enviar uma nova solicitação ao usuário final, conforme necessário.
Se o usuário final responder com entrada inesperada, um evento sys.no-match-* ou sys.no-input-* será invocado,
e todos os gerenciadores de nova solicitação definidos para esses eventos serão chamados.
Assim como outros manipuladores de eventos, um gerenciador de reprompt é um tipo de gerenciador de estado que pode ser configurado com um ou ambos:
- Um fulfillment para fornecer uma mensagem de reenvio do comando ao usuário final e uma predefinição de parâmetro.
- Um destino de transição para alterar a página atual.
Parâmetros de sessão
Quando um parâmetro de qualquer tipo for definido no ambient de execução, ele é gravado na sessão e se torna um parâmetro de sessão. Esses parâmetros não são definidos explicitamente no momento do design. Durante uma sessão, é possível referir-se a esses parâmetros de sessão a qualquer momento.
Parâmetros da sessão de referência
As referências de parâmetro de sessão podem ser usadas nas mensagens de resposta estática para os seguintes tipos de fulfillment:
- Fulfillment de entrada de página
- Fulfillment da rota
- Fulfillment do manipulador de eventos
- Fulfillment de prompt de formulário
- Fulfillment de reprompt de formulário
As referências também podem ser usadas em:
- Valores de cabeçalho do webhook para autenticação.
- Solicitações de webhook flexíveis, para enviar valores de parâmetro a um webhook.
Para fazer referência a um parâmetro de sessão, use os seguintes formatos:
Escalar
Para acessar um parâmetro com um tipo de entidade escalar:
$session.params.parameter-id
Por exemplo, se o código do parâmetro for date, é possível fazer referência ao valor como $session.params.date.
Composto
Para acessar um membro de um parâmetro com um tipo de entidade composta:
$session.params.parameter-id.member-name
Por exemplo, se o ID do parâmetro for
location, faça referência ao valor do membrozip-codecomo$session.params.location.zip-code.Para acessar o valor original de um parâmetro com um tipo de entidade composta:
$session.params.parameter-id.original
Para acessar o objeto completo de um parâmetro com um tipo de entidade composta, use a função do sistema IDENTITY.
Lista
Para acessar uma lista completa de elementos:
$session.params.parameter-id
Por exemplo, se o ID do parâmetro de lista for
colorse os valores extraídos de uma consulta de usuário forem["red", "blue", "yellow"], você poderá referenciar todos os valores como$session.params.colors.Para acessar o elemento ith de um parâmetro de lista:
$session.params.parameter-id[i]
Por exemplo, se o ID do parâmetro da lista for
colors, será possível fazer referência ao primeiro valor como$session.params.colors[0].
Definir parâmetros de sessão
Quando o preenchimento do formulário é concluído, os parâmetros preenchidos são gravados na sessão pelo Dialogflow CX.
O fulfillment para uma rota, manipulador de eventos ou reprompt de formulário pode usar uma predefinição de parâmetro de fulfillment para definir um valor de parâmetro de sessão no ambiente de execução.
O webhook pode definir os valores dos parâmetros de sessão no ambiente de execução.
Consulte o campo sessionInfo.parameters na
resposta padrão do webhook
ou consulte a
resposta flexível do webhook.
As interações com a API podem definir valores de parâmetro de sessão.
Consulte o campo de solicitação queryParams.parameters do método detectIntent
para o tipo Session.
Selecione um protocolo e uma versão para a referência de sessão:
| Protocolo | V3 | V3beta1 |
|---|---|---|
| REST | Recurso de sessão | Recurso de sessão |
| RPC (remote procedure call) | Interface de sessão | Interface de sessão |
| C++ | SessionsClient | Indisponível |
| C# | SessionsClient | Indisponível |
| Go | SessionsClient | Indisponível |
| Java | SessionsClient | SessionsClient |
| Node.js | SessionsClient | SessionsClient |
| PHP | Indisponível | Indisponível |
| Python | SessionsClient | SessionsClient |
| Ruby | Indisponível | Indisponível |
Receber parâmetros de sessão
As interações com a API retornarão os valores de parâmetro de sessão.
Consulte o campo de resposta queryResult.parameters do método detectIntent
para o tipo Session.
Selecione um protocolo e uma versão para a referência de sessão:
| Protocolo | V3 | V3beta1 |
|---|---|---|
| REST | Recurso de sessão | Recurso de sessão |
| RPC (remote procedure call) | Interface de sessão | Interface de sessão |
| C++ | SessionsClient | Indisponível |
| C# | SessionsClient | Indisponível |
| Go | SessionsClient | Indisponível |
| Java | SessionsClient | SessionsClient |
| Node.js | SessionsClient | SessionsClient |
| PHP | Indisponível | Indisponível |
| Python | SessionsClient | SessionsClient |
| Ruby | Indisponível | Indisponível |
Valores de parâmetro de sessão de recebimento do webhook.
Consulte o campo sessionInfo.parameters na solicitação de webhook.
Desativar o reconhecimento de fala para telefonia
Em um ambiente barulhento, o reconhecimento de fala pode transcrever o ruído de fundo como entrada do usuário final. Em uma integração de telefonia, essas transcrições falsas podem acionar eventos sem correspondência ou interromper um usuário final que está inserindo dígitos DTMF com o teclado.
Para aceitar apenas entrada DTMF, defina o parâmetro de sessão telephony_disable_voice_processing como true. A partir da próxima rodada de conversa, o Dialogflow CX
ignora a entrada de fala e processa apenas a entrada DTMF. Essa configuração permanece em vigor
pelo restante da sessão. Para reativar o reconhecimento de fala, defina o
parâmetro como false.
Recomendamos que você use esse parâmetro como substituto, não no início de uma
conversa. Por exemplo, depois que o usuário final acionar dois eventos consecutivos sem correspondência
ou sem entrada, use uma
predefinição de parâmetro de fulfillment
para definir o parâmetro como true e, em seguida, peça para o usuário final usar o teclado.
Verifique se a DTMF está ativada para os parâmetros que o usuário final precisa
fornecer.
Propagação de parâmetro
Quando uma entrada de usuário final fornece um valor de parâmetro, ele pode ser propagado para outros níveis:
- Quando um parâmetro de intent é definido por uma correspondência de intent, os parâmetros de formulário semelhantes à página ativa são definidos com o mesmo valor. O tipo de entidade do parâmetro é determinado pela definição do parâmetro da intent.
- Quando um parâmetro de intent é definido por uma correspondência de intent ou um parâmetro de formulário é definido durante o preenchimento de um formulário, ele se torna um parâmetro de sessão.
DTMF para integrações de telefonia
É possível ativar e configurar o DTMF (sinalização multifrequência único de frequência) para um parâmetro. Depois de ativado, um usuário final de um agente que usa uma integração de telefonia pode usar o teclado do telefone para fornecer valores de parâmetro.
Para reduzir a ambiguidade, a entrada DTMF pode ser interpretada em formas normais e específicas do DTMF (recomendado):
- O formato normal são os valores do teclado inseridos pelo usuário final.
Por exemplo,
123# - O formulário específico do DTMF converte a entrada para
dtmf_digits_[digits], em que[digits]são os dígitos originais do DTMF por*substituídos porstare#substituídos. compound. Por exemplo,123#é interpretado comodtmf_digits_123pound.
Ao corresponder tipos de entidade para um parâmetro,
o Dialogflow CX tentará corresponder os formulários normais e específicos de DTMF.
Quando um tipo de entidade é usado para a entrada DTMF,
é recomendável definir sinônimos como dtmf_digits_123
para melhorar a correspondência de NLU.
Se a entrada DTMF não atender à condição de encerramento (não atingiu o comprimento máximo de dígitos ou não foi encerrada pelo dígito de término), o agente do Dialogflow CX continuará aguardando mais entradas. Durante esse período, se o tempo limite de falta de fala for acionado, o agente invocará um evento sem entrada. Se apenas uma fala for detectada, o agente fará a correspondência com a entrada de fala. Se as entradas de fala e de DTMF forem detectadas, a entrada de fala será descartada, e apenas a de DTMF será considerada.
Para ativar e personalizar o DTMF para um parâmetro:
Console
- Ative as Configurações avançadas da fala de agente e as configurações de URA, caso ainda não tenha ativado.
- Crie um parâmetro de página.
- No painel de parâmetros, ative a opção Ativar DTMF.
- Defina Números máximos como o número máximo de dígitos que o usuário final pode fornecer para esse parâmetro.
- Defina o Dígito de fim para o valor do teclado que
encerrará a entrada do DTMF para o parâmetro.
É comum usar
#nesta configuração. O dígito de finalização não é adicionado à consulta do Dialogflow CX no agente. Portanto, se o dígito de finalização for # e a entrada for 123#, a entrada real da consulta será "123".
Ao criar seu agente, é possível testar as entradas DTMF no simulador.
Parâmetros com escopo de fluxo
Os parâmetros com escopo de fluxo podem ser definidos como predefinições de parâmetros de fulfillment ou parâmetros de formulário. Esses parâmetros só podem ser referenciados enquanto o fluxo em que estão definidos estiver ativo, e eles não são mantidos nos parâmetros da sessão.
Para definir ou referenciar um parâmetro com escopo de fluxo, use a seguinte sintaxe:
$flow.parameter-name
Por exemplo,
se o nome do parâmetro for date,
você poderá definir ou referenciar o parâmetro como $flow.date.
O uso de um prefixo de $ ao definir parâmetros
é diferente de outros tipos de parâmetros que não usam $
para definições de parâmetros.
Exemplo de definição de parâmetro com escopo de fluxo:

Ciclo de vida do valor de parâmetro com escopo de fluxo
É incomum, mas em certos casos avançados, pode ser necessário entender como os valores de parâmetros com escopo de fluxo são retidos (ou descartados) quando um fluxo se torna inativo e, em seguida, ativo novamente.
A retenção dos valores de parâmetros com escopo de fluxo quando um fluxo se torna inativo e, em seguida, ativo novamente depende da pilha de fluxo e das instâncias de fluxo na pilha.
- Quando o fluxo A faz a transição para o fluxo B usando um destino de transição específico, o fluxo A (fluxo pai) permanece na pilha, mantém os valores de parâmetro com escopo de fluxo e uma nova instância do fluxo B (fluxo filho) é adicionada à pilha.
- Quando um fluxo filho volta para um fluxo pai usando um destino de transição simbólico (por exemplo, END_FLOW), o fluxo filho é removido da pilha, todos os valores de parâmetro com escopo de fluxo filho são descartados e todos os valores de parâmetro com escopo de fluxo pai são mantidos.
- Usando uma série de transições com destinos específicos, a pilha de fluxos pode conter várias instâncias de um tipo de fluxo. Cada instância do tipo de fluxo tem valores de parâmetro exclusivos com escopo de fluxo. Por exemplo: A1 -> B1 -> C1 -> B2, em que A, B e C são tipos de fluxo, e os números indicam instâncias desses tipos de fluxo. Neste exemplo, B1 e B2 são instâncias diferentes do fluxo B e têm parâmetros exclusivos com escopo de fluxo.
Exemplos:
| Transições | Resultado |
|---|---|
| O fluxo A (A1) é ativado. O fluxo B (B1) é ativado usando um destino de transição específico. O fluxo B volta para o fluxo A (A1) que o iniciou usando um destino de transição simbólico. |
O fluxo A retém os valores de parâmetro. |
| O fluxo A (A1) é ativado. O fluxo B (B1) é ativado usando um destino de transição específico. O fluxo B faz a transição para uma nova instância do fluxo A (A2) usando um destino de transição específico. |
A nova instância do fluxo A (A2) na parte de cima da pilha não tem acesso aos valores de parâmetro do fluxo A (A1) na parte de baixo da pilha. |
| O fluxo A (A1) é ativado. O fluxo B (B1) é ativado usando um destino de transição específico. O fluxo A (A1) se torna ativo usando um destino de transição simbólico. O fluxo B (B2) é ativado usando um destino de transição específico. |
O fluxo B (B2) não retém os valores de parâmetro que foram definidos enquanto ele estava ativo após a segunda transição (B1). |
Parâmetros com escopo de solicitação
Os parâmetros com escopo de solicitação são parâmetros de curta duração criados pelo Dialogflow CX que só podem ser referenciados durante o ciclo de vida da solicitação atual e não são mantidos nos parâmetros da sessão.
Os parâmetros com escopo de solicitação são gerados pelo Dialogflow CX para os recursos a seguir.
Parâmetros integrados
É possível acessar os vários dados associados à solicitação usando:
| Referência | Descrição |
|---|---|
| $request.agent-id | O identificador do agente. |
| $request.session-id | O identificador da sessão. |
| $request.project-id | O identificador do projeto. |
| $request.location-id | O identificador do local do agente. |
| $request.language | Código de idioma especificado em QueryInput.language_code. |
| $request.resolved-language | O código de idioma real usado pelo agente durante o processamento. O idioma resolvido pode ser diferente do especificado na solicitação. Por exemplo, se o agente só for compatível com "en", enquanto o idioma especificado na solicitação for "en-US", o idioma resolvido será "en". |
| $request.user-utterance | A fala do usuário atual especificada na solicitação. |
| $request.last-agent-utterance | A fala mais recente enviada pelo agente. |
| $request.nlu-confidence-score | A pontuação de confiança atual da classificação de NLU. |
| $request.end-user-metadata | Os metadados do usuário final especificados na solicitação. |
| $request.webhook_status_code | O código de status HTTP da chamada de webhook. |
Payload personalizado
Quando QueryParameters.payload é definido, é possível acessar o parâmetro correspondente usando $request.payload.param-id.
Análise de sentimento
As seguintes referências de sentimento estão disponíveis quando a análise de sentimento está ativada:
| Referência | Tipo | Descrição |
|---|---|---|
| $request.sentiment.score | Número | Sentimento entre -1,0 (sentimento negativo) e 1,0 (sentimento positivo). |
| $request.sentiment.magnitude | Número | Indica a intensidade geral da emoção (positiva e negativa) entre 0,0 e +inf. Ao contrário da pontuação, a magnitude não é normalizada. Cada expressão de emoção na entrada do usuário final (positiva e negativa) contribui para a magnitude da entrada. Entradas mais longas podem ter magnitudes maiores. |
| $request.sentiment.succeeded | Booleano | True se a análise de sentimento for bem-sucedida. Caso contrário, false. |
Edição de parâmetros
Para qualquer parâmetro de intent ou formulário,
é possível ativar a edição de parâmetros,
que vai editar os dados de parâmetros de ambiente de execução do usuário final dos registros
e do armazenamento interno do Dialogflow CX.
Os parâmetros editados são exibidos como $parameter-name_redacted nos registros.
Por exemplo, considere uma entrada do usuário final de "Meu endereço é 1600 Amphitheatre Parkway" que resulta no envio de um parâmetro address para "1600 Amphitheatre Parkway". O texto registrado será "Meu endereço é $address_redacted".
Para ativar a edição de parâmetros:
Console
Marque a caixa de seleção Editar no registro ao criar ou atualizar um parâmetro.
API
Defina o campo parameters[].redact como verdadeiro para o tipo Intent.
Selecione um protocolo e uma versão para a referência de intent:
| Protocolo | V3 | V3beta1 |
|---|---|---|
| REST | Recurso de intent | Recurso de intent |
| RPC | Interface de intent | Interface de intent |
| C++ | IntentsClient | Indisponível |
| C# | IntentsClient | Indisponível |
| Go | IntentsClient | Indisponível |
| Java | IntentsClient | IntentsClient |
| Node.js | IntentsClient | IntentsClient |
| PHP | Indisponível | Indisponível |
| Python | IntentsClient | IntentsClient |
| Ruby | Indisponível | Indisponível |
Defina o campo form.parameters[].redact como verdadeiro para o tipo Page.
Selecione um protocolo e uma versão para a referência da página:
| Protocolo | V3 | V3beta1 |
|---|---|---|
| REST | Recurso de página | Recurso de página |
| RPC (remote procedure call) | Interface da página | Interface da página |
| C++ | PagesClient | Indisponível |
| C# | PagesClient | Indisponível |
| Go | PagesClient | Indisponível |
| Java | PagesClient | PagesClient |
| Node.js | PagesClient | PagesClient |
| PHP | Indisponível | Indisponível |
| Python | PagesClient | PagesClient |
| Ruby | Indisponível | Indisponível |
É possível também editar todos os parâmetros de um tipo de entidade específico.