Contextos de entrada e saída

Os contextos de entrada e saída são aplicados a intenções. Funcionam em conjunto para controlar o fluxo da conversa:

  • Contextos de saída controlam os contextos ativos. Quando uma intenção é correspondida, todos os contextos de saída configurados para essa intenção ficam ativos.
  • Os contextos de entrada controlam a correspondência de intenções. Enquanto os contextos estão ativos, é mais provável que o Dialogflow faça corresponder intenções configuradas com contextos de entrada que são um subconjunto de contextos atualmente ativos.

Com os contextos, pode:

  • Controlar a ordem da correspondência de intenções.
  • Crie intenções específicas do contexto com as mesmas expressões de preparação.

Por exemplo, considere as seguintes intenções:

Nome da intenção Expressões de preparação Parâmetros Contextos de entrada Contextos de saída Resposta
pet-init "Qual é o aspeto deles?" - - - "Que tipo de animal de estimação gostas?"
pet-select-dogs "Gosto de cães" - - cães "O que queres saber sobre cães?"
pet-select-cats "Gosto de gatos" - - gatos "O que queres saber sobre gatos?"
dog-show "Qual é o aspeto deles?" - cães - "Aqui está uma imagem de um cão."
cat-show "Qual é o aspeto deles?" - gatos - "Aqui está uma imagem de um gato."

Quando o utilizador final diz I like dogs:

  • A intenção pet-select-dogs corresponde.
  • O contexto de saída é dogs, pelo que se torna o contexto ativo.

Quando o utilizador final diz I like cats:

  • A intenção pet-select-cats corresponde.
  • O contexto de saída é cats, pelo que se torna o contexto ativo.

Quando o utilizador final diz What do they look like?:

  • Se dogs for o contexto ativo:
    • A intenção dog-show corresponde.
    • É apresentada ao utilizador final uma imagem de um cão.
  • Se cats for o contexto ativo:
    • A intenção cat-show corresponde.
    • É apresentada ao utilizador final uma imagem de um gato.
  • Se não existir nenhum contexto ativo:
    • A intenção pet-init corresponde.
    • É perguntado ao utilizador final que tipo de animal de estimação gosta.

Contextos de saída

É possível aplicar vários contextos de saída a uma intenção. Quando uma intenção é correspondida, todos os contextos de saída aplicados à intenção ficam ativos.

Referências sobre parâmetros para contextos ativos

Quando uma intenção com contexto de saída é correspondida, os respetivos valores de parâmetros recolhidos podem servir como armazenamento temporário com referências de parâmetros para contextos ativos. Pode aceder a estes valores durante a correspondência de intenções futura, enquanto o contexto permanecer ativo.

Por exemplo, considere a seguinte variação do exemplo de animais de estimação acima:

Nome da intenção Expressões de preparação Parâmetros Contextos de entrada Contextos de saída Resposta
pet-init "Qual é o aspeto deles?" - - - "Que tipo de animal de estimação gostas?"
pet-select "Gosto de cães", "Gosto de gatos" bicho de estimação - pet-chosen "O que quer saber sobre $pet?"
pet-show "Qual é o aspeto deles?" - pet-chosen - "Aqui está uma imagem de um #pet-chosen.pet."

Quando o utilizador final diz I like dogs ou I like cats:

  • A intenção pet-select corresponde.
  • O pet parâmetro está definido para o tipo de animal de estimação escolhido.
  • O contexto de saída é pet-chosen, pelo que se torna o contexto ativo.

Quando o utilizador final diz What do they look like?:

  • Se pet-chosen for o contexto ativo:
    • A intenção pet-show corresponde.
    • Se o utilizador final selecionou dogs no turno de conversa anterior, é apresentada uma imagem de um cão ao utilizador final.
    • Se o utilizador final selecionou cats no turno de conversa anterior, é apresentada uma imagem de um gato ao utilizador final.
  • Se não existir nenhum contexto ativo:
    • A intenção pet-init corresponde.
    • É pedido ao utilizador final que selecione um tipo de animal de estimação.

Duração

