Usar avisos de acompanhamento para criar várias rodadas de uma conversa

Use prompts de acompanhamento e contexto para gerenciar as várias rodadas para o bot de uma pergunta para outra.

Para ver como funciona a conversa com várias rodadas, assista ao segunite vídeo de demonstração:

Conversas com várias rodadas no QnA Maker

Observação

O serviço de QnA Maker está sendo desativado no dia 31 de março de 2025. Uma versão mais recente da funcionalidade de perguntas e respostas agora está disponível como parte da Linguagem de IA do Azure. Para saber mais sobre o recurso de respostas às perguntas no Serviço de Linguagem, confira respostas às perguntas. A partir de 1º de outubro de 2022, você não poderá criar novos recursos de QnA Maker. Para obter informações sobre como migrar bases de dados de conhecimento do QnA Maker existentes para responder à pergunta, consulte o Guia de migração.

O que é uma conversa com várias rodadas?

Às vezes, não é possível responder uma pergunta em uma rodada. Quando você cria as conversas de um aplicativo cliente (chat bot), um usuário pode fazer uma pergunta que precisa ser filtrada ou refinada para determinar a resposta correta. Para tornar esse fluxo de perguntas possível, você exibe prompts de acompanhamento ao usuário.

Quando o usuário faz uma pergunta, o QnA Maker retorna a resposta e eventuais prompts de acompanhamento. Essa resposta permite que você apresente as perguntas de acompanhamento como opções.

Cuidado

Prompts com várias rodadas não são extraídos de documentos de perguntas frequentes. Se você precisar de extração com várias rodadas, remova os pontos de interrogação que designam os pares de pergunta e resposta como perguntas frequentes.

Exemplo de conversa com várias rodadas com chat bot

Com a conversa com várias rodadas, o chat bot gerencia uma conversa com o usuário para determinar a resposta final, conforme mostrado na seguinte imagem:

Um diálogo com várias rodadas com prompts que orientam o usuário na conversa

Na imagem anterior, um usuário iniciou uma conversa inserindo Minha conta. A base de dados de conhecimento tem três pares de perguntas e respostas vinculados. Para refinar a resposta, o usuário seleciona uma das três opções na base de dados de conhecimento. A pergunta (nº 1) tem três prompts de acompanhamento, que são apresentados no chat bot como três opções (nº 2).

Quando o usuário seleciona uma opção (nº 3), a próxima lista de opções de refinamento (nº 4) é apresentada. Essa sequência continua (nº 5) até que o usuário determine a resposta final correta (nº 6).

Usar a conversa com várias rodadas em um bot

Após ter publicado sua KB (base de conhecimento), você pode selecionar o botão Criar bot para implantar seu bot do QnA Maker no Serviço de Bot de IA do Azure. Os prompts aparecerão nos clientes de chat nos quais você habilitou o bot.

Criar uma conversa com várias rodadas usando uma estrutura de documento

Quando você cria uma base de dados de conhecimento, a seção Popular sua KB exibe a caixa de seleção Habilitar extração de várias rodadas de URLs, arquivos .pdf ou .docx.

Caixa de seleção para habilitar a extração de várias rodadas

Quando você seleciona essa opção, o QnA Maker extrai a hierarquia presente na estrutura do documento. A hierarquia é convertida em prompts de acompanhamento, e a raiz da hierarquia serve como o par de pergunta e resposta pai. Em alguns documentos, a raiz da hierarquia não tem nenhum conteúdo, o que pode servir como uma resposta. Você pode fornecer o 'Texto de Resposta Padrão' a ser usado como um texto de resposta substituto para extrair essas hierarquias.

A estrutura de várias rodadas pode ser inferida apenas de URLs, arquivos PDF ou arquivos DOCX. Para obter um exemplo de estrutura, veja uma imagem de um arquivo PDF de manual do usuário do Microsoft Surface.

Captura de tela mostra um exemplo da estrutura em um manual do usuário.

