Contextos de entrada e saída

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.
  • Se cats for o contexto ativo:
    • A intent cat-show é correspondida.
    • O usuário final verá a foto de um gato.
  • 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.

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.
  • Se não houver contexto ativo:
    • A intent pet-init é correspondida.
    • O usuário final precisa selecionar um tipo de animal de estimação.

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:

  1. 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.
  2. 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".