Contextos de entrada e saída são aplicados a intents. Eles trabalham juntos para controlar o fluxo de conversas:
- Contextos de saída controlam contextos ativos. Quando uma intent é correspondida, todos os contextos de saída configurados para essa intent são ativados.
- Contextos de entrada controlam a correspondência de intent. Enquanto os contextos estiverem ativos, é mais provável que o Dialogflow corresponda intents configuradas com contextos de entrada que sejam um subconjunto de contextos ativos no momento.
Com os contextos, é possível:
- controlar a ordem da correspondência de intent;
- criar intents específicos de contexto com as mesmas frases de treinamento.
Por exemplo, considere os seguintes intents:
Nome da intent | Frases de treinamento | Parâmetros | Contextos de entrada | Contextos de saída | Resposta |
---|---|---|---|---|---|
pet-init | "Como eles são?" | - | - | - | "De que tipo de animal de estimação você gosta?" |
pet-select-dogs | "Eu gosto de cachorros" | - | - | cães | "O que você quer saber sobre cachorros?" |
pet-select-cats | "Eu gosto de gatos" | - | - | gatos | "O que você quer saber sobre gatos?" |
dog-show | "Como eles são?" | - | cães | - | "Aqui está a foto de um cachorro." |
cat-show | "Como eles são?" | - | gatos | - | "Aqui está a foto de um gato." |
Quando o usuário final disser I like dogs
:
- A intent
pet-select-dogs
é correspondida. - O contexto de saída é
dogs
. Portanto, ele se torna o contexto ativo.
Quando o usuário final disser I like cats
:
- A intent
pet-select-cats
é correspondida. - O contexto de saída é
cats
. Portanto, ele se torna o contexto ativo.
Quando o usuário final disser What do they look like?
:
- Se
dogs
for o contexto ativo:- A intent
dog-show
é correspondida. - O usuário final recebe a foto de um cachorro.
- A intent
- Se
cats
for o contexto ativo:- A intent
cat-show
é correspondida. - O usuário final verá a foto de um gato.
- A intent
- Se não houver contexto ativo:
- A intent
pet-init
é correspondida. - O usuário final é perguntado sobre o tipo de animal de estimação de que ele gosta.
- A intent
Contextos de saída
Vários contextos de saída podem ser aplicados a uma intent. Quando uma intent é correspondida, todos os contextos de saída aplicados a ela tornam-se ativos.
Referências de parâmetro para contextos ativos
Quando uma intent com contexto de saída é correspondida, seus valores de parâmetro coletados podem servir como armazenamento temporário com referências de parâmetro para contextos ativos. Esses valores podem ser acessados durante a correspondência futura de intent, enquanto o contexto permanecer ativo.
Por exemplo, considere a seguinte variação do exemplo de animal de estimação acima:
Nome da intent | Frases de treinamento | Parâmetros | Contextos de entrada | Contextos de saída | Resposta |
---|---|---|---|---|---|
pet-init | "Como eles são?" | - | - | - | "De que tipo de animal de estimação você gosta?" |
pet-select | "Gosto de cachorros", "Gosto de gatos" | pet | - | pet-chosen | "O que você quer saber sobre $pet?" |
pet-show | "Como eles são?" | - | pet-chosen | - | "Esta é uma imagem de um #pet-chosen.pet" |
Quando o usuário final disser I like dogs
ou I like cats
:
- A intent
pet-select
é correspondida. - O parâmetro
pet
é definido com o tipo de animal de estimação escolhido. - O contexto de saída é
pet-chosen
. Portanto, ele se torna o contexto ativo.
Quando o usuário final disser What do they look like?
:
- Se
pet-chosen
for o contexto ativo:- A intent
pet-show
é correspondida. - Se o usuário final tiver selecionado
dogs
na rodada de conversa anterior, uma imagem de cachorro será exibida. - Se o usuário final tiver selecionado
cats
na rodada de conversa anterior, uma imagem de gato será exibida.
- A intent
- Se não houver contexto ativo:
- A intent
pet-init
é correspondida. - O usuário final precisa selecionar um tipo de animal de estimação.
- A intent
Duração
Cada contexto ativo tem uma duração que define o número de rodadas de conversa para as quais o contexto permanece ativo. A duração padrão é de cinco rodadas de conversa para intents normais e duas rodadas de conversa para intents de acompanhamento. É possível substituir a duração padrão de qualquer contexto. Além disso, todos os contextos expiram após 20 minutos de ativação. Quando uma intent é correspondida com um contexto de saída que já está ativo, a duração e o tempo de expiração são redefinidos.
Por exemplo, considere as seguintes descrições de intent para um agente de informação sobre animais de estimação:
Nome da intent | Frases de treinamento | Parâmetros | Contextos de entrada | Contextos de saída | Resposta |
---|---|---|---|---|---|
pet-init | "Como eles são?", "Qual é o som que eles fazem?", "Qual é o tamanho deles?" | - | - | - | "De que tipo de animal de estimação você gosta?" |
pet-select | "Gosto de cachorros", "Gosto de gatos" | pet | - | pet-chosen (lifespan = 2) | "O que você quer saber sobre $pet?" |
pet-show | "Como eles são?" | - | pet-chosen | - | "Esta é uma imagem de um #pet-chosen.pet. O que mais você quer saber?" |
pet-audio | "Qual é o som que eles fazem?" | - | pet-chosen | - | "Aqui está um som de #pet-chido.pet. O que mais você quer saber?" |
pet-size | "Qual é o tamanho deles?" | - | pet-chosen | - | "Este é um gráfico do tamanho de um #pet-chido.pet . O que mais você quer saber?" |
A tabela a seguir mostra um exemplo de diálogo para esse agente de informações sobre animais de estimação,
que ilustra a vida útil do contexto pet-chosen
:
Turn | Diálogo | Explicação |
---|---|---|
1 | Agente: de que tipo de animal de estimação você gosta? | A intent pet-init é correspondida. |
2 | Usuário: Gosto de gatos. Agente: O que você quer saber sobre gatos? |
A intent pet-select é correspondida. O contexto de saída pet-chosen se torna o contexto ativo. |
3 | Usuário: qual é a aparência deles? Agente: aqui está uma foto de um gato. O que mais você quer saber? |
A intent pet-show tem um contexto de entrada pet-chosen , por isso é correspondida. O contexto pet-chosen esteve ativo por uma rodada. |
4 | Usuário: qual é o som deles? Agente: ouça o som de um gato. O que mais você quer saber? |
O intent pet-audio tem um contexto de entrada pet-chosen , por isso é correspondido. O contexto pet-chosen esteve ativo por duas rodadas. |
5 | Usuário: qual é o tamanho deles? Agente: de que tipo de animal de estimação você gosta? |
A intent pet-init é correspondida novamente, porque o contexto pet-chosen não está mais ativo. |
Contextos de entrada
Enquanto os contextos estão ativos, é mais provável que o Dialogflow corresponda às intents configuradas com contextos de entrada que correspondem aos contextos atualmente ativos. As regras detalhadas de correspondência de intent são as seguintes:
- A lista de contexto de entrada de uma intent precisa ser um subconjunto da lista de contexto atualmente ativa para ser correspondida. Isso também se aplica a intents sem contextos de entrada.
- Para intents que satisfazem à regra nº 1, as com uma lista de contexto de entrada que correspondem mais aproximadamente à lista de contexto atualmente ativa têm maior probabilidade de serem correspondidas.
Exemplo:
- Intents sem contextos de entrada podem ser correspondidas a qualquer momento.
- Quando nenhum contexto estiver ativo, apenas intents sem contextos de entrada poderão ser correspondidos.
- Se os contextos "A" e "B" estiverem ativos, não será possível corresponder uma intent com os contextos de entrada "A" e "C".
- Se os contextos "A", "B" e "C" estiverem ativos, uma intent com os contextos de entrada "A" e "B" poderá ser correspondida.
- Se os contextos "A" e "B" estiverem ativos, uma intent com contextos de entrada "A" e "B" terá mais chances de ser correspondido do que uma intent sem contexto de entrada ou com apenas o contexto de entrada "A".