Módulo de Perguntas e Respostas

Observação

A partir da Versão 22.04, o recurso de perguntas e respostas será descontinuado e substituído pelo recurso Conhecimento. O recurso Conhecimento tem vantagens significativas sobre o recurso Perguntas e Respostas, a saber:

  • Você pode gerar intenções de resposta em sua habilidade diretamente de Perguntas Frequentes ou documentos da Base de Conhecimento existentes. Você não precisa formatar manualmente esses documentos antes de importá-los para sua habilidade. Além disso, exemplos de declarações são gerados para cada intenção.
  • Em conversas com a habilidade, as intenções de resposta geradas são resolvidas com NLP, como intenções regulares. Você não precisa de propriedades ou componentes específicos do módulo de perguntas e respostas para tratar essas intenções.

Além disso, o recurso de perguntas e respostas não funciona em fluxos de caixas de diálogo desenvolvidos no modo Visual.

Se você tiver uma habilidade existente que tenha um módulo de perguntas e respostas, poderá continuar usando esse módulo de perguntas e respostas em versões futuras da habilidade. Mas recomendamos que você alterne para o uso de intenções de resposta (com a ajuda do recurso Conhecimento ou criando intenções de resposta manualmente). Consulte Intenções de Resposta.

O recurso Q&A permite à sua habilidade responder a perguntas de interesse geral retornando um ou mais pares pergunta/resposta. É uma forma de usar uma habilidade para apresentar Perguntas Frequentes ou outros documentos da base de conhecimento.

A adição de um módulo de perguntas e respostas à sua habilidade permite avaliar se a entrada do usuário se destina a uma transação ("What's meu saldo?") ou a responder a uma pergunta ("What's the bank's address?") e, em seguida, responder adequadamente.

Adicionando Perguntas e Respostas a uma Habilidade

Esta é uma visão geral de como você adiciona o módulo de perguntas e respostas a uma habilidade usando o recurso de perguntas e respostas:
  1. Ative o recurso de módulo de perguntas e respostas clicando em (Esta é uma imagem do ícone da barra de navegação esquerda de Perguntas e Respostas.) na barra de navegação esquerda. Em seguida, clique em Adicionar Módulo de Perguntas e Respostas.

    Observação

    Isso só é possível em habilidades que foram criadas no modo de diálogo YAML.
  2. Carregue os arquivos de origem (formatados como CSVs) que contêm os pares de pergunta e resposta categorizados. Criar o Arquivo de Origem de Dados descreve o formato e fornece algumas diretrizes de conteúdo.
    A seguir, descrição de add-qna-source.png
    Descrição da ilustração add-qna-source.png

  3. Se necessário, você poderá editar as perguntas e respostas. Também é possível adicionar ou excluir perguntas e respostas.
  4. Treine a habilidade com o treinador do módulo de perguntas e respostas.
    A seguir, descrição do comboio-w-qna.png
    Descrição da ilustração train-w-qna.png

  5. Teste o novo recurso de módulo de perguntas e respostas digitando perguntas no Testador do Módulo de Perguntas e Respostas. Como parte do processo de teste, adicione perguntas alternativas à origem de dados para melhorar o recurso de reconhecimento de pergunta. Treine novamente se você adicionar ou alterar qualquer coisa na origem de dados.

  6. Para utilizar o módulo de perguntas e respostas no fluxo de caixas de diálogo de uma habilidade, configure o componente System.Qna. Além disso, anexe uma nova transição ao componente System.Intent que menciona esse novo componente, de modo que as perguntas do módulo de perguntas e respostas sejam roteadas para o componente desse módulo; consulte Como Configuro o Fluxo de Caixas de Diálogo para o Módulo de Perguntas e Respostas?.
  7. Adicione um estado para a ação none e defina a transição de volta para o componente do módulo de perguntas e respostas quando a pergunta for respondida, adicionando qna para a transição next:
      qna:
        component: "System.QnA"
          transitions:
            actions:
              none: "unresolved"
              next: "qna"
      unresolved:
        component: "System.Output"
          properties:
          text: "Sorry, I did not find any match. Can you rephrase the question?"
        transitions:
          return: "done"
    
  8. Teste a habilidade.

Criar o Arquivo de Origem de Dados

