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

Utilize os pedidos de seguimento e o contexto para gerir as várias voltas, conhecidas como várias voltas, para o bot de uma pergunta para outra.

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

Conversação multiturno no Criador de FAQ

Nota

O serviço Criador de FAQ será descontinuado a 31 de março de 2025. Uma versão mais recente da capacidade de perguntas e respostas está agora disponível como parte da Linguagem de IA do Azure. Para obter as capacidades de resposta a perguntas no Serviço de Idioma, veja Resposta a perguntas. A partir de 1 de outubro de 2022, não poderá criar novos recursos do Criador de FAQ. Para obter informações sobre como migrar bases de dados de conhecimento existentes do Criador de FAQ para responder a perguntas, consulte o guia de migração.

O que é uma conversação multiturno?

Algumas perguntas não podem ser respondidas de uma só vez. 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. Pode realizar este fluxo através das perguntas ao apresentar ao utilizador pedidos de seguimento.

Quando um utilizador faz uma pergunta, o Criador de FAQ devolve a resposta e quaisquer pedidos de seguimento. Esta resposta permite-lhe apresentar as perguntas de seguimento 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.

Conversação multiturno de exemplo com o chat bot

Com várias voltas, um chat bot gere uma conversação com um utilizador para determinar a resposta final, conforme mostrado na imagem seguinte:

Uma caixa de diálogo com várias voltas com avisos que guiam um utilizador através de uma conversação

