Usar entidades e preenchimento de slots em copilotos
Uma parte significativa das conversas do copiloto no Copilot Studio é o reconhecimento de linguagem natural, que é a capacidade da IA de compreender a intenção do usuário. Por exemplo, o usuário pode dizer "Tentei usar meu cartão-presente, mas não funcionou" e o copiloto sabe encaminhar o usuário ao tópico relacionado a cartões-presente que não estejam funcionando, mesmo que essa frase exata não seja listada como uma frase de gatilho.
Um aspecto fundamental do reconhecimento vocal natural é identificar as entidades em uma caixa de diálogo do usuário. Assista ao vídeo para começar a usar entidades.
Uma entidade pode ser considerada uma unidade de informação que representa um certo tipo de assunto do mundo real, como um número de telefone, CEP, cidade ou mesmo o nome de uma pessoa. Com o conhecimento concedido pelas entidades, um copiloto pode reconhecer de maneira inteligente as informações relevantes de uma entrada do usuário e salvá-las para uso posterior.
Entidades predefinidas
Entidades nos copilotos permitem armazenar informações em grupos semelhantes.
Pronto para uso, o Copilot Studio vem com um conjunto de entidades predefinidas, que representam os tipos de informações mais usadas comumente em diálogos do mundo real, como idade, cores, números e nomes.
Com o conhecimento concedido pelas entidades, um copiloto pode reconhecer de maneira inteligente as informações relevantes de uma entrada do usuário e salvá-las para uso posterior.
Para ajudar a entender essa noção, a entidade Dinheiro pode ser usada como um exemplo.
Abra o copiloto no Copilot Studio e selecione Configurações na parte superior da página e, em seguida, Entidades no menu.
Uma lista de entidades pré-criadas disponíveis é mostrada.
Selecione a entidade Dinheiro para abrir o painel de detalhes da entidade.
Aqui, você pode ver uma explicação dessa entidade e as maneiras como ela pode ser usada para procurar informações relacionadas a dinheiro ou moeda das entradas de um usuário.
Por exemplo, quando um usuário digita "Custa 1.000 dólares", usando essa entidade monetária, o copiloto sabe que "1.000 dólares" representa o tipo de dinheiro da informação. Quando o copiloto extrai essa entidade e a salva em uma variável, ele salva "1.000" como um número, mesmo que as informações ao redor sejam texto.
Entidades personalizadas
As entidades predefinidas abordam tipos de informações mais usados. Em algumas ocasiões, como na criação de um copiloto que atenda a uma finalidade específica, talvez você precise ensinar ao modelo de entendimento da linguagem do copiloto algo específico do domínio.
Por exemplo, digamos que você queira criar um copiloto para uma loja de equipamentos para esportes ao ar livre. Nesse caso, você precisa ensinar o copiloto a reconhecer a categoria "produto para uso ao ar livre" em uma caixa de diálogo.
Primeiro, crie uma entidade personalizada. Nesse caso, você pode criar uma entidade que forneça ao copiloto o conhecimento de todas as categorias de produtos de uso ao ar livre.
Abra o copiloto no Copilot Studio e selecione Configurações na parte superior da página e, em seguida, Entidades no menu.
Selecione Adicionar uma entidade>Nova entidade.
Um novo painel se abre em que você pode escolher o tipo de entidade: umaentidade Lista fechada ou uma entidade Expressão regular (regex).
Entidades de Lista fechada
As entidades de lista fechada permitem definir uma lista de itens. Essas entidades são mais bem usadas em listas pequenas fáceis de gerenciar e que tenham rótulos de item simples.
Selecionar essa opção ao criar uma entidade exibirá um painel onde você pode especificar o nome da entidade, uma descrição opcional e inserir os itens que deseja incluir na entidade.
Ao inserir itens, você pode:
- Selecionar cada item e alterar o nome.
- Selecionar o ícone da lixeira para excluir o item da lista.
- Selecionar + Sinônimos (ou selecionar os sinônimos listados se eles já tiverem sido adicionados) para abrir o painel Editar sinônimos.
Você pode adicionar sinônimos para expandir manualmente a lógica de correspondência para cada item na lista da entidade. Por exemplo, no item "trilha", você poderá adicionar "caminhada" e "montanhismo" como sinônimos.
Para cada entidade, você também pode habilitar Correspondência inteligente.
A correspondência inteligente faz parte da inteligência com suporte do modelo de compreensão de linguagem do copiloto. Com esta opção habilitada, o copiloto interpretará a entrada do usuário usando lógica difusa, com base nos itens listados na entidade.
Em particular, o copiloto corrigirá automaticamente os erros ortográficos e expandirá sua lógica de correspondência semanticamente. Por exemplo, o copiloto pode combinar automaticamente "softbol" com "beisebol".
Quando terminar de criar ou editar sua entidade, selecione Salvar para salvar e retornar à lista de entidades. Selecione Fechar para descartar as alterações (você terá a opção de voltar à edição da entidade se tiver selecionado acidentalmente a opção errada).
Entidades de Expressão regular (Regex)
As entidades de expressão regular (regex) permitem definir padrões lógicos que podem ser usados para fazer a correspondência de informações e extraí-las de uma entrada. As entidades regex são ótimas para a correspondência de padrões complexos com a entrada de um usuário ou se você precisar permitir variações específicas em como um usuário pode formatar ou inserir sua entrada em uma conversa.
Por exemplo, você pode usar uma entidade de regex para identificar itens como uma ID de rastreamento, um número de licença, um número de cartão de crédito ou um endereço IP de uma cadeia de caracteres que o usuário insere no copiloto.
Selecionar esta opção ao criar uma entidade mostrará um painel onde você pode especificar o nome da entidade, uma descrição opcional e inserir o padrão regex que deve ser usado para corresponder e extrair itens de entidade da entrada.
Uma entidade regex do Copilot Studio usa a sintaxe de expressões regulares do .NET.
Por padrão, a correspondência de padrões diferencia maiúsculas de minúsculas, para que ela faça isso, use a opção de expressão regular (?i)
na cadeia de caracteres de padrão. Alguns exemplos básicos estão incluídos no painel de entidades regex, e informações adicionais sobre a sintaxe e mais exemplos podem ser encontrados no tópico Linguagem de expressões regulares – referência rápida.
Se precisar fazer com que a expressão regular acomode vários padrões, você poderá usar o operador de alternância |
para concatenar expressões regulares. Por exemplo, você pode combinar dois padrões de regex para procurar os formatos antigos e novos de um código de ID do produto.
Quando terminar de criar ou editar sua entidade, selecione Salvar para salvar e retornar à lista de entidades. Selecione Fechar para descartar as alterações (você terá a opção de voltar à edição da entidade se tiver selecionado acidentalmente a opção errada).
Usar entidades em uma conversa
Agora que fez o trabalho de fornecer ao copiloto o conhecimento sobre equipamentos para atividades ao ar livre, criando a entidade da categoria de produto e algumas outras entidades personalizadas, você poderá começar a usá-las ao criar uma conversa de copiloto.
Acesse a página Tópicos do copiloto que você deseja editar.
Abra o tópico de uma entidade que você deseja coletar.
Selecione o ícone Adicionar nó e selecione Faça uma pergunta.
Em Identificar, selecione a entidade que você criou em Entidades personalizadas.
Opcionalmente, você também pode selecionar itens para mostrar como botões. Por exemplo, se quiser mostrar algumas categorias como botões para os usuários escolherem convenientemente como entrada, você poderá escolher Selecionar opções para usuário e selecioná-las na lista que contém os itens adicionados quando criou a entidade personalizada.
Nomeie a variável para a saída da resposta do usuário, se necessário.
Preenchimento de slot
O preenchimento de slot é um conceito de reconhecimento de linguagem natural que significa salvar uma entidade extraída para um objeto. No entanto, no Copilot Studio, o preenchimento do slot significa colocar o valor da entidade extraída em uma variável.
Vamos continuar usando o tópico de atividades de camping como exemplo, que é disparado digitando-se "Quero algo para fazer" no chat de teste.
O tópico foi disparado com êxito e o copiloto solicita o tipo de atividade, mostrando também as opções de botão especificadas durante a criação do nó Fazer uma pergunta. Na árvore de diálogo, o rastreamento entre tópicos também mostra que o copiloto está sendo executado no nó da pergunta que você acabou de editar.
Um usuário pode usar as opções predefinidas selecionando um dos botões. Como alternativa, ele também pode digitar algo como "trekking" e ver que isso é mapeado para "caminhada", porque essas palavras foram definidas como sinônimos.
No rastreamento entre tópicos, vemos que o diálogo é roteado corretamente para o caminho no qual o valor da categoria do produto é "Caminhada". Você pode inspecionar o valor da variável na janela de inspeção de variáveis na parte inferior da tela de criação. Na janela de inspeção, vemos que o valor da variável é "Caminhada".
Essencialmente, o preenchimento do slot aconteceu pela inserção da entidade extraída "Hiking" na variável VarCampType
.
Você também pode usar o que é conhecido como "preenchimento proativo de slots", onde o usuário pode especificar várias informações que são mapeadas para várias entidades. O copiloto é capaz de entender quais informações pertencem a qual entidade automaticamente. Nos casos em que não tiver certeza do mapeamento desejado, ele vai solicitar que o usuário seja mais específico dando opções.
Nesse exemplo, o usuário escreveu "Estou entediado, mas gosto de montanhismo". Essa mensagem inclui a frase de gatilho que o usuário quer ajuda com atividades ao ar livre e também apresenta uma segunda informação, "montanhismo", que é um sinônimo definido pela entidade para caminhadas. Nesse caso, o copiloto preenche tanto a entidade de escolha de uma atividade ao ar livre quanto o tipo de atividade.
No rastreamento entre tópicos, você pode ver que o copiloto recebe essa entrada de usuário e ignora de maneira inteligente o nó da pergunta que solicita o tipo de atividade.
O copiloto está sempre ouvindo ativamente a entrada do usuário, lembrando as informações com antecedência para poder ignorar as etapas desnecessárias conforme apropriado.
Vamos reiniciar o teste e tentar outro caso. Nesta rodada, você pode adicionar mais alguns nós de perguntas solicitando aspectos como quanto tempo você tem para a atividade (usando a entidade Duração), bem como a faixa de preço (usando a entidade Dinheiro).
Desta vez, quando a pergunta da categoria do produto for apresentada, em vez de informar ao copiloto apenas a categoria do produto, o usuário poderá dizer "Quero comprar um par de botas de caminhada que custem menos de US$ 100". Nesse exemplo, o copiloto pode rotear para o caminho correto da categoria de produto de hiking e também preencher ativamente os slots solicitando o tipo de equipamento de hiking e as informações de faixa de preço-alvo.
O preenchimento proativo de slots pode ser controlado manualmente no nível do nó. Se quiser solicitar a pergunta em um nó específico, independentemente de o slot ter sido preenchido com respostas anteriores do usuário, você poderá desabilitar a opção Ignorar pergunta para esse nó da pergunta. Realize as etapas a seguir para desabilitar a opção Ignorar pergunta.
Selecione o ícone Mais (...) do nó de Pergunta e selecione Propriedades. O painel Propriedades da pergunta será exibido.
No painel Propriedades da pergunta, selecione Comportamento da pergunta.
No painel Comportamento da pergunta, em Ignorar pergunta, selecione Perguntar sempre e Salvar na parte superior da página.