Partilhar via


Utilizar pedidos de seguimento para criar vários turnos numa conversa

Use prompts de acompanhamento e contexto para gerenciar as várias voltas, conhecidas como multiturnos, para seu bot de uma pergunta para outra.

Para ver como funciona o multi-turno, veja o seguinte vídeo de demonstração:

Conversa em vários turnos no QnA Maker

Nota

O serviço QnA Maker será desativado no dia 31 de março de 2025. Uma versão mais recente do recurso de perguntas e respostas agora está disponível como parte da Linguagem de IA do Azure. Para obter os recursos de resposta a perguntas no Serviço Linguístico, consulte Resposta a perguntas. A partir de 1º de outubro de 2022, você não poderá criar novos recursos do QnA Maker. Para obter informações sobre como migrar bases de conhecimento existentes do QnA Maker para responder a perguntas, consulte o guia de migração.

O que é uma conversa multiturno?

Algumas perguntas não podem ser respondidas em um único turno. Quando cria as conversações da aplicação do cliente (chatbot), um utilizador pode fazer uma pergunta que precisa de ser filtrada ou refinada para determinar a resposta correta. Você torna esse fluxo possível através das perguntas, apresentando ao usuário prompts de acompanhamento.

Quando um usuário faz uma pergunta, o QnA Maker retorna a resposta e todos os prompts de acompanhamento. Esta resposta permite-lhe apresentar as perguntas de acompanhamento como escolhas.

Atenção

Os pedidos multiturno não são extraídos de documentos FAQ. Se precisar de uma extração multiturno, remova os pontos de interrogação que designam os pares de QnA como FAQs.

Exemplo de conversa multiturno com bot de chat

Com multiturno, um bot de chat gerencia uma conversa com um usuário para determinar a resposta final, como mostra a imagem a seguir:

Uma caixa de diálogo de várias voltas com prompts que guiam um usuário através de uma conversa

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

Quando o usuário seleciona uma opção , a próxima lista de opções de refinamento é apresentada. Esta sequência continua até que o usuário determine a resposta final correta e .

Usar várias voltas em um bot

Depois de publicar seu KB, você pode selecionar o botão Criar Bot para implantar seu bot do QnA Maker no Serviço de Bot do Azure AI. Os prompts aparecerão nos clientes de chat que você habilitou para seu bot.

Criar uma conversa de várias voltas a partir da estrutura de um documento

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

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

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 QnA pai. Em alguns documentos, a raiz da hierarquia não tem conteúdo, o que poderia servir como resposta. Você pode fornecer o 'Texto de resposta padrão' para ser usado como um texto de resposta substituto para extrair essas hierarquias.

A estrutura de várias voltas pode ser inferida apenas a partir de URLs, arquivos PDF ou arquivos DOCX. Para obter um exemplo de estrutura, veja uma imagem de um ficheiro PDF manual do utilizador do Microsoft Surface.

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

Construindo seu próprio documento de várias voltas

Se você estiver criando um documento de várias voltas, lembre-se das seguintes diretrizes:

  • Use títulos e subtítulos para indicar hierarquia. Por exemplo, use h1 para denotar o QnA pai e h2 para denotar o QnA que deve ser tomado como prompt. Use um tamanho de título pequeno para indicar a hierarquia subsequente. Não use estilo, cor ou algum outro mecanismo para implicar estrutura em seu documento, o QnA Maker não extrairá os prompts de várias voltas.

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

  • Não termine um título com um ponto de interrogação, ?.

  • Você pode usar o documento de exemplo como um exemplo para criar seu próprio documento de várias voltas.

Adicionando arquivos a uma KB de várias voltas

Quando você adiciona um documento hierárquico, o QnA Maker determina prompts de acompanhamento da estrutura para criar fluxo de conversação.

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

Atenção

Não há suporte para o uso de um arquivo de base de conhecimento multiturno TSV ou XLS exportado 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 de várias voltas exportados a uma base de dados de conhecimento.

Crie uma base de dados de conhecimento com prompts de várias voltas com a API Create

Você pode criar um caso de conhecimento com prompts de várias voltas usando a API de criação do QnA Maker. Os prompts estão adicionando na context matriz da prompts propriedade.

Mostrar perguntas e respostas com contexto

Reduza os pares de perguntas e respostas exibidos apenas para aqueles pares com conversas contextuais.

Selecione Opções de visualização e, em seguida, selecione Mostrar contexto. A lista exibe pares de perguntas e respostas que contêm prompts de acompanhamento.

Filtrar pares de perguntas e respostas por conversas contextuais

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

A captura de tela mostra a seção Contexto realçada.

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

