Partilhar via


Biblioteca de diálogos

APLICA-SE A: SDK v4

As caixas de diálogo são um conceito cMicrosoft Entral no SDK, fornecendo maneiras de gerenciar uma conversa de longa duração com o usuário. Uma caixa de diálogo executa uma tarefa que pode representar parte ou um thread de conversação completo. Pode abranger apenas uma volta ou muitas, e pode abranger um curto ou longo período de tempo.

Este artigo descreve as principais classes e recursos da biblioteca de diálogo.

  • Você deve estar familiarizado com como os bots funcionam (incluindo o que é uma vez) e gerenciando o estado.
  • Cada caixa de diálogo representa uma tarefa de conversação que pode ser executada até a conclusão e retornar as informações coletadas.
  • Cada caixa de diálogo representa uma unidade básica de fluxo de controle: pode começar, continuar e terminar; pausar e retomar; ou ser cancelado.
  • As caixas de diálogo são semelhantes a um método ou função em uma linguagem de programação. Você pode passar argumentos ou parâmetros quando inicia uma caixa de diálogo, e a caixa de diálogo pode produzir posteriormente um valor de retorno quando ela termina.

Gorjeta

Se você é novo no desenvolvimento de bots com o Bot Framework ou na criação de uma nova experiência de conversação, comece com o Bot Framework Composer. Para bots SDK-first existentes, não criados no Composer, considere expor seu bot como uma habilidade e usar o Composer para desenvolvimento futuro de bots.

Estado da caixa de diálogo

As caixas de diálogo podem implementar uma conversa de vários turnos e, como tal, dependem do estado persistente em turnos. Sem o estado nas caixas de diálogo, seu bot não saberia onde estava na conversa ou quais informações ele já havia coletado.

Para manter o lugar de uma caixa de diálogo na conversa, o estado da caixa de diálogo deve ser recuperado e salvo na memória a cada turno. Isso é tratado por meio de um acessador de propriedade de estado de diálogo definido no estado de conversa do bot. Esse estado de diálogo gerencia informações para todas as caixas de diálogo ativas e filhos de caixas de diálogo ativas. Isso permite que o bot continue de onde parou por último e lide com vários modelos de conversa.

Em tempo de execução, a propriedade dialog state inclui informações sobre onde a caixa de diálogo está em seu processo lógico, incluindo qualquer informação coletada internamente na forma de um objeto de instância de diálogo. Novamente, isso precisa ser lido no bot e salvo na memória a cada turno.

Infraestrutura de diálogo

Juntamente com vários tipos de diálogos, as classes a seguir estão envolvidas no design e controle de conversas. Embora você geralmente não precise interagir diretamente com essas classes, estar ciente delas e de seu propósito é útil ao projetar diálogos para um bot.

Classe Descrição
Conjunto de diálogos Define uma coleção de diálogos que podem fazer referência uns aos outros e trabalhar em conjunto.
Contexto da caixa de diálogo Contém informações sobre todas as caixas de diálogo ativas.
Instância da caixa de diálogo Contém informações sobre uma caixa de diálogo ativa.
Resultado da viragem da caixa de diálogo Contém informações de status de uma caixa de diálogo ativa ou recentemente ativa. Se a caixa de diálogo ativa terminou, isso contém seu valor de retorno.

Tipos de caixa de diálogo

A biblioteca de diálogos fornece alguns tipos de diálogos para facilitar o gerenciamento das conversas do bot. Alguns desses tipos são descritos com mais detalhes mais adiante neste artigo.

Tipo Descrição
caixa de diálogo A classe base para todas as caixas de diálogo.
caixa de diálogo de contêiner A classe base para todas as caixas de diálogo de contêiner, como caixas de diálogo adaptáveis e de componentes. Ele mantém um conjunto de diálogos internos e permite que você trate uma coleção de diálogos como uma unidade.
caixa de diálogo do componente Um tipo de caixa de diálogo de contêiner de uso geral que encapsula um conjunto de caixas de diálogo, permitindo a reutilização do conjunto como um todo. Quando uma caixa de diálogo de componente é iniciada, ela começa com uma caixa de diálogo designada em sua coleção. Quando o processo interno é concluído, a caixa de diálogo do componente termina.
caixa de diálogo em cascata Define uma sequência de etapas, permitindo que seu bot guie um usuário através de um processo linear. Eles geralmente são projetados para funcionar dentro do contexto de uma caixa de diálogo de componentes.
Caixas de diálogo de prompt Peça ao usuário a entrada e devolva o resultado. Um prompt será repetido até que receba uma entrada válida ou seja cancelado. Eles são projetados para trabalhar com diálogos em cascata.
caixa de diálogo adaptável Um tipo de caixa de diálogo de contêiner usada pelo Composer para fornecer fluxos de conversação mais naturais. Não se destina a ser usado diretamente em um bot SDK-first.
caixas de diálogo de ação Um tipo de diálogo que suporta a implementação de ações no Composer. Não se destina a ser usado diretamente em um bot SDK-first.
caixas de diálogo de entrada Um tipo de diálogo que suporta a implementação de ações de entrada no Composer. Não se destina a ser usado diretamente em um bot SDK-first.
diálogo de habilidades Automatiza o gerenciamento de um ou mais bots de habilidades de um consumidor de habilidades. O Composer apoia diretamente as habilidades como ações.
Caixa de diálogo QnA Maker Automatiza o acesso a uma base de conhecimento do QnA Maker. Este diálogo foi projetado para funcionar também como uma ação dentro do Composer.

