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.
- A intenção
- Se
cats
for o contexto ativo:- A intenção
cat-show
corresponde. - É apresentada ao utilizador final uma imagem de um gato.
- A intenção
- 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.
- A intenção
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.
- A intenção
- 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.
- A intençã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-chosen
contexto:
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:
- 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.
- 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.