Adicionar um par de perguntas e respostas existente como um prompt de acompanhamento

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

As respostas

Adicione um prompt de acompanhamento a um par de perguntas e respostas existente que não esteja vinculado no momento. Como a pergunta não está vinculada a nenhum par de perguntas e respostas, a configuração de exibição atual precisa ser alterada.

  1. Para vincular um par de perguntas e respostas existente como um prompt de acompanhamento, selecione a linha do par de perguntas e respostas. Para o manual do Surface, procure Terminar sessão 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 Value
    Texto a apresentar Digite Desligar o dispositivo. Este é um texto personalizado para exibir no prompt de acompanhamento.
    Apenas contexto Selecione esta caixa de verificação. Uma resposta só é devolvida se a pergunta especificar o contexto.
    Link para a resposta Digite Usar a tela de entrada para encontrar o par de perguntas e respostas existente.
  4. Uma partida é devolvida. Selecione esta resposta como seguimento e, em seguida, selecione Guardar.

    A página

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

Editar o texto de exibição

Quando um prompt de acompanhamento é criado e um par de perguntas e respostas existente é inserido como o Link para Resposta, você pode inserir um novo texto de exibição. Este texto não substitui a pergunta existente e não adiciona uma nova pergunta alternativa. É separado desses valores.

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

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

  3. Selecione o texto de apresentação que pretende editar e, em seguida, selecione Editar.

    O comando Editar para o texto de exibição

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

  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 perguntas e respostas como um prompt de acompanhamento

Quando você adiciona um novo par de perguntas e respostas à base de conhecimento, cada par deve ser vinculado a uma pergunta existente como um prompt de acompanhamento.

  1. Na barra de ferramentas da base de dados de conhecimento, procure e selecione o par de perguntas e respostas existente para Contas e login.

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

  3. Em Prompt de acompanhamento (PREVIEW), crie um novo prompt de acompanhamento inserindo os seguintes valores:

    Campo Value
    Texto a apresentar Crie uma conta do Windows. O texto personalizado a ser exibido no prompt de acompanhamento.
    Apenas contexto Selecione esta caixa de verificação. Esta resposta só é devolvida se a pergunta especificar o contexto.
    Link para a resposta Insira o seguinte texto como resposta:
    Crie uma conta do Windows com uma conta de email nova ou existente.
    Quando você salva e treina o banco de dados, esse texto será convertido.

    Criar uma nova pergunta e resposta

  4. Selecione Criar novo e, em seguida, selecione Guardar.

    Esta ação cria um novo par de perguntas e respostas e vincula a pergunta selecionada como um prompt de acompanhamento. A coluna Contexto , para ambas as perguntas, indica uma relação de seguimento imediato.

  5. Selecione Opções de visualização e, em seguida, selecione Mostrar contexto (pré-visualização).

    A nova pergunta mostra como está ligada.

    Criar um novo prompt de acompanhamento

    A pergunta pai exibe uma nova pergunta como uma de suas escolhas.

    A captura de tela mostra que a coluna Contexto, para ambas as perguntas, 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.

Visualize várias voltas durante o teste de prompts de acompanhamento

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

A resposta inclui os prompts de acompanhamento

Uma solicitação JSON para retornar uma resposta inicial e 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 JSON para retornar uma resposta inicial e prompts de acompanhamento

A seção anterior solicitou uma resposta e quaisquer solicitações de acompanhamento para Contas e login. A resposta inclui as informações do prompt, que estão localizadas em answers[0].context, e o texto a ser exibido para o 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 prompts matriz fornece texto na displayText propriedade e no qnaId valor. Você pode mostrar essas respostas como as próximas opções exibidas no fluxo de conversa e, em seguida, enviar as selecionadas qnaId de volta para o QnA Maker na solicitação a seguir.

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

Preencha o context objeto para incluir o contexto anterior.

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

{
  "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 JSON para retornar uma resposta não inicial e prompts de acompanhamento

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

{
    "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 o QnA Maker ID

Se você estiver criando um aplicativo personalizado, na resposta da pergunta inicial, todos os prompts de acompanhamento e seus associados qnaId serão retornados. Agora que você tem o ID, você pode passá-lo no corpo da solicitação do prompt de acompanhamento. Se o corpo da solicitação contiver o 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 encontrar a resposta pelo texto da pergunta.

A ordem de exibição é suportada na API de atualização

O texto de exibição e a ordem de exibição, retornados na resposta JSON, são suportados para edição pela API de atualização.

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

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

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

O QnA Maker suporta controle de versão incluindo etapas de conversação de várias voltas no arquivo exportado.

Próximos passos