Use QnA Maker to answer questions (Utilizar o Criador de FAQ para responder a perguntas)

APLICA-SE A: SDK v4

Nota

O Azure AI QnA Maker será desativado em 31 de março de 2025. A partir de 1º de outubro de 2022, você não poderá criar novos recursos ou bases de conhecimento do QnA Maker. Uma versão mais recente do recurso de perguntas e respostas agora está disponível como parte da Linguagem de IA do Azure.

A resposta a perguntas personalizadas, um recurso da Linguagem de IA do Azure, é a versão atualizada do serviço QnA Maker. Para obter mais informações sobre o suporte a perguntas e respostas no SDK do Bot Framework, consulte Compreensão de linguagem natural.

O Criador de FAQ disponibiliza uma camada de perguntas e respostas de conversa sobre os dados. Desta forma, o bot pode enviar uma pergunta ao Criador de FAQ e receber uma resposta sem precisar analisar e interpretar a intenção da pergunta.

Um dos requisitos básicos para criar o seu próprio serviço Criador de FAQ é povoá-lo com perguntas e respostas. Em muitos casos, as perguntas e respostas já existem nos conteúdos, como FAQs ou outra documentação; noutros casos, pode querer personalizar as respostas às perguntas de uma forma mais natural e coloquial.

Este artigo descreve como usar uma base de conhecimento existente do QnA Maker do seu bot.

Para novos bots, considere usar o recurso de resposta a perguntas do Serviço Cognitivo do Azure para Idioma. Para obter informações, consulte Usar respostas a perguntas para responder a perguntas.

Nota

Os SDKs JavaScript, C# e Python do Bot Framework continuarão a ser suportados, no entanto, o Java SDK está sendo desativado com suporte final de longo prazo terminando em novembro de 2023.

Os bots existentes construídos com o Java SDK continuarão a funcionar.

Para a criação de novos bots, considere usar o Power Virtual Agents e leia sobre como escolher a solução de chatbot certa.

Para obter mais informações, consulte O futuro da criação de bots.

Pré-requisitos

Sobre este exemplo

Para usar o QnA Maker em seu bot, você precisa de uma base de conhecimento existente no portal do QnA Maker . Seu bot pode usar a base de conhecimento para responder às perguntas do usuário.

Para o desenvolvimento de novos bots, considere o uso de Power Virtual Agents. Se você precisar criar uma nova base de dados de conhecimento para um bot SDK do Bot Framework, consulte os seguintes artigos de serviços de IA do Azure:

Fluxo lógico QnABot em C#

OnMessageActivityAsync é chamada para cada entrada de usuário recebida. Quando chamado, ele acessa as definições de configuração do arquivo de appsetting.json do código de exemplo para encontrar o valor a ser conectado à sua base de conhecimento pré-configurada do QnA Maker.

A entrada do usuário é enviada para sua base de dados de conhecimento e a melhor resposta retornada é exibida de volta para o usuário.

Obter valores para conectar seu bot à base de dados de conhecimento

Gorjeta

A documentação do QnA Maker tem instruções sobre como criar, treinar e publicar sua base de conhecimento.

  1. No site do QnA Maker , selecione sua base de conhecimento.
  2. Com a base de dados de conhecimento aberta, selecione a guia CONFIGURAÇÕES . Registre o valor mostrado para o nome do serviço. Esse valor é útil para encontrar sua base de conhecimento de interesse ao usar a interface do portal QnA Maker. Ele não é usado para conectar seu aplicativo de bot a essa base de conhecimento.
  3. Role para baixo para encontrar detalhes de implantação e registre os seguintes valores da solicitação HTTP de exemplo do Postman:
    • POST /knowledgebases/<knowledge-base-id>/generateAnswer
    • Anfitrião: <seu-anfitrião-url>
    • Autorização: EndpointKey <your-endpoint-key>

O URL do anfitrião começará com https:// e terminará com /qnamaker, como https://<hostname>.azure.net/qnamaker. Seu bot precisa do ID da base de conhecimento, URL do host e chave do ponto de extremidade para se conectar à sua base de conhecimento do QnA Maker.