Cada contexto ativo tem uma duração que define o número de interações de conversa para as quais o contexto permanece ativo. A duração predefinida é de cinco turnos de conversa para intenções normais e dois turnos de conversa para intenções de seguimento. Pode substituir a duração predefinida de quaisquer contextos. Além disso, todos os contextos expiram após 20 minutos de ficarem ativos. Quando uma intenção corresponde a um contexto de saída que já está ativo, o tempo de vida e o temporizador de expiração são repostos.

Por exemplo, considere as seguintes descrições de intenções para um agente de informações sobre animais de estimação:

Nome da intenção Expressões de preparação Parâmetros Contextos de entrada Contextos de saída Resposta
pet-init "What do they look like?" (Qual é o aspeto deles?), "Como soam?", "Qual é o tamanho?" - - - "Que tipo de animal de estimação gostas?"
pet-select "Gosto de cães", "Gosto de gatos" bicho de estimação - pet-chosen (lifespan = 2) "O que quer saber sobre $pet?"
pet-show "Qual é o aspeto deles?" - pet-chosen - "Aqui está uma imagem de um #pet-chosen.pet. O que mais quer saber?"
pet-audio "Como soam?" - pet-chosen - "Aqui está um som de #pet-chosen.pet. O que mais quer saber?"
pet-size "Qual é o tamanho?" - pet-chosen - "Aqui está uma tabela de tamanhos de #pet-chosen.pet. O que mais quer saber?"

A tabela seguinte mostra um exemplo de diálogo para este agente de informações sobre animais de estimação, que ilustra a duração do pet-chosencontexto:

Virar Caixa de diálogo Explicação
1 Agente: De que tipo de animal de estimação gosta? A intenção pet-init corresponde.
2 Utilizador: gosto de gatos.
Agente: o que quer saber sobre gatos?
A intenção pet-select corresponde. O contexto de saída pet-chosen torna-se o contexto ativo.
3 Utilizador: como é que são?
Agente: aqui tem uma imagem de um gato. Que mais quer saber?
A intenção pet-show tem um contexto de entrada pet-chosen, pelo que existe uma correspondência. O contexto do pet-chosen está ativo há 1 interação.
4 Utilizador: Como soam?
Agente: Aqui tem o som de um gato. O que mais quer saber?
A intenção pet-audio tem um contexto de entrada pet-chosen, pelo que existe uma correspondência. O contexto pet-chosen está ativo há 2 interações.
5 Utilizador: Qual é o tamanho deles?
Agente: Que tipo de animal de estimação gosta?
A intenção pet-init é novamente correspondida, porque o contexto pet-chosen já não está ativo.

Contextos de entrada

Enquanto os contextos estão ativos, é mais provável que o Dialogflow faça a correspondência com intenções configuradas com contextos de entrada que correspondam aos contextos atualmente ativos. As regras detalhadas de correspondência de intenções são as seguintes:

  1. A lista de contextos de entrada de uma intenção tem de ser um subconjunto da lista de contextos atualmente ativa para haver correspondência. Isto também se aplica a intenções sem contextos de entrada.
  2. Para intenções que satisfazem a regra n.º 1, as que têm uma lista de contexto de entrada que corresponde mais de perto à lista de contexto atualmente ativa têm maior probabilidade de corresponder.

Por exemplo:

  • As intenções sem contextos de entrada podem ser correspondidas em qualquer altura.
  • Quando não existem contextos ativos, só é possível fazer a correspondência com intenções sem contextos de entrada.
  • Se os contextos "A" e "B" estiverem ativos, não é possível encontrar uma correspondência para uma intenção com os contextos de entrada "A" e "C".
  • Se os contextos "A", "B" e "C" estiverem ativos, pode ser estabelecida uma correspondência com uma intenção com os contextos de entrada "A" e "B".
  • Se os contextos "A" e "B" estiverem ativos, é mais provável que uma intenção com os contextos de entrada "A" e "B" seja correspondida do que uma intenção sem contexto de entrada ou uma intenção com apenas "A" para um contexto de entrada.