Use o QnA Maker para responder a perguntas

APLICA-SE A: SDK v4

Observação

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

Respostas às 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, confira Reconhecimento de linguagem natural.

O QnA Maker fornece uma camada de pergunta e resposta de conversa sobre seus dados. Isso permite que o bot envie uma pergunta ao QnA Maker e receba uma resposta sem a necessidade de analisar e interpretar a intenção de pergunta.

Um dos requisitos básicos para a criação de seu próprio serviço QnA Maker é preenchê-lo com perguntas e respostas. Em muitos casos, as perguntas e respostas já existem no conteúdo, como as perguntas frequentes ou outra documentação; outras vezes, talvez seja conveniente personalizar as respostas às perguntas de forma mais natural e coloquial.

Este artigo explica como usar uma base de informações existente do QnA Maker em seu bot.

Para novos bots, considere usar o recurso de respostas às perguntas do Serviço Cognitivo do Azure para Linguagem. Para obter mais informações, confira Usar respostas às perguntas para responder a perguntas.

Observação

Os SDKs do Bot Framework para JavaScript, C# e Python continuarão a ter suporte, no entanto, o SDK para Java está sendo desativado. Seu suporte final de longo prazo será encerrado em novembro de 2023. Somente correções críticas de segurança e de bugs serão realizadas neste repositório.

Os bots existentes criados com o SDK para Java 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 mais adequada.

Para obter mais informações, confira 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 informações existente no portal do QnA Maker. Em seguida, o bot pode usar a base de dados de conhecimento para responder às perguntas do usuário.

Para o desenvolvimento de novos bots, considere o uso do Power Virtual Agents. Caso você precise criar uma nova base de informações para um bot do SDK do Bot Framework, confira os seguintes artigos dos Serviços de IA do Azure:

C# QnABot logic flow

OnMessageActivityAsync é chamado em cada entrada do usuário recebida. Quando chamado, ele acessa os conjuntos de configuração do arquivo appsetting.json do código de exemplo para encontrar o valor para se conectar à sua base de informações pré-configurada do QnA Maker.

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

Obtenha os valores para conectar seu bot à base de conhecimento

Dica

A documentação do QnA Maker contém instruções sobre como criar, treinar e publicar sua base de informações.

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

A URL do host será iniciada com https:// e terminará com /qnamaker, como https://<hostname>.azure.net/qnamaker. Seu bot precisa da ID da base de informações, do URL do host e da chave de ponto de extremidade para se conectar à sua base de informações do QnA Maker.

Atualizar o arquivo de configurações

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

Se essa implantação não for para produção, os campos ID do aplicativo do bot e senha poderão ser deixados em branco.

Observação

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

appsettings.json

C# (arquivado)

Configurar a instância do QnA Maker

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

Verifique se o pacote do NuGet Microsoft.Bot.Builder.AI.QnA está instalado para o seu projeto.

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

Bots/QnABot.cs

C# (arquivado)

Chamar o QnA Maker de seu bot

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

Bots/QnABot.cs

C# (arquivado)

Testar a bot

Execute o exemplo localmente em seu computador. Caso ainda não tenha feito isso, instale o Bot Framework Emulator. Para obter mais instruções, confira o README do exemplo (C# (arquivado), JavaScript (arquivado), Java (arquivado), ou Python (arquivado)).

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

Test sample bot.

Informações adicionais

O exemplo multiturno do QnA Maker (exemplo multiturno em C# (arquivado), exemplo multiturno em JavaScript (arquivado), exemplo multiturno em Java (arquivado), exemplo multiturno em Python (arquivado)) mostra como usar um diálogo do QnA Maker para comportar os recursos de prompt de acompanhamento e aprendizado ativo do QnA Maker.

  • O QnA Maker dá suporte a avisos de acompanhamento, também conhecidos como prompts de vários turnos. Se a base de informações do QnA Maker exigir mais informações do usuário, o QnA Maker enviará informações de contexto que você poderá usar para solicitar ao usuário. Essas informações também são usadas para fazer qualquer chamada de acompanhamento para o serviço QnA Maker. Na versão 4.6, o SDK do Bot Framework adicionou suporte para esse recurso.

    Para construir essa base de dados de conhecimento, consulte a documentação QnA Maker sobre como Usar avisos de acompanhamento para criar várias rodadas de uma conversa.

  • O QnA Maker também dá suporte a sugestões de aprendizado ativo, permitindo que a base de dados de conhecimento seja aprimorada ao longo do tempo. O diálogo do QnA Maker dá suporte a comentários explícitos para o recurso de aprendizado ativo.

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

Próximas etapas

O QnA Maker pode ser combinado com outros serviços de IA do Azure para tornar seu bot ainda mais avançado. O Bot Framework Orchestrator oferece uma maneira de combinar o QnA com o reconhecimento de linguagem (LUIS) em seu bot.