Atualizar o arquivo de configurações

Primeiro, adicione as informações necessárias para acessar sua base de dados de conhecimento — incluindo nome do host, chave do ponto de extremidade e ID da base de dados de conhecimento (kbId) — ao arquivo de configurações. Estes são os valores que você salvou da guia CONFIGURAÇÕES da sua base de dados de conhecimento no QnA Maker.

Se você não estiver implantando isso para produção, poderá deixar os campos ID do aplicativo e senha do bot em branco.

Nota

Para adicionar uma base de conhecimento do QnA Maker a um aplicativo bot existente, certifique-se de adicionar títulos informativos para suas entradas do QnA. O valor "nome" nesta seção fornece a chave necessária para acessar essas informações de dentro do seu aplicativo.

appsettings.json

C# (arquivado)

Configurar a instância do QnA Maker

Primeiro, criamos um objeto para acessar nossa base de conhecimento do QnA Maker.

Certifique-se de que o pacote NuGet Microsoft.Bot.Builder.AI.QnA está instalado para o seu projeto.

No QnABot.cs, no método, crie uma instância do OnMessageActivityAsync QnAMaker. A QnABot classe também é onde os nomes das informações de conexão, salvas em appsettings.json acima, são puxados. Se você escolheu nomes diferentes para as informações de conexão da base de dados de conhecimento no arquivo de configurações, atualize os nomes aqui para refletir o nome escolhido.

Bots/QnABot.cs

C# (arquivado)

Chamando o QnA Maker do seu bot

Quando o bot precisar de uma resposta do QnAMaker, chame o GetAnswersAsync método do código do bot para obter a resposta apropriada com base no contexto atual. Se você estiver acessando sua própria base de dados de conhecimento, altere a mensagem sem respostas encontradas abaixo para fornecer instruções úteis para seus usuários.

Bots/QnABot.cs

C# (arquivado)

Testar o bot

Execute a amostra localmente na sua máquina. Se você ainda não fez isso, instale o Bot Framework Emulator. Para obter mais instruções, consulte o exemplo (READMEC# (arquivado), JavaScript (arquivado), Java (arquivado) ou Python (arquivado)).

Inicie o emulador, conecte-se ao bot e envie mensagens para o bot. As respostas às suas perguntas variam, com base nas informações da sua base de conhecimento.

Bot de amostra de teste.

Informações adicionais

A amostra multi-turno do QnA Maker (amostra multi-turno C# (arquivada), amostra multi-turno JavaScript (arquivada), amostra multi-turno Java (arquivada), amostra multi-turno Python (arquivada)) mostra como usar uma caixa de diálogo do QnA Maker para suportar o prompt de acompanhamento e os recursos de aprendizagem ativa do QnA Maker.

  • O QnA Maker suporta prompts de acompanhamento, também conhecidos como prompts de várias voltas. Se a base de conhecimento do QnA Maker exigir mais informações do usuário, o QnA Maker enviará informações de contexto que você pode usar para avisar o usuário. Essas informações também são usadas para fazer chamadas de acompanhamento para o serviço QnA Maker. Na versão 4.6, o Bot Framework SDK adicionou suporte para esse recurso.

    Para construir essa base de conhecimento, consulte a documentação do QnA Maker sobre como usar prompts de acompanhamento para criar várias voltas de uma conversa.

  • O QnA Maker também suporta sugestões de aprendizagem ativa, permitindo que a base de conhecimento melhore ao longo do tempo. A caixa de diálogo QnA Maker suporta feedback explícito para o recurso de aprendizagem ativa.

    Para habilitar esse recurso em uma base de dados de conhecimento, consulte a documentação do QnA Maker sobre Sugestões de aprendizagem ativa.

Próximos passos

O QnA Maker pode ser combinado com outros serviços de IA do Azure para tornar seu bot ainda mais poderoso. O Bot Framework Orchestrator fornece uma maneira de combinar QnA com Language Understanding (LUIS) em seu bot.