Partilhar via


Adicione compreensão de linguagem natural ao seu bot

APLICA-SE A: SDK v4

Nota

O Language Understanding (LUIS) será aposentado em 1 de outubro de 2025. A partir de 1 de abril de 2023, não será possível criar novos recursos LUIS. Uma versão mais recente do entendimento de idiomas agora está disponível como parte do Azure AI Language.

O entendimento de linguagem conversacional (CLU), um recurso do Azure AI Language, é a versão atualizada do LUIS. Para obter mais informações sobre o suporte à compreensão de linguagem no Bot Framework SDK, consulte Compreensão de linguagem natural.

A capacidade de entender o que seu usuário significa conversacional e contextualmente pode ser uma tarefa difícil, mas pode fornecer ao seu bot uma sensação de conversa mais natural. O Language Understanding (LUIS) é um serviço de API baseado em nuvem que permite que você faça exatamente isso para que seu bot possa reconhecer a intenção das mensagens do usuário, permitir uma linguagem mais natural do usuário e direcionar melhor o fluxo de conversa.

Este tópico orienta você pela adição do LUIS a um aplicativo de reserva de voos para reconhecer diferentes intenções e entidades contidas na entrada do usuário.

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 Microsoft Copilot Studio e leia sobre como escolher a solução de copilot certa.

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

Pré-requisitos

Sobre este exemplo

Este exemplo de bot principal mostra um exemplo de um aplicativo de reserva de voo de aeroporto. Ele usa um serviço LUIS para reconhecer a entrada do usuário e retornar a principal intenção LUIS reconhecida.

O modelo de linguagem contém três intenções: Book Flight, Cancel, e None. O LUIS usará essas intenções para entender o que o usuário quis dizer quando enviar uma mensagem para o bot. O modelo de linguagem também define entidades que o LUIS pode extrair da entrada do usuário, como o aeroporto de origem ou de destino.

Após cada processamento de entrada do utilizador, DialogBot salva o estado atual de ambos UserState e ConversationState. Uma vez reunidas todas as informações necessárias, a amostra de codificação cria uma reserva de voo de demonstração. Neste artigo, abordaremos os aspetos LUIS deste exemplo. No entanto, o fluxo geral da amostra é:

  • OnMembersAddedAsync é chamado quando um novo usuário está conectado e exibe um cartão de boas-vindas.
  • OnMessageActivityAsync é chamada para cada entrada de usuário recebida.

Diagrama de classes descrevendo a estrutura do exemplo de C#.

O módulo OnMessageActivityAsync executa o diálogo apropriado através do método de extensão de diálogo Run. Em seguida, a caixa de diálogo principal chama o assistente LUIS para encontrar a intenção do utilizador com melhor pontuação. Se a intenção principal para a entrada do utilizador retornar "BookFlight", o auxiliar preenche as informações do utilizador devolvidas pelo LUIS. Depois disso, a janela de diálogo principal inicia o BookingDialog, que recolhe do utilizador as informações adicionais conforme necessário, tais como:

  • Origin a cidade de origem
  • TravelDate a data para reservar o voo
  • Destination a cidade de destino

Este artigo aborda como adicionar LUIS a um bot. Para obter informações sobre como usar caixas de diálogo ou estado, consulte como coletar a entrada do usuário usando um prompt de diálogo ou salvar dados do usuário e da conversa, respectivamente.

Criar uma aplicação LUIS no portal LUIS

  1. Inicie sessão no portal LUIS e, se necessário , crie uma conta e um recurso de criação.
  2. Na página Aplicativos de Conversa no LUIS, selecione Importar e, em seguida, Importar como JSON.
  3. Na caixa de diálogo Importar novo aplicativo:
    1. Escolha o arquivo FlightBooking.json na pasta CognitiveModels do exemplo.
    2. Digite FlightBooking como o nome opcional do aplicativo e selecione Concluído.
  4. O site pode exibir os diálogos Como criar uma aplicação LUIS eficaz e Atualizar as suas entidades compostas. Você pode descartar essas caixas de diálogo e continuar.
  5. Treine seu aplicativo e, em seguida, publique-o no ambiente de produção . Para obter mais informações, consulte a documentação do LUIS sobre como treinar e publicar um aplicativo.

Porquê utilizar entidades