Importante

As caixas de diálogo adaptáveis foram adicionadas pela primeira vez na versão 4.9 do SDK do C#. As caixas de diálogo adaptáveis suportam o Bot Framework Composer e não se destinam a ser usadas diretamente em um bot SDK-first.

Padrões de diálogo

Há dois padrões principais para iniciar e gerenciar diálogos de um bot.

  1. Recomendamos o uso do Bot Framework Composer para criar diálogos de conversação, para se beneficiar de recursos de conversação mais naturais e fluidos. Para obter mais informações, consulte a Introdução ao Bot Framework Composer. Esses bots ainda podem ser estendidos com código onde necessário.
  2. Desenvolva seu bot em uma das linguagens SDK e use o método de extensão de execução da caixa de diálogo raiz. Para obter informações sobre como usar o método run com uma caixa de diálogo de componente, consulte sobre caixas de diálogo de componente e cascata e como implementar o fluxo de conversa sequencial.

A pilha de diálogo

Um contexto de diálogo contém informações sobre todas as caixas de diálogo ativas e inclui uma pilha de diálogos, que atua como uma pilha de chamadas para todas as caixas de diálogo ativas. Cada caixa de diálogo de contêiner tem um conjunto interno de caixas de diálogo que está controlando e, portanto, cada caixa de diálogo de contêiner ativo introduz um contexto de diálogo interno e uma pilha de diálogo como parte de seu estado.

Embora você não acesse a pilha diretamente, entender que ela existe e sua função ajudará você a entender como vários aspetos da biblioteca de diálogos funcionam.

Caixas de diálogo de contêiner

Uma caixa de diálogo de contêiner pode fazer parte de um conjunto de caixas de diálogo maior. Cada contêiner tem um conjunto de diálogo interno que também é gerenciado.

  • Cada conjunto de diálogos cria um escopo para resolver IDs de diálogo.

  • Atualmente, o SDK implementa dois tipos de caixas de diálogo de contêiner: caixas de diálogo de componentes e caixas de diálogo adaptáveis.

    A estrutura conceptual dos dois é bastante diferente. No entanto, um bot Composer pode fazer uso de ambos.

IDs de caixa de diálogo

Ao adicionar uma caixa de diálogo a um conjunto de diálogos, você atribui a ela uma ID exclusiva dentro desse conjunto. As caixas de diálogo dentro de um conjunto fazem referência umas às outras por seus IDs.

Quando uma caixa de diálogo faz referência a outra caixa de diálogo em tempo de execução, ela o faz pela ID da caixa de diálogo. O contexto da caixa de diálogo tenta resolver a ID com base nas outras caixas de diálogo no conjunto de diálogos imediatos. Se não houver correspondência, ele procurará uma correspondência no conjunto de diálogos contendo ou externo, e assim por diante. Se nenhuma correspondência for encontrada, uma exceção ou erro será gerado.

Caixas de diálogo de componentes

As caixas de diálogo de componentes usam um modelo de sequência para conversas, e cada caixa de diálogo no contêiner é responsável por chamar outras caixas de diálogo no contêiner. Quando a pilha de diálogo interna da caixa de diálogo do componente está vazia, o componente termina.

Considere o uso de caixas de diálogo de componentes e cascata se o bot tiver um fluxo de controle relativamente simples que não exija um fluxo de conversa mais dinâmico.

Sobre as caixas de diálogo de componentes e cascatas descreve as caixas de diálogo de componentes, cascatas e prompts com mais detalhes.

Outras caixas de diálogo

O QnA Maker e as caixas de diálogo de habilidade podem ser usados como diálogos autônomos ou como parte de uma coleção de diálogos em um contêiner.

Caixa de diálogo QnA Maker

Nota

O Azure AI QnA Maker será desativado em 31 de março de 2025. A partir de 1º de outubro de 2022, você não poderá criar novos recursos ou bases de conhecimento do QnA Maker. Uma versão mais recente do recurso de perguntas e respostas agora está disponível como parte da Linguagem de IA do Azure.

A resposta a perguntas personalizadas, um recurso do Azure AI Language, é a versão atualizada do serviço QnA Maker. Para obter mais informações sobre o suporte a perguntas e respostas no SDK do Bot Framework, consulte Compreensão de linguagem natural.

A caixa de diálogo do QnA Maker acessa uma base de conhecimento do QnA Maker e suporta o prompt de acompanhamento e os recursos de aprendizagem ativa do QnA Maker.

  • Os prompts de acompanhamento, também conhecidos como prompts de várias voltas, permitem que uma base de dados de conhecimento peça mais informações ao usuário antes de responder à pergunta.
  • As sugestões de aprendizagem ativa permitem que a base de conhecimentos melhore ao longo do tempo. A caixa de diálogo QnA Maker suporta feedback explícito para o recurso de aprendizagem ativa.

Para obter mais informações, consulte:

Caixa de diálogo de habilidades

Uma caixa de diálogo de habilidades acessa e gerencia uma ou mais habilidades. A caixa de diálogo de habilidade posta atividades do bot pai para o bot de habilidades e retorna as respostas de habilidade para o usuário.

Para obter mais informações, consulte:

Próximos passos