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-dogscorresponde. - 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-catscorresponde. - O contexto de saída é
cats, pelo que se torna o contexto ativo.
Quando o utilizador final diz What do they look like?:
- Se
dogsfor o contexto ativo:- A intenção
dog-showcorresponde. - É apresentada ao utilizador final uma imagem de um cão.
- A intenção
- Se
catsfor o contexto ativo:- A intenção
cat-showcorresponde. - É apresentada ao utilizador final uma imagem de um gato.
- A intenção
- Se não existir nenhum contexto ativo:
- A intenção
pet-initcorresponde. - É 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-selectcorresponde. - O
petparâ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-chosenfor o contexto ativo:- A intenção
pet-showcorresponde. - Se o utilizador final selecionou
dogsno turno de conversa anterior, é apresentada uma imagem de um cão ao utilizador final. - Se o utilizador final selecionou
catsno 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-initcorresponde. - É 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-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:
- 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.