Criando seu documento de várias rodadas

Ao criar um documento com várias rodadas, tenha em mente as seguintes diretrizes:

  • Use títulos e subtítulos para denotar a hierarquia. Por exemplo, use h1 para indicar o par de pergunta e resposta pai e h2 para indicar o par que deve ser usado como prompt. Use títulos menores para indicar a hierarquia subsequente. Não use estilo, cor ou algum outro mecanismo para indicar a estrutura do documento, pois o QnA Maker não extrairá os prompts de várias rodadas.

  • O primeiro caractere do título deve ser maiúsculo.

  • Não termine um cabeçalho com um ponto de interrogação, ?.

  • Você pode usar a amostra de documento como um exemplo para criar seu documento com várias rodadas.

Adicionar arquivos a um KB com várias rodadas

Quando você adiciona um documento hierárquico, o QnA Maker usa a estrutura para determinar os prompts de acompanhamento e criar um fluxo conversacional.

  1. No QnA Maker, selecione uma base de dados de conhecimento, que foi criada com a opção Habilitar extração de várias rodadas de URLs, arquivos .pdf ou .docx. habilitada.
  2. Vá para a página Configurações e selecione o arquivo ou a URL a ser adicionada.
  3. Salve e treine a base de dados de conhecimento.

Cuidado

Não é possível usar um arquivo TSV ou XLS exportado de base de dados de conhecimento com várias rodadas como fonte de dados para uma base de dados de conhecimento nova ou vazia. Você precisa importar esse tipo de arquivo, na página Configurações do portal do QnA Maker, para adicionar prompts exportados com várias rodadas a uma base de dados de conhecimento.

Criar uma base de dados de conhecimento com prompts de várias rodadas com a API de criação

Você pode criar uma base de dados de conhecimento com prompts de várias rodadas usando a API de criação do QnA Maker. Os prompts são adicionados na matriz prompts da propriedade context.

Mostrar perguntas e respostas com contexto

Reduza os pares de pergunta e resposta exibidos àqueles que contenham conversas contextuais.

Selecione Opções de exibição e depois Mostrar contexto. A lista exibe os pares de pergunta e resposta que contêm prompts de acompanhamento.

Filtrar os pares de pergunta e resposta por conversas contextuais

O contexto de várias rodadas é exibido na primeira coluna.

Captura de tela mostra a seção Contexto destacada.

Na imagem anterior, #1 indica texto em negrito na coluna, o que indica a pergunta atual. A pergunta pai é o item superior na linha. As perguntas abaixo são os pares de pergunta e resposta vinculados. Esses itens são selecionáveis, para que você possa ir imediatamente aos outros itens contextuais.

Adicionar um par de pergunta e resposta como um prompt de acompanhamento

A pergunta original, Minha conta, tem prompts de acompanhamento, como Contas e entrada.

As respostas de

Adicione um prompt de acompanhamento a um par de pergunta e resposta que não está vinculado no momento. Como a pergunta não está vinculada a nenhum par de pergunta e resposta, é necessário alterar a configuração de exibição atual.

  1. Para vincular um par de pergunta e resposta como um prompt de acompanhamento, selecione a linha que corresponde ao par. No manual do Surface, pesquise Sair para reduzir a lista.

  2. Na linha de Saída, na coluna Resposta, selecione Adicionar prompt de acompanhamento.

  3. Nos campos da janela pop-up Prompt de acompanhamento, insira os seguintes valores:

    Campo Valor
    Exibir texto Insira Desligar o dispositivo. Esse é o texto personalizado a ser exibido no prompt de acompanhamento.
    Somente contexto Marcar essa caixa de seleção. Uma resposta será retornada somente se a pergunta especificar o contexto.
    Link para resposta Insira Usar a tela de entrada para localizar o par de pergunta e resposta.
  4. Uma correspondência é retornada. Selecione essa resposta como o acompanhamento e escolha Salvar.

    A página

  5. Depois de adicionar o prompt de acompanhamento, selecione Salvar e treinar na navegação superior.

