Use a resposta a perguntas para responder a perguntas
APLICA-SE A: SDK v4
O recurso de resposta a perguntas do Serviço Cognitivo do Azure para Idiomas fornece processamento de linguagem natural (NLP) baseado em nuvem que permite criar uma camada de conversação natural sobre seus dados. Ele é usado para encontrar a resposta mais apropriada para qualquer entrada de sua base de conhecimento personalizada de informações.
Este artigo descreve como usar o recurso de resposta a perguntas em seu bot.
Pré-requisitos
- Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
- Um recurso de idioma no Language Studio, com o recurso de resposta a perguntas personalizado habilitado.
- Uma cópia do exemplo de Resposta a Perguntas Personalizadas em C# ou JavaScript.
Sobre este exemplo
Para usar a resposta a perguntas em seu bot, você precisa de uma base de dados de conhecimento existente. Seu bot pode usar a base de conhecimento para responder às perguntas do usuário.
Se você precisar criar uma nova base de dados de conhecimento para um bot SDK do Bot Framework, consulte o LEIA-ME para o exemplo de resposta a perguntas personalizadas.
OnMessageActivityAsync
é chamada para cada entrada de usuário recebida. Quando chamado, ele acessa as definições de configuração do arquivo appsetting.json do código de exemplo e se conecta à sua base de conhecimento.
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.
Obtenha as configurações de conexão da base de dados de conhecimento
No Language Studio, abra o recurso linguístico.
Copie as seguintes informações para o arquivo de configuração do bot:
- O nome do host para seu ponto de extremidade de idioma.
- O
Ocp-Apim-Subscription-Key
, que é a sua chave de ponto final. - O nome do projeto, que atua como seu ID da base de dados de conhecimento.
Seu nome de host é a parte da URL do ponto de extremidade entre https://
e /language
, por exemplo, https://<hostname>/language
. Seu bot precisa do nome do projeto, da URL do host e da chave do ponto de extremidade para se conectar à sua base de conhecimento.
Gorjeta
Se você não estiver implantando isso para produção, poderá deixar os campos ID do aplicativo e senha do bot em branco.
Configurar e chamar o cliente da base de dados de conhecimento
Crie seu cliente da base de dados de conhecimento e, em seguida, use o cliente para recuperar respostas da base de dados de conhecimento.
Certifique-se de que o pacote NuGet Microsoft.Bot.Builder.AI.QnA esteja instalado para o seu projeto.
No QnABot.cs, no método, crie um cliente da OnMessageActivityAsync
base de dados de conhecimento. Use o contexto de turno para consultar a base de dados de conhecimento.
Bots/CustomQABot.cs
using var httpClient = _httpClientFactory.CreateClient();
var customQuestionAnswering = CreateCustomQuestionAnsweringClient(httpClient);
// Call Custom Question Answering service to get a response.
_logger.LogInformation("Calling Custom Question Answering");
var options = new QnAMakerOptions { Top = 1, EnablePreciseAnswer = _enablePreciseAnswer };
var response = await customQuestionAnswering.GetAnswersAsync(turnContext, options);
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 (README
C# ou JavaScript).
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.
Informações adicionais
O exemplo Custom Question Answering, all features (C# ou JavaScript) mostra como usar uma caixa de diálogo do QnA Maker para dar suporte ao prompt de acompanhamento e aos recursos de aprendizagem ativa de uma base de dados de conhecimento.
- A resposta a perguntas suporta prompts de acompanhamento, também conhecidos como prompts de várias voltas. Se a base de dados de conhecimento exigir mais informações do usuário, o serviço 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.
- A resposta a perguntas também apoia sugestões de aprendizagem ativa, permitindo que a base de conhecimentos melhore ao longo do tempo. A caixa de diálogo QnA Maker suporta feedback explícito para o recurso de aprendizagem ativa.