O arquivo de origem de dados para o conteúdo do módulo de perguntas e respostas deve ser um arquivo CSV codificado em UTF-8. Esse arquivo tem uma linha de cabeçalho cujos valores são (da esquerda para a direita) category_path, questions e content.
Coluna Conteúdo
category_path

As categorias de um determinado par pergunta/resposta.

Quando um par pergunta/resposta pertencer a mais de uma categoria, adicione cada categoria em uma nova linha.

Use uma barra (/) para indicar uma hierarquia. Por exemplo: Trading/Placing Order.
Esta é a imagem de um arquivo CSV.

questions

As perguntas exibidas para o usuário. Adicione cada versão alternativa desta pergunta em uma nova linha. A primeira pergunta, conhecida como canônica, é a pergunta exibida na mensagem da habilidade por padrão. As perguntas subsequentes na coluna são versões alternativas.
Esta é uma imagem do arquivo CSV.

content

As respostas.

Você pode editar seu arquivo de origem de dados depois de importá-lo.

As Diretrizes da Origem de Dados

  • A adição de várias perguntas para cada resposta aumenta a probabilidade de os pares pergunta/resposta relevantes serem retornados aos usuários. Crie de 2 a 5 perguntas para cada resposta. Forneça perguntas suficientes para abranger uma amostra das diversas formas pelas quais você espera que o usuário consulte um tópico. Considere variar o sujeito (mas seja consistente com o tópico da resposta), o verbo e as interrogações “como”, “qual”, “onde” etc. Por exemplo, Como descubro quanto dinheiro tenho? pode ser dito de outra forma como:
    • Como vejo o saldo da minha conta?

    • Onde posso encontrar o saldo da minha conta?

    • Posso ver o saldo da minha conta?

  • Lembre-se de que, embora as perguntas possam ser formuladas de várias maneiras, todas elas devem retornar as mesmas respostas.

  • Não é necessário criar perguntas alternativas para enquadrar palavras de uso comum, sinônimos ou erros de digitação. Você pode usar a página Configuração do Idioma para adicionar sinônimos ou abreviações. Os erros de digitação são tratados automaticamente.

  • Mantenha as respostas tão curtas quanto possível. Forneça um link para obter informações mais detalhadas. Os links do módulo de perguntas e respostas não podem ficar ocultos, o que significa que não é possível utilizar <a href> para especificar o nome de um site. Os links devem ser explícitos (http://www.myanswers.com/answer/topic1.html, por exemplo).

  • Use sempre texto simples

  • Os usuários estão interessados nas três principais correspondências para obter as informações que eles desejam. Embora você deva focar na correspondência principal, o objetivo deverá ser garantir que as informações solicitadas e relacionadas estejam nas três principais correspondências.

  • Crie um arquivo de teste em batch sempre que você atualizar sua origem de dados. Esse arquivo batch contém todas as perguntas que você deseja garantir que sua habilidade responda corretamente. Para saber mais sobre esse arquivo, consulte Criar o Arquivo CSV para Teste de Batch.

Gerenciamento de Módulos de Perguntas e Respostas e Origens de Dados

Adicionar Mais Origens de Dados
Você pode adicionar mais arquivos de perguntas e respostas para expandir a capacidade do módulo de perguntas e respostas. Para fazer upload de outro arquivo CSV codificado em UTF-8 para uma nova origem de dados do módulo de perguntas e respostas:
  1. Clique em Módulo de Perguntas e Respostas (Esta é uma imagem do ícone da barra de navegação esquerda de Perguntas e Respostas.) na barra de navegação esquerda.

  2. Selecione a guia Origens de Dados e clique em Adicionar Origem do Módulo de Perguntas e Respostas.

  3. Preencha a caixa de diálogo informando um idioma, uma localidade (se necessário) e o arquivo de origem de dados.

  4. Você pode adicionar batches de origens de dados escolhendo Criar Outro.

  5. Por padrão, a origem de dados fica ativada. Se você precisar remover pares pergunta/esposta temporariamente da origem de dados, poderá escolher Desativado em vez de excluir a origem de dados.

  6. Clique em Criar.

  7. Treinar Novamente o Módulo de Perguntas e Respostas

Editar os Parâmetros de Configuração da Origem de Dados do Módulo de Perguntas e Respostas
  1. Clique em Módulo de Perguntas e Respostas (Esta é uma imagem do ícone da barra de navegação esquerda de Perguntas e Respostas.) na barra de navegação esquerda.

  2. Selecione a guia Origens de Dados.

  3. Passe o mouse sobre a origem de dados para chamar os ícones Editar e Excluir.
    Esta é uma imagem do ícone Editar.

  4. Clique em Editar.

  5. Execute qualquer um dos procedimentos a seguir e clique em Salvar.

    • Altere o idioma e a configuração regional.

    • Renomeie a origem.

    • Substitua o arquivo de origem existente clicando em Substituir e selecionando um novo arquivo.

    • Ative ou desative a origem.

  6. Treine novamente o módulo de perguntas e respostas.

Adicionar Perguntas e Respostas Uma por Uma
  1. Na guia Origens de Dados, clique na origem de dados.

  2. Clique em Exibir Todos os Módulos de Perguntas e Respostas.

  3. Clique em Adicionar Pergunta.

  4. Preencha a caixa de diálogo da seguinte forma e clique em Criar.
    • Pergunta Canônica — Digite a pergunta que é exibida por padrão no chat.

    • Alternativa — Adicione uma ou mais variações da pergunta canônica. Lembre-se de que você só precisa se concentrar em como os usuários podem fazer a mesma pergunta de outras formas, não em incluir sinônimos ou erros ortográficos comuns.

    • Resposta -- Adicionar uma resposta concisa. No lugar de uma explicação extensa, adicione um URL que aponte os usuários para informações mais detalhadas. Esse URL será renderizado como texto simples na janela do testador, mas como hiperlink quando a habilidade for executada em uma plataforma de mensagens real.

    • Categorias — Se aplicável, informe uma categoria ou escolha uma no menu. (O menu é preenchido com as categorias do arquivo de origem de dados).

    • Para hierarquias, digite uma string com barras (/).
      Esta é uma imagem do campo Categorias.

    • Criar outro — Selecione essa opção para abrir uma nova caixa de diálogo depois de clicar em Criar.

  5. Treinar Novamente o Módulo de Perguntas e Respostas

  6. Clique em Fechar na guia Origens de Dados.

Observação

Lembre-se de que esses pares de perguntas e respostas são exibidos dentro dos limites de uma janela de chat; portanto, devem ser curtos. Consulte As Diretrizes da Origem de Dados.
Editar Perguntas e Respostas Uma por Uma
Ainda que a maior parte do seu desenvolvimento de conteúdo seja feita usando o próprio arquivo de origem, você pode adicionar atualizações usando a guia Origens de Dados.
  1. Na guia Origens de Dados, vá para a página da pergunta ou localize-a usando um dos campos de pesquisa (categorias e perguntas e respostas).

  2. Passe o mouse sobre a pergunta e clique em Editar.

  3. Use a caixa de diálogo Editar Pergunta para:
    • Alterar a pergunta canônica.

    • Adicionar mais perguntas alternativas.

    • Edite a resposta.

    • Adicionar ou remover categorias.

  4. Clique em Salvar.

  5. Treine novamente o módulo de perguntas e respostas.

  6. Clique em Fechar na guia Origens de Dados.

Observação

Você também pode adicionar perguntas alternativas usando o testador.
Exportar o Conjunto de Dados do Módulo de Perguntas e Respostas
É possível exportar todo o conjunto de dados do módulo de perguntas e respostas para fins de controle de versão, arquivamento e backup.
  1. Na guia Origens de Dados, clique em Exibir Todos os Módulos de Perguntas e Respostas.

  2. Escolha o arquivo de origem de dados no painel esquerdo.

  3. Clique em Exportar e salve o arquivo no sistema.

  4. Clique em Fechar.

Precisão Melhorada com Abreviações e Palavras Ignoradas

Nós incluímos conjuntos internos de palavras ignoradas, abreviações e sinônimos para melhorar a precisão da capacidade do módulo de perguntas e respostas. As palavras ignoradas são excluídas do algoritmo de correspondência para que não reduzam a precisão. As listas de abreviações e sinônimos são usadas para corresponder às perguntas do usuário que incluam essas palavras. Embora os conjuntos internos possam ser suficientes para muitas habilidades, você pode fazer adições a eles para situações exclusivas.

As adições a esses conjuntos são feitas usando a página Configuração de Idioma. Nessa página, você pode editar as listas de palavras ignoradas, abreviações e sinônimos.

Adicionar Palavras Ignoradas, Sinônimos e Abreviações
  1. Selecione a guia Configuração de Idioma.

  2. Clique em Adicionar Entrada de Configuração.

  3. Preencha a caixa de diálogo:
    • Idioma — Selecione entre os idiomas disponíveis (que suas origens de dados disponibilizaram).

    • Tipo:

      • Palavras ignoradas — Adicione palavras que não agreguem valor às perguntas. As palavras devem estar em letras minúsculas.

      • Sinônimos — Inclua gírias e palavras alternativas para cada palavra-chave na origem de dados. Crie uma entrada distinta para cada conjunto de sinônimos. Por exemplo, dinheiro, moolah, verde é uma entrada distinta de cônjuge, esposa, marido, parceiro(a).
        Veja a seguir a descrição do sinônimo-entries.png
        Descrição da ilustração sinônimo-entries.png

      • Abreviações — Tenha em mente que perguntas canônicas podem não esperar abreviações.

    • Definição — Informe termos específicos do tipo (sinônimos, palavras ignoradas ou abreviações).

    • Ativado — Ativa (ou desativa) as adições feitas aos conjuntos Palavras Ignoradas, Abreviações ou Sinônimo. Utilize essa opção quando testar as configurações de idioma.

    • Criar outro — Selecione para retornar a esta caixa de diálogo depois de clicar em Criar.

  4. Clique em Criar.

  5. Treine novamente o Módulo de Perguntas e Respostas.

Teste do Módulo de Perguntas e Respostas

A janela Módulo de Perguntas e Respostas do Testador permite que você teste suas perguntas de uma só vez ou como batch.

Depois de treinar o módulo de perguntas e respostas, você poderá testá-lo usando o testador Experimente Intenções/Módulo de Perguntas e Respostas (para acessar, clique em Experimente!). A resposta da habilidade pode incluir um carrossel de várias respostas. Ao contrário do teste de intenções, as respostas às perguntas do módulo de perguntas e respostas não são categorias de intenção (por exemplo, saldos ); em vez disso, são respostas textuais fornecidas pela linha content no arquivo CSV.

A capacidade do módulo de perguntas e respostas (não o Mecanismo de Intenção) trata as respostas às declarações que você especifica. Essas respostas consistem em uma pergunta canônica definida que representa os tópicos de melhor ajuste (as respostas fornecidas da coluna content no arquivo CSV). Essas perguntas canônicas são as primeiras perguntas inseridas no campo questions do CSV que são associadas a cada tópico (isto é, a resposta no campo content do arquivo CSV).
A seguir, descrição de qna-tester-w-precision.png
Descrição da ilustração qna-tester-w-precision.png

Testar uma Correspondência do Módulo de Perguntas e Respostas

  1. Treine o módulo de perguntas e respostas.

  2. Abra o testador clicando em Experimente! e escolhendo Módulo de Perguntas e Respostas.

  3. Clique em Módulo de Perguntas e Respostas.

  4. Como opção, clique em Ícone de opções do Testador de QA. para definir as opções de idioma e precisão de correspondência:
    • Idioma — Escolha um idioma (se houver origens de dados multilíngues).
    • Limites de Correspondência — Clique em Editar para definir a porcentagem mínima e máxima de tokens que um par pergunta/resposta deve conter para ser considerado correspondente (ou seja, uma correspondência do módulo de perguntas e respostas).
    • Campos de Correspondência — Clique em Editar para selecionar o campo (ou campos) Perguntas e Respostas que deve corresponder à mensagem do usuário. As opções são:
      • Tudo — Retorna as perguntas e respostas em que as palavras-chave da entrada do usuário correspondem a qualquer categoria, pergunta ou resposta do módulo de perguntas e respostas.
      • Perguntas — Retorna as perguntas e respostas em que as palavras-chave da entrada do usuário correspondem às perguntas do módulo de perguntas e respostas
      • Respostas — Retorna as perguntas e respostas em que as palavras-chave na entrada do usuário correspondem à resposta do módulo de perguntas e respostas.
      • Categorias — Retorna as perguntas e respostas em que as palavras-chave na entrada do usuário correspondem a uma categoria do módulo de perguntas e respostas.
      • Perguntas e Categorias - Retorna as perguntas e respostas em que as palavras-chave na entrada do usuário correspondem à categoria do módulo de perguntas e respostas ou à resposta do módulo de perguntas e respostas.
  5. Digite uma declaração e clique em Enviar.

  6. Se necessário, clique em Adicionar à Pergunta; em seguida, treine novamente o módulo de perguntas e respostas.

Criar o Arquivo CSV para Teste de Batch

Para testes de batch, você testa sua habilidade usando um CSV que contém as perguntas que sua habilidade deve responder corretamente com as perguntas canônicas (as correspondências do módulo de perguntas e respostas) retornadas por sua habilidade por precedência. O CSV descreve isso usando a linha de cabeçalho cujas colunas (da esquerda para a direita) são: languageTag, question, match-1, match-2, match-3 e assim por diante.
  • languageTag — Um código de cinco letras que representa o idioma e a configuração regional em que a pergunta de teste e as perguntas correspondentes são expressas. Por exemplo, en-US.

  • question — A pergunta de teste. Essa pergunta não precisa corresponder a nenhuma das perguntas de treinamento, mas deve representar uma pergunta típica que um usuário pode fazer sobre o tópico em questão.

  • match-1 match-2 … — A primeira das perguntas canônicas que você acha que a pergunta de teste deve recuperar. Nós mostramos as perguntas canônicas para todas as correspondências do módulo de perguntas e respostas. Se a pergunta de teste precisar retornar apenas uma única correspondência do módulo de perguntas e respostas, digite a pergunta na coluna match-1 e deixe as demais colunas correspondentes vazias.

  • queryInfo — Um objeto JSON que usa offset e categoryPath para fazer drill-down e deslocamento de uma categoria e limite para paginação.
    "{""offset"":0,""categoryPath"":[""General Account Information""],""limit"":3}"
Este CSV representa a linha de base para correspondências de perguntas e respostas esperadas. Use-o em versões distintas da habilidade para garantir um comportamento consistente. Você pode adicionar os dados manualmente ou editar o Log de Conversas do módulo de perguntas e respostas. Teste de Batch do Módulo de Perguntas e Respostas descreve como obter esse arquivo e editá-lo com o Testador. Depois de concluir seu conjunto golden, suas atualizações só precisarão refletir atualizações significativas para a origem de dados do módulo de perguntas e respostas.

Teste de Batch do Módulo de Perguntas e Respostas

Se você estiver testando com um CSV derivado do Log de Conversas do QnA, precisará:
  • Adicionar e configurar o componente System.Qna no fluxo de caixas de diálogo após o chat com a habilidade para criar um histórico de conversas.

  • Bater papo com a habilidade para criar o histórico de conversas.

  • Exportar o log da Conversa de Perguntas e Respostas usando o menu no mosaico da habilidade, escolhendo a opção Log da Conversa de Perguntas e Respostas na caixa de diálogo Exportar Log d Conversa.

Para teste de batch:
  1. Na janela Teste do Módulo de Perguntas e Respostas, alterne para a opção Batch.

  2. Selecione o idioma.

  3. Clique em Carregar.

  4. Defina as opções de teste na caixa de diálogo Carregar Perguntas e Respostas: em seguida, clique em Testar.

    • Número máximo de testes simultâneos — O número de testes sendo executados em paralelo. O aumento do número de testes simultâneos pode agilizar os testes, mas também pode sobrecarregar o sistema.

    • Correspondências para Inclusão — Define o número de correspondências do módulo de perguntas e respostas incluídas no teste.

    • Exigir correspondências na mesma ordem — Permite que você aprove ou reprove uma correspondência dependendo de sua inclusão, ou de sua posição, dentro das correspondências melhores classificadas.

    • Em sua posição desativada, essa opção permite verificar correspondências quando os usuários digitam palavras-chave em vez de perguntas completas.

    • Limites de Correspondência — Clique em Editar para definir a porcentagem mínima e máxima de tokens que um par pergunta/resposta deve conter para ser considerado correspondente (ou seja, uma correspondência do módulo de perguntas e respostas).

      Dica:

      Defina aqui o mesmo valor definido para as propriedades qnaMiniumumMatch e minimumMatch. Para saber mais sobre a definição de vários níveis, consulte System.Intent e System.Qna.
    • Campos de Correspondência — Clique em Editar para selecionar o campo (ou campos) Perguntas e Respostas que deve corresponder à mensagem do usuário. As opções são:
      • Tudo — Retorna as perguntas e respostas em que as palavras-chave da entrada do usuário correspondem a qualquer categoria, pergunta ou resposta do módulo de perguntas e respostas.
      • Perguntas — Retorna as perguntas e respostas em que as palavras-chave da entrada do usuário correspondem às perguntas do módulo de perguntas e respostas
      • Respostas — Retorna as perguntas e respostas em que as palavras-chave na entrada do usuário correspondem à resposta do módulo de perguntas e respostas.
      • Categorias — Retorna as perguntas e respostas em que as palavras-chave na entrada do usuário correspondem a uma categoria do módulo de perguntas e respostas.
      • Perguntas e Categorias - Retorna as perguntas e respostas em que as palavras-chave na entrada do usuário correspondem à categoria do módulo de perguntas e respostas ou à resposta do módulo de perguntas e respostas.
      Os testes reprovados são exibidos na parte superior dos resultados.
  5. Para correspondências do módulo de perguntas e respostas aprovadas, você pode fazer drill-down e adicionar perguntas alternativas, modificar as respostas e, em seguida, treinar novamente o módulo de perguntas e respostas. Essas adições são feitas na origem de dados que implanta a habilidade, não nos dados de teste.

Como Configuro o Fluxo de Caixas de Diálogo para o Módulo de Perguntas e Resposta?

Usando o menu Adicionar Componentes (localizado na parte superior esquerda da página do fluxo de caixas de diálogo), você pode oferecer suporte para o serviço Q&A a um fluxo de caixas de diálogo modo YAML adicionando um dos três diferentes modelos de componente:
Para adicionar esses modelos:
  1. Clique em Fluxos na barra de navegação esquerda.

  2. Clique em Adicionar Componentes no canto superior esquerdo da página. (Talvez seja necessário rolar para cima se o botão não estiver visível).

  3. Escolha a paleta de componentes Idioma.

  4. Escolha um dos três modelos de módulo de perguntas e respostas e use o menu Inserir Após para posicioná-lo na definição do fluxo de caixas de diálogo. Clique em Aplicar.
    Observação

    Para implementar o suporte do módulo de perguntas e respostas, adicione um novo componente System.Intent (usando o modelo Intenção e QnA) à definição do fluxo de caixas de diálogo ou modifique um componente System.Intent existente para permitir transições para o componente do módulo de perguntas e respostas.

Criando uma Habilidade com os Fluxos de Intenção e Módulo de Perguntas e Respostas

  1. Adicione o modelo Intenção com QnA ao fluxo de caixas de diálogo (acessado em Idioma).

  2. Para o componente System.Intent, defina o seguinte:
    • Adicione qnaEnable: true para ativar o roteador:
      intent:
        component: "System.Intent"
        properties:
          variable: "iResult"
          qnaEnable: true
      
    • Defina uma ação de transição para o estado do QnA:
          transitions:
            actions:
              Balances: "startBalances"
              Transactions: "startTxns"
              Send Money: "startPayments"
              Track Spending: "startTrackSpending"
              Dispute: "setDate"
              unresolvedIntent: "unresolved"
              qna: "qna"
      
      Se a resolução da intenção estiver abaixo do limite de confiança, a habilidade vai disparar a ação qna que o Mecanismo de Caixa de Diálogo para o estado qna. Nesse caso, a mensagem da habilidade inclui apenas o link Exibir Respostas.
      qna:
          component: "System.QnA"
          transitions:
            actions:
              none: "unresolved"
            next: "intent"
      unresolved:
          component: "System.Output"
          properties:
            text: "Sorry I don't understand that question!"
          transitions:
            return: "unresolved"
      
      Mas quando o Mecanismo de Intenção consegue resolver a mensagem acima do limite de confiança e corresponder a um módulo de perguntas e respostas, a mensagem da habilidade inclui links da intenção e da resposta do módulo de perguntas e respostas.No entanto, quando o Mecanismo de Intenção classifica a mensagem como solicitação, em vez de pergunta, a habilidade ignora o módulo de perguntas e respostas e roteia para o fluxo da intenção. Nesse caso, a mensagem só inclui a opção de intenção.

      Você pode modificar esse comportamento adicionando palavras e frases que esclareçam o roteamento da intenção e definindo a propriedade qnaSkipIfIntentFound do componente System.Intent.

Exemplos de Caixa de Diálogo do Módulo de Perguntas e Respostas
Roteamento do Módulo de Perguntas e Respostas para o Componente System.Intent
O trecho de código a seguir mostra como o roteador é ativado pela propriedade qnaEnable do componente System.Intent. Ele também mostra a transição para o estado com o módulo de perguntas e respostas e o próprio estado do módulo.

...
  mainIntent:
    component: "System.Intent"
    properties:
      variable: "userInput"
      sourceVariable: "translated"
      qnaEnable: true
      qnaMatchFields: "categories+questions"
    transitions:
      actions:
        Greeting: "greeting"
        Inspire Me: "recommendCategories"
        Returns: "startReturn"
        qna: "qna"
        View Reports: "setMobilePhone"
        TrackOrders: "showOrderStatus"
        unresolvedIntent: "unresolved"
        Vision: "visionBasedProducts"
        Shipping: "startShipping"
...
  qna:
    component: "System.QnA"  
Suporte Estrangeiro e Multilíngue para Módulo de Perguntas e Respostas
Use essa configuração para habilidades que suportam um ou mais idiomas estrangeiros.
  1. Crie um arquivo de origem de dados específico para o idioma de destino.
    Observação

    Não suportamos origens de dados em chinês.
  2. Se necessário, adicione quaisquer sinônimos ou atualize as palavras ignoradas.

  3. Configure um serviço de tradução. Consulte Adicionar um Serviço de Tradução à sua Habilidade

  4. Se a habilidade também incluir funções transacionais, ajuste a configuração de roteamento.

  5. Configure o fluxo de caixas de diálogo para suporte multilíngue. Por exemplo :
    metadata:
      platformVersion: "1.0"
    main: true
    name: "ChipCardMultipleLingualQnA"
    context:
      variables:
        greeting: "string"
        name: "string"
        cancelChoice: "string"
        rb: "resourcebundle"
    states:
      detect:
        component: "System.DetectLanguage"
        properties:
          ...
        transitions:
          ...
      qna:
        component: "System.QnA"
        properties:
          botName: "ChipCardMultipleLingualQnA"
          matchFields: "categories+questions"
          viewAnswerLabel: "${rb.viewAnswerLabel}"
          moreAnswersLabel: "${rb.moreAnswersLabel}"
        transitions:
          actions:
            none: "unresolved"
          next: "detect"
      unresolved:
        component: "System.Output"
        properties:
          text: "${rb.NoMatch}"
        transitions:
          return: "done"    
Habilidades Reutilizáveis do Módulo de Perguntas e Respostas

É possível modular as definições de fluxo de caixas de diálogo criando habilidades reutilizáveis do módulo de perguntas e respostas que podem ser chamadas usando as propriedades botName e QnaBotName que pertencem aos componentes System.Intent e System.QnA.

Exemplo: propriedade botName

...
states:
  qna:
    component: "System.QnA"
    properties:
      botName: "FinancialQnABot"
    transitions:
      actions:
        none: "unresolved"
      next: "qna"
  unresolved:
    component: "System.Output"
    properties:
      text: "Sorry, I did not find any match. Can you rephrase the question?"
    transitions:
      return: "done"

Exemplo: botName e QnABotName

Neste trecho de código, botName e QnABotName têm o mesmo valor.
states:
  intent:
    component: "System.Intent"
    properties:
      botName: "FinancialQnABot"
      qnaMatchFields: "categories+questions"
      variable: "iResult"
      qnaEnable: true
    transitions:
      actions:
        Balances: "startBalances"
        Transactions: "startTxns"
        Send Money: "startPayments"
        Track Spending: "startTrackSpending"
        Dispute: "setDate"
        unresolvedIntent: "unresolved"
        qna: "qna"
...

  qna:
    component: "System.QnA"
    properties:
      botName: "FinancialQnABot"
      matchFields: "categories+questions"   
    transitions:
      actions:
        none: "unresolved"
      next: "intent"

Exemplo: botName e qnaBotName no System.Intent

Este trecho de código mostra a propriedade botName em dois contextos distintos: no componente System.Intent, onde ela chama uma habilidade transacional, e no componente System.Qna, onde ela chama uma habilidade do módulo de perguntas e respostas.
states:
  intent:
    component: "System.Intent"
    properties:
      botName: "FinancialBot"
      qnaBotName: "FinancialQnABot"
      variable: "iResult"
      qnaEnable: true
    transitions:
      actions:
        Balances: "startBalances"
        Transactions: "startTxns"
        Send Money: "startPayments"
        Track Spending: "startTrackSpending"
        Dispute: "setDate"
        unresolvedIntent: "unresolved"
        qna: "qna"
...

  qna:
    component: "System.QnA"
    properties:
      botName: "FinancialQnABot"   
    transitions:
      actions:
        none: "unresolved"
      next: "intent"

Configurar o Roteamento de Intenção e Módulo de Perguntas e Respostas

Fornecemos palavras comumente usadas e frases de abertura que indicam comandos ou perguntas na página Configuração do Roteamento do Módulo de Perguntas e Respostas. Você pode adicionar o conteúdo específico do domínio a essa página que permite ao roteador discernir entre módulo de perguntas e respostas e intenções. Para isso:

  1. Clique em Definições (Ícone Definições) na barra de navegação esquerda.

  2. Clique em Configuração do Roteamento do Módulo de Perguntas e Respostas.

  3. Selecione um idioma.

  4. Adicione ou remova palavras e frases nas categorias a seguir que impactam o roteamento da intenção.
    • Configuração da Transação — Você pode adicionar verbos e frases que ajudam o mecanismo de Intenção a identificar uma mensagem como transação.
      • Verbos de Solicitações Adicionais — As mensagens que começam com solicitações ou comandos como compre, verifique ou cancele são consideradas transacionais e roteadas para uma intenção. Essas palavras, que estão no modo imperativo, indicam uma transação, não uma pergunta.

        Nós mantemos uma biblioteca de verbos no imperativo amplamente usados para cada idioma suportado. Entre elas, estão palavras como pague, remova e encerre. Você pode adicionar verbos de solicitação específicos da empresa ou do público-alvo.

      • Expansão de Verbos de Solicitação — Um conjunto de prefixos (un, dis, re) que, quando aplicados, os verbos de solicitação adicionados no campo Verbos de Solicitação Adicionais, aumentam o vocabulário que identifica uma mensagem como vinculada à intenção.

      • Prefixo de Sentença de Solicitação — Palavras e frases associadas a solicitações, como Você pode e Não. As mensagens que começam com essas palavras são roteadas como intenções. Nós mantemos uma biblioteca dessas palavras e frases orientadas a transação que você pode atualizar.
    • Configuração de Perguntas — Um conjunto de palavras e frases de uso comum que geralmente são usadas em perguntas. Estas incluem frases do tipo como eu e Eu preciso saber. Elas indicam que um usuário está fazendo uma pergunta, não solicitando uma transação. Quando uma habilidade recebe uma mensagem que começa com uma delas, ela otimiza sua resposta priorizando o link para a resposta do módulo de perguntas e respostas em detrimento do link para a resposta da intenção. Geralmente, o comportamento é o inverso: a habilidade concede o primeiro lugar às intenções que pontuam acima do limite de confiança configurado. Por exemplo, quando uma habilidade recebe How do I terminate my policy, ela consegue discernir facilmente que o usuário está procurando informações e coloca o link Exibir Respostas em primeiro.

      Quando a entrada do usuário é ambígua, o link Módulo de Perguntas e Respostas pode não obter o primeiro lugar na classificação. Por exemplo, o roteador pode não conseguir identificar can I terminate my policy como intenção ou módulo de perguntas e respostas. A habilidade mostra ambas as opções porque há uma pontuação de intenção acima do limite de confiança e uma pergunta correspondente, mas classifica a intenção em primeiro.
      Veja a seguir a descrição da intenção priorizada de response.png
      Descrição da ilustração prioritized-intent-response.png