Na imagem anterior, um utilizador iniciou uma conversação ao introduzir A minha conta. O base de dados de conhecimento tem três pares de perguntas e respostas ligados. Para refinar a resposta, o utilizador seleciona uma das três opções no base de dados de conhecimento. A pergunta (#1) tem três pedidos de seguimento, que são apresentados no chat bot como três opções (#2).

Quando o utilizador seleciona uma opção (#3), é apresentada a próxima lista de opções de refinação (#4). Esta sequência continua (#5) até que o utilizador determine a resposta final correta (#6).

Utilizar multi-turn num bot

Depois de publicar a BDC, pode selecionar o botão Criar Bot para implementar o bot do Criador de FAQ no Azure AI Bot Service. Os pedidos serão apresentados nos clientes de chat que ativou para o bot.

Criar uma conversação multiturno a partir da estrutura de um documento

Quando cria um base de dados de conhecimento, a secção Preencher a BDC apresenta uma caixa de verificação Ativar a extração de várias curvas de URLs, .pdf ou ficheiros .docx.

Caixa de verificação para ativar a extração de várias curvas

Quando seleciona esta opção, o Criador de FAQ extrai a hierarquia presente na estrutura do documento. A hierarquia é convertida em para pedidos de seguimento e a raiz da hierarquia serve como FAQ principal. Em alguns documentos, a raiz da hierarquia não tem conteúdo, o que pode servir de resposta. Pode fornecer o "Texto de Resposta Predefinido" para ser utilizado como um texto de resposta substituto para extrair essas hierarquias.

A estrutura multi-turn só pode ser inferida a partir de URLs, ficheiros PDF ou ficheiros DOCX. Para obter um exemplo de estrutura, veja uma imagem de um ficheiro PDF manual do utilizador do Microsoft Surface.

Captura de ecrã a mostrar um exemplo da estrutura num manual do utilizador.

Criar o seu próprio documento multi-turn

Se estiver a criar um documento multi-turn, tenha em atenção as seguintes diretrizes:

  • Utilize cabeçalhos e subcabeçalhos para denotar a hierarquia. Por exemplo, utilize um h1 para denotar o FAQ principal e h2 para denotar o FAQ que deve ser tomado como pedido. Utilize um tamanho de cabeçalho pequeno para denotar a hierarquia subsequente. Não utilize o estilo, a cor ou outro mecanismo para implicar estrutura no seu documento, o Criador de FAQ não irá extrair os pedidos de várias voltas.

  • O primeiro caráter do cabeçalho tem de ser em maiúscula.

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

  • Pode utilizar o documento de exemplo como exemplo para criar o seu próprio documento multi-turn.

Adicionar ficheiros a uma BDC multi-turn

Quando adiciona um documento hierárquico, o Criador de FAQ determina os pedidos de seguimento da estrutura para criar um fluxo de conversação.

  1. No Criador de FAQ, selecione um base de dados de conhecimento existente, que foi criado com Ativar a extração de várias curvas a partir de URLs, .pdf ou .docx ficheiros ativados.
  2. Aceda à página Definições , selecione o ficheiro ou URL a adicionar.
  3. Guarde e prepare a base de dados de conhecimento.

Atenção

O suporte para utilizar um ficheiro de base de dados de conhecimento multi-turn TSV ou XLS exportado como origem de dados para uma base de dados de conhecimento nova ou vazia não é suportado. Tem de Importar esse tipo de ficheiro, a partir da página Definições do portal do Criador de FAQ, para adicionar pedidos de várias voltas exportados a um base de dados de conhecimento.

Criar base de dados de conhecimento com pedidos de várias curvas com a API Criar

Pode criar um caso de conhecimento com pedidos de várias voltas através da API Criar API do Criador de FAQ. Os pedidos estão a ser adicionados na context matriz da prompts propriedade.

Mostrar perguntas e respostas com contexto

Reduza os pares de perguntas e respostas apresentados apenas para esses pares com conversações contextuais.

Selecione Ver opções e, em seguida, selecione Mostrar contexto. A lista apresenta pares de perguntas e respostas que contêm pedidos de seguimento.

Filtrar pares de perguntas e respostas por conversações contextuais

O contexto multi-turn é apresentado na primeira coluna.

Captura de ecrã a mostrar a secção Contexto realçada.

Na imagem anterior, n.º 1 indica texto a negrito na coluna, o que significa a pergunta atual. A pergunta principal é o item superior na linha. As perguntas abaixo são os pares de perguntas e respostas ligados. Estes itens são selecionáveis, para que possa aceder imediatamente aos outros itens de contexto.

Adicionar um par de perguntas e respostas existente como um pedido de seguimento

A pergunta original, A minha conta, tem pedidos de seguimento, como Contas e início de sessão.

As respostas e os pedidos de seguimento

Adicione um pedido de seguimento a um par de perguntas e respostas existente que não esteja atualmente ligado. Uma vez que a pergunta não está ligada a nenhum par de perguntas e respostas, a definição de vista atual tem de ser alterada.

  1. Para ligar um par de perguntas e respostas existente como um pedido de seguimento, selecione a linha para o par de perguntas e respostas. Para o manual do Surface, procure Terminar sessão para reduzir a lista.

  2. Na linha de Signout (Terminar sessão), na coluna Answer (Resposta), selecione Add follow-up prompt (Adicionar pedido de seguimento).

  3. Nos campos na janela de pop-up Pedido de seguimento , introduza os seguintes valores:

    Campo Valor
    Texto a apresentar Introduza Desativar o dispositivo. Este é um texto personalizado a apresentar no pedido de seguimento.
    Apenas contexto Selecione esta caixa de verificação. Uma resposta só é devolvida se a pergunta especificar contexto.
    Ligação para responder Introduza Utilizar o ecrã de início de sessão para encontrar o par de perguntas e respostas existente.
  4. É devolvida uma correspondência. Selecione esta resposta como seguimento e, em seguida, selecione Guardar.

    A página

  5. Depois de adicionar o pedido de seguimento, selecione Guardar e preparar na navegação superior.

Editar o texto a apresentar

Quando é criado um pedido de seguimento e um par de perguntas e respostas existente é introduzido como a Ligação à Resposta, pode introduzir o novo Texto a apresentar. Este texto não substitui a pergunta existente e não adiciona uma nova pergunta alternativa. É separada desses valores.

  1. Para editar o texto a apresentar, procure e selecione a pergunta no campo Contexto .

  2. Na linha dessa pergunta, selecione o pedido de seguimento na coluna de resposta.

  3. Selecione o texto a apresentar que pretende editar e, em seguida, selecione Editar.

    O comando Editar para o texto a apresentar

  4. Na janela de pop-up Pedido de seguimento, altere o texto a apresentar existente.

  5. Quando terminar de editar o texto a apresentar, selecione Guardar.

  6. Na barra de navegação superior, Guarde e prepare.

Adicionar um novo par de perguntas e respostas como um pedido de seguimento

Quando adiciona um novo par de perguntas e respostas à base de dados de conhecimento, cada par deve estar ligado a uma pergunta existente como um pedido de seguimento.

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

  2. Na coluna Resposta para esta pergunta, selecione Adicionar pedido de seguimento.

  3. Em Pedido de seguimento (PRÉ-VISUALIZAÇÃO), crie um novo pedido de seguimento ao introduzir os seguintes valores:

    Campo Valor
    Texto a apresentar Criar uma Conta do Windows. O texto personalizado a apresentar no pedido de seguimento.
    Apenas contexto Selecione esta caixa de verificação. Esta resposta só é devolvida se a pergunta especificar contexto.
    Ligação para responder Introduza o seguinte texto como resposta:
    Crie uma conta do Windows com uma conta de e-mail nova ou existente.
    Quando guardar e preparar a base de dados, este texto será convertido.

    Criar uma nova pergunta e resposta rápida

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

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

  5. Selecione Opções de visualização e, em seguida, selecione Mostrar contexto (PRÉ-VISUALIZAÇÃO).

    A nova pergunta mostra como está ligado.

    Criar um novo pedido de seguimento

    A pergunta principal apresenta uma nova pergunta como uma das suas escolhas.

    Captura de ecrã a mostrar a coluna Contexto, para ambas as perguntas, indica uma relação de pedido de seguimento.

  6. Depois de adicionar o pedido de seguimento, selecione Guardar e preparar na barra de navegação superior.

Ver várias voltas durante o teste de pedidos de seguimento

Quando testa a pergunta com pedidos de seguimento no painel Teste , a resposta inclui os pedidos de seguimento.

A resposta inclui os pedidos de seguimento

Um pedido JSON para devolver uma resposta inicial e pedidos de seguimento

Utilize o objeto vazio context para pedir a resposta à pergunta do utilizador e inclua pedidos de seguimento.

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

Uma resposta JSON para devolver uma resposta inicial e pedidos de seguimento

A secção anterior solicitou uma resposta e quaisquer pedidos de seguimento para Contas e início de sessão. A resposta inclui as informações de pedido, que estão localizadas em answers[0].contexte o texto a apresentar ao utilizador.

{
    "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. Pode mostrar estas respostas como as seguintes opções apresentadas no fluxo de conversação e, em seguida, enviar o selecionado qnaId de volta para o Criador de FAQ no seguinte pedido.

Um pedido JSON para devolver uma resposta não inicial e pedidos de seguimento

Preencha o context objeto para incluir o contexto anterior.

No seguinte pedido JSON, a pergunta atual é Utilizar Windows Hello para iniciar sessão e a pergunta anterior era contas e iniciar sessão.

{
  "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 devolver uma resposta não inicial e pedidos de seguimento

A resposta JSON generateAnswer do Criador de FAQ inclui os pedidos de seguimento na context propriedade do primeiro item no 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 o base de dados de conhecimento com o ID do Criador de FAQ

Se estiver a criar uma aplicação personalizada, na resposta da pergunta inicial, serão devolvidos quaisquer pedidos de seguimento e os respetivos associados qnaId . Agora que tem o ID, pode passá-lo no corpo do pedido do pedido de seguimento. Se o corpo do pedido contiver o qnaIde o objeto de contexto (que contém as propriedades anteriores do Criador de FAQ), GenerateAnswer devolverá a pergunta exata por ID, em vez de utilizar o algoritmo de classificação para encontrar a resposta pelo texto da pergunta.

A ordem de apresentação é suportada na API de Atualização

O texto a apresentar e a ordem de apresentação, devolvidos na resposta JSON, são suportados para edição pela API de Atualização.

Adicionar ou eliminar pedidos de várias curvas com a API de Atualização

Pode adicionar ou eliminar pedidos de várias curvas com a API de Atualização do Criador de FAQ. Os pedidos estão a ser adicionados na context matriz da promptsToAdd propriedade e na promptsToDelete matriz.

Exportar base de dados de conhecimento para controlo de versões

O Criador de FAQ suporta o controlo de versões ao incluir passos de conversação multiturno no ficheiro exportado.

Passos seguintes