As entidades LUIS permitem que seu bot compreenda eventos além das intenções padrão. Isso permite que você colete informações adicionais dos usuários, para que seu bot possa fazer perguntas e responder de forma mais inteligente. Juntamente com as definições para as três intenções do LUIS 'Reservar voo', 'Cancelar' e 'Nenhuma', o arquivo FlightBooking.json também contém um conjunto de entidades, como 'From.Airport' e 'To.Airport'. Estas entidades permitem ao LUIS detetar e devolver informação adicional contida na entrada original do utilizador quando este solicita uma nova reserva de viagem.

Obter valores para ligar à sua aplicação LUIS

Assim que seu aplicativo LUIS for publicado, você poderá acessá-lo a partir do seu bot. Você precisará registrar vários valores para acessar seu aplicativo LUIS de dentro do seu bot. Você pode recuperar essas informações usando o portal LUIS.

Obtenha informações da aplicação no portal LUIS.ai

O arquivo de configurações (appsettings.json, .env ou config.py) atua como o local para reunir todas as referências de serviço em um só lugar. As informações recuperadas serão adicionadas a este arquivo na próxima seção.

  1. Selecione seu aplicativo LUIS publicado em luis.ai.

  2. Com a aplicação LUIS publicada aberta, selecione o separador GERIR .

  3. Selecione a guia Configurações no lado esquerdo e registre o valor mostrado para ID do aplicativo como <YOUR_APP_ID>.

    Captura de ecrã da página Gerir que exibe o ID da sua aplicação.

  4. Selecione Recursos do Azure e, em seguida , Recurso de Previsão. Registe o valor mostrado para Localização como <YOUR_REGION> e Chave Primária como <YOUR_AUTHORING_KEY>.

    Captura de ecrã da página Gerir, mostrando a sua localização e chave primária.

    Como alternativa, você pode usar a região e a chave primária para seu recurso de criação.

Atualizar o arquivo de configurações

Adicione as informações necessárias para acessar seu aplicativo LUIS, incluindo ID do aplicativo, chave de criação e região no appsettings.json arquivo. Na etapa anterior, você recuperou esses valores do seu aplicativo LUIS publicado. O nome do host da API deve estar no formato <your region>.api.cognitive.microsoft.com.

appsetting.json

Advertência

Parece que a amostra que você está procurando se moveu! Podem ter a certeza de que estamos a trabalhar para resolver este problema.

Configure seu bot para usar seu aplicativo LUIS

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

Para se conectar ao serviço LUIS, o bot extrai as informações adicionadas ao arquivo appsetting.json. A FlightBookingRecognizer classe contém código com suas configurações do arquivo appsetting.json e consulta o serviço LUIS chamando RecognizeAsync o método.

FlightBookingRecognizer.cs

Advertência

Parece que a amostra que você está procurando se moveu! Podem ter a certeza de que estamos a trabalhar para resolver este problema.

O FlightBookingEx.cs contém a lógica para extrair From, To e TravelDate, estende a classe FlightBooking.cs parcial usada para armazenar resultados LUIS ao chamar FlightBookingRecognizer.RecognizeAsync<FlightBooking> do MainDialog.cs.

CognitiveModels\FlightBookingEx.cs

Advertência

Parece que a amostra que você está procurando se moveu! Podem ter a certeza de que estamos a trabalhar para resolver este problema.

O LUIS agora está configurado e conectado para seu bot.

Testar o bot

Baixe e instale o mais recente Bot Framework Emulator

  1. Execute a amostra localmente na sua máquina. Se você precisar de instruções, consulte o README arquivo para o Exemplo de C#, Exemplo de JS ou Exemplo de Python.

  2. No emulador, digite uma mensagem como "viajar para Paris" ou "Ir de Paris para Berlim". Use qualquer enunciado encontrado no arquivo FlightBooking.json para treinar a intenção "Reservar voo".

Se a intenção principal devolvida pelo LUIS corresponder a "Reservar voo", o seu bot fará mais perguntas até ter informação suficiente para criar uma reserva de viagem. Nesse momento, ele retornará essas informações de reserva de volta ao seu usuário.

Neste ponto, a lógica do bot de código será redefinida e você poderá continuar a criar mais reservas.

Informações adicionais

Para obter mais informações sobre o LUIS, consulte a documentação do LUIS:

Gorjeta

Diferentes partes do SDK definem classes ou elementos de entidade separados. Para entidades de mensagem, consulte Entidades e tipos de atividade.