Compartilhar via


Adicionar várias categorias ao bot de perguntas frequentes

Neste tutorial, você aprenderá como:

  • Criar um projeto e marcar pares de pergunta e resposta em categorias distintas com metadados
  • Criar um projeto separado para cada domínio
  • Criar um recurso de linguagem separado para cada domínio

Ao criar um bot de perguntas frequentes, você pode encontrar casos de uso que exigem que você aborde consultas em vários domínios. Digamos que a equipe de marketing da Microsoft deseja criar um bot de suporte ao cliente que responde a consultas comuns de usuário em vários Produtos Surface. Para simplificar, vamos usar duas URLs de perguntas frequentes,Surface Pen e Surface Earbuds para criar o projeto.

Criar projeto com metadados específicos do domínio

Os autores de conteúdo podem usar documentos para extrair pares de perguntas e respostas ou adicionar pares de perguntas e respostas personalizados ao projeto. Para agrupar essas perguntas e respostas em domínios ou categorias específicos, você pode adicionar metadados.

Para o bot em produtos Surface, você pode seguir as seguintes etapas para criar um bot que responde a consultas para ambos os tipos de produtos:

  1. Adicione as seguintes URLs de perguntas frequentes como origens selecionando Adicionar origem>URLs> e, em seguida, Adicionar tudo, após adicionar cada uma das URLs abaixo:

    Caneta Surface perguntas frequentes
    Perguntas frequentes sobre o Surface Earbuds

    Screenshot of add URL UI.

  2. Nesse projeto, temos pares de perguntas e respostas em dois produtos e queremos distinguir entre eles de forma que possamos pesquisar respostas entre as perguntas e respostas para um determinado produto. Para fazer isso, podemos atualizar o campo de metadados para os pares de perguntas e respostas.

    Como você pode ver no exemplo a seguir, adicionamos metadados com produto como chave e surface_pen ou surface_earbuds como valores onde for aplicável. Você pode estender este exemplo para extrair dados em vários produtos e adicionar um valor diferente para cada produto.

    Screenshot of metadata example.

  3. Agora, para restringir o sistema e pesquisar a resposta em um determinado produto, você precisaria passar esse produto como um filtro na API REST de respostas às perguntas personalizadas.

    A URL de previsão da API REST pode ser obtida no painel Implantar projeto:

    Screenshot of the Deploy project page with the prediction URL displayed.

    No corpo JSON para a chamada à API, passamos surface_pen como valor para o produto de metadados. Portanto, o sistema só procurará a resposta entre os pares QnA com os mesmos metadados.

        {
          "question": "What is the price?",
          "top": 3
        },
        "answerSpanRequest": {
          "enable": true,
          "confidenceScoreThreshold": 0.3,
          "topAnswersWithSpan": 1
        },
        "filters": {
          "metadataFilter": {
            "metadata": [
              {
                "key": "product",
                "value": "surface_pen"
              }
            ]
          }
        }
    

    Você pode obter o valor de metadados com base na entrada do usuário das seguintes maneiras:

    • Obtenha explicitamente o domínio como entrada do usuário por meio do cliente bot. Por exemplo, como mostrado abaixo, você pode tirar a categoria de produto como entrada do usuário quando a conversa é iniciada.

      Take metadata input

    • Identifique implicitamente o domínio com base no contexto do bot. Por exemplo, caso a pergunta anterior estivesse em um produto de superfície específico, ela pode ser salva como contexto pelo cliente. Se o usuário não especificar o produto na próxima consulta, você poderá passar o contexto do bot como metadados para a API de geração de resposta.

      Pass context

    • Extraia a entidade da consulta do usuário para identificar o domínio a ser usado para o filtro de metadados. Você pode usar outros Serviços de IA do Azure, como o Reconhecimento de Entidade Nomeada (NER) e o reconhecimento de linguagem para conversação na extração de entidades.

      Extract metadata from query

Qual pode ser o tamanho dos nossos projetos?

Você pode adicionar até 50000 pares de perguntas e respostas a um único projeto. Se seus dados excederem 50.000 pares de perguntas e respostas, considere dividir o projeto.

Criar um projeto separado para cada domínio

Você também pode criar um projeto separado para cada domínio e manter os projetos separados. Todas as APIs exigem que o usuário passe o nome do projeto para fazer qualquer atualização no projeto ou buscar uma resposta para a pergunta do usuário.

Quando a pergunta do usuário for recebida pelo serviço, você precisará passar em projectName no ponto de extremidade da API REST mostrado, para buscar uma resposta do projeto relevante. Você pode localizar a URL na página Implantar projeto, em Obter URL de previsão:

https://southcentralus.api.cognitive.microsoft.com/language/:query-knowledgebases?projectName=Test-Project-English&api-version=2021-10-01&deploymentName=production

Criar um recurso de linguagem separado para cada domínio

Digamos que a equipe de marketing da Microsoft deseja criar um bot de suporte ao cliente que responde a consultas de usuário nos Produtos Surface e Xbox. Ela planeja atribuir equipes distintas para acessar projetos no Surface e no Xbox. Nesse caso, é aconselhável criar dois recursos de respostas às perguntas personalizadas, um para Surface e outro para Xbox. No entanto, você pode definir funções distintas para usuários que acessam o mesmo recurso.