Editar o texto exibido

Quando você cria um prompt de acompanhamento e insere um par de pergunta e resposta como o Link para resposta, pode inserir um novo Texto de exibição. O texto não substitui a pergunta nem adiciona uma pergunta alternativa. Ele é separado desses valores.

  1. Para editar o texto de exibição, procure e selecione a pergunta no campo Contexto.

  2. Na linha da pergunta, selecione o prompt de acompanhamento na coluna de resposta.

  3. Selecione o texto de exibição que você deseja editar e escolha Editar.

    O comando Editar do texto de exibição

  4. Na janela pop-up Prompt de acompanhamento, altere o texto de exibição atual.

  5. Quando terminar de editar o texto de exibição, selecione Salvar.

  6. Na barra de navegação superior, Salvar e treinar.

Adicionar um novo par de pergunta e resposta como um prompt de acompanhamento

Quando você adiciona um novo par de pergunta e resposta à base de dados de conhecimento, cada par deve estar vinculado a uma pergunta atual como prompt de acompanhamento.

  1. Na barra de ferramentas da base de dados de conhecimento, procure e selecione o par de pergunta e resposta de Contas e entrada.

  2. Na coluna Resposta da pergunta, selecione Adicionar prompt de acompanhamento.

  3. Em Prompt de acompanhamento (VERSÃO PRÉVIA) , crie um prompt inserindo os seguintes valores:

    Campo Valor
    Exibir texto Criar uma conta do Windows. O texto personalizado a ser exibido no prompt de acompanhamento.
    Somente contexto Marcar essa caixa de seleção. Essa resposta será retornada somente se a pergunta especificar o contexto.
    Link para resposta Insira o seguinte texto como a resposta:
    Crie uma conta do Windows com uma conta de email nova ou atual.
    Quando você salvar e treinar o banco de dados, esse texto será convertido.

    Criar uma pergunta e resposta de prompt

  4. Selecione Criar e escolha Salvar.

    Essa ação cria um par de pergunta e resposta e vincula a pergunta selecionada como prompt de acompanhamento. A coluna Contexto das duas perguntas indica uma relação de prompt de acompanhamento.

  5. Selecione Opções de exibição e depois Mostrar contexto (VERSÃO PRÉVIA).

    A nova pergunta mostra como ela está vinculada.

    Criar um prompt de acompanhamento

    A pergunta pai exibe uma nova pergunta como uma das escolhas.

    Captura de tela mostra a coluna Contexto das duas perguntas, que indica uma relação de prompt de acompanhamento.

  6. Depois de adicionar o prompt de acompanhamento, selecione Salvar e treinar na barra de navegação superior.

Ver conversas com várias rodadas durante o teste de prompts de acompanhamento

Quando você testa a pergunta com os prompts de acompanhamento no painel de teste, a resposta inclui os prompts.

A resposta inclui os prompts de acompanhamento

Uma solicitação de JSON para retornar uma resposta inicial e os prompts de acompanhamento

Use o objeto vazio context para solicitar a resposta à pergunta do usuário e incluir prompts de acompanhamento.

{
  "question": "accounts and signing in",
  "top": 10,
  "userId": "Default",
  "isTest": false,
  "context": {}
}

Uma resposta de JSON para retornar uma resposta inicial e os prompts de acompanhamento

A seção anterior solicitou uma resposta e os prompts de acompanhamento de Contas e entrada. A resposta inclui as informações do prompt, localizadas em answers[0].context, e o texto a ser exibido ao usuário.

{
    "answers": [
        {
            "questions": [
                "Accounts and signing in"
            ],
            "answer": "**Accounts and signing in**\n\nWhen you set up your Surface, an account is set up for you. You can create additional accounts later for family and friends, so each person using your Surface can set it up just the way he or she likes. For more info, see All about accounts on Surface.com. \n\nThere are several ways to sign in to your Surface Pro 4: ",
            "score": 100.0,
            "id": 15,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": [
                    {
                        "displayOrder": 0,
                        "qnaId": 16,
                        "qna": null,
                        "displayText": "Use the sign-in screen"
                    }
                ]
            }
        },
        {
            "questions": [
                "Sign out"
            ],
            "answer": "**Sign out**\n\nHere's how to sign out: \n\n  Go to Start, and right-click your name. Then select Sign out. ",
            "score": 38.01,
            "id": 18,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": [
                    {
                        "displayOrder": 0,
                        "qnaId": 16,
                        "qna": null,
                        "displayText": "Turn off the device"
                    }
                ]
            }
        },
        {
            "questions": [
                "Use the sign-in screen"
            ],
            "answer": "**Use the sign-in screen**\n\n1.  \n\nTurn on or wake your Surface by pressing the power button. \n\n2.  \n\nSwipe up on the screen or tap a key on the keyboard. \n\n3.  \n\nIf you see your account name and account picture, enter your password and select the right arrow or press Enter on your keyboard. \n\n4.  \n\nIf you see a different account name, select your own account from the list at the left. Then enter your password and select the right arrow or press Enter on your keyboard. ",
            "score": 27.53,
            "id": 16,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": []
            }
        }
    ]
}

A matriz prompts fornece texto na propriedade displayText e o valor da qnaId. Você pode mostrar essas respostas como as próximas opções exibidas no fluxo de conversa e enviar a qnaId selecionada ao QnA Maker na solicitação a seguir.

Uma solicitação de JSON para retornar uma resposta não inicial e os prompts de acompanhamento

Preencha o objeto context para incluir o contexto anterior.

Na solicitação de JSON a seguir, a pergunta atual é Usar o Windows Hello para entrar e a pergunta anterior era Contas e entrada.

{
  "question": "Use Windows Hello to sign in",
  "top": 10,
  "userId": "Default",
  "isTest": false,
  "qnaId": 17,
  "context": {
    "previousQnAId": 15,
    "previousUserQuery": "accounts and signing in"
  }
}

Uma resposta de JSON para retornar uma resposta não inicial e os prompts de acompanhamento

A resposta de JSON GenerateAnswer do QnA Maker inclui os prompts de acompanhamento na propriedade context do primeiro item no objeto answers:

{
    "answers": [
        {
            "questions": [
                "Use Windows Hello to sign in"
            ],
            "answer": "**Use Windows Hello to sign in**\n\nSince Surface Pro 4 has an infrared (IR) camera, you can set up Windows Hello to sign in just by looking at the screen. \n\nIf you have the Surface Pro 4 Type Cover with Fingerprint ID (sold separately), you can set up your Surface sign you in with a touch. \n\nFor more info, see What is Windows Hello? on Windows.com. ",
            "score": 100.0,
            "id": 17,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": []
            }
        },
        {
            "questions": [
                "Meet Surface Pro 4"
            ],
            "answer": "**Meet Surface Pro 4**\n\nGet acquainted with the features built in to your Surface Pro 4. \n\nHere's a quick overview of Surface Pro 4 features: \n\n\n\n\n\n\n\nPower button \n\n\n\n\n\nPress the power button to turn your Surface Pro 4 on. You can also use the power button to put it to sleep and wake it when you're ready to start working again. \n\n\n\n\n\n\n\nTouchscreen \n\n\n\n\n\nUse the 12.3" display, with its 3:2 aspect ratio and 2736 x 1824 resolution, to watch HD movies, browse the web, and use your favorite apps. \n\nThe new Surface G5 touch processor provides up to twice the touch accuracy of Surface Pro 3 and lets you use your fingers to select items, zoom in, and move things around. For more info, see Surface touchscreen on Surface.com. \n\n\n\n\n\n\n\nSurface Pen \n\n\n\n\n\nEnjoy a natural writing experience with a pen that feels like an actual pen. Use Surface Pen to launch Cortana in Windows or open OneNote and quickly jot down notes or take screenshots. \n\nSee Using Surface Pen (Surface Pro 4 version) on Surface.com for more info. \n\n\n\n\n\n\n\nKickstand \n\n\n\n\n\nFlip out the kickstand and work or play comfortably at your desk, on the couch, or while giving a hands-free presentation. \n\n\n\n\n\n\n\nWi-Fi and Bluetooth® \n\n\n\n\n\nSurface Pro 4 supports standard Wi-Fi protocols (802.11a/b/g/n/ac) and Bluetooth 4.0. Connect to a wireless network and use Bluetooth devices like mice, printers, and headsets. \n\nFor more info, see Add a Bluetooth device and Connect Surface to a wireless network on Surface.com. \n\n\n\n\n\n\n\nCameras \n\n\n\n\n\nSurface Pro 4 has two cameras for taking photos and recording video: an 8-megapixel rear-facing camera with autofocus and a 5-megapixel, high-resolution, front-facing camera. Both cameras record video in 1080p, with a 16:9 aspect ratio. Privacy lights are located on the right side of both cameras. \n\nSurface Pro 4 also has an infrared (IR) face-detection camera so you can sign in to Windows without typing a password. For more info, see Windows Hello on Surface.com. \n\nFor more camera info, see Take photos and videos with Surface and Using autofocus on Surface 3, Surface Pro 4, and Surface Book on Surface.com. \n\n\n\n\n\n\n\nMicrophones \n\n\n\n\n\nSurface Pro 4 has both a front and a back microphone. Use the front microphone for calls and recordings. Its noise-canceling feature is optimized for use with Skype and Cortana. \n\n\n\n\n\n\n\nStereo speakers \n\n\n\n\n\nStereo front speakers provide an immersive music and movie playback experience. To learn more, see Surface sound, volume, and audio accessories on Surface.com. \n\n\n\n\n",
            "score": 21.92,
            "id": 3,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": [
                    {
                        "displayOrder": 0,
                        "qnaId": 4,
                        "qna": null,
                        "displayText": "Ports and connectors"
                    }
                ]
            }
        },
        {
            "questions": [
                "Use the sign-in screen"
            ],
            "answer": "**Use the sign-in screen**\n\n1.  \n\nTurn on or wake your Surface by pressing the power button. \n\n2.  \n\nSwipe up on the screen or tap a key on the keyboard. \n\n3.  \n\nIf you see your account name and account picture, enter your password and select the right arrow or press Enter on your keyboard. \n\n4.  \n\nIf you see a different account name, select your own account from the list at the left. Then enter your password and select the right arrow or press Enter on your keyboard. ",
            "score": 19.04,
            "id": 16,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": []
            }
        }
    ]
}

Consultar a base de dados de conhecimento com a ID do QnA Maker

Se você estiver criando um aplicativo personalizado, na resposta da pergunta inicial, todos os prompts de acompanhamento e os qnaId associados serão retornados. Agora que você tem a ID, pode transmiti-la no corpo da solicitação do prompt de acompanhamento. Se o corpo da solicitação contiver a qnaId e o objeto de contexto (que contém as propriedades anteriores do QnA Maker), GenerateAnswer retornará a pergunta exata por ID, em vez de usar o algoritmo de classificação para localizar a resposta pelo texto da pergunta.

A ordem de exibição tem suporte na API de atualização

A API de atualização pode editar o texto e a ordem de exibição, retornados na resposta de JSON.

Adicionar ou excluir prompts de várias rodadas com a API de atualização

Você pode adicionar ou excluir prompts de várias rodadas usando a API de atualização do QnA Maker. Os prompts são adicionados na matriz promptsToAdd e na matriz promptsToDelete da propriedade context.

Exportar base de dados de conhecimento para controle de versão

Para dar suporte para o controle de versão, o QnA Maker inclui as etapas de conversas com várias rodadas no arquivo exportado.

Próximas etapas