Use entidades e preenchimento de slots em agentes
Uma parte significativa das conversas sobre agente em Copilot Studio é reconhecimento de linguagem natural, que é a capacidade da IA de entender a intenção do usuário. Por exemplo, o usuário pode dizer "Tentei usar meu presente cartão, mas não funciona" e o agente sabe como encaminhar o usuário para o tópico relacionado ao presente Cartões que não está funcionando, mesmo que essa frase exata não esteja listada como 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 agente pode reconhecer de forma inteligente as informações relevantes de uma entrada do usuário e salvá-las para uso posterior.
Entidades predefinidas
Entidades em agentes permitem que você armazene 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 agente pode reconhecer de forma 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 seu agente em Copilot Studio e Select Configurações no topo da página e então 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 insere "Custa 1000 dólares", usando essa entidade monetária, o agente sabe que "1000 dólares" representa o tipo de informação dinheiro . Quando o agente extrai essa entidade e a sálvia em uma variável, ele sálvia "1000" 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 ao criar um agente que atende a um propósito específico, pode ser necessário ensinar conhecimento específico do domínio do modelo de compreensão de linguagem do agente.
Por exemplo, digamos que você queira construir um agente para uma loja de artigos para atividades ao ar livre. Nesse caso, você precisa ensinar o agente a reconhecer a categoria "produto de equipamentos para atividades ao ar livre" em um diálogo.
Primeiro, crie uma entidade personalizada. Nesse caso, você pode criar uma entidade que forneça ao agente o conhecimento de todas as categorias de produtos para atividades ao ar livre.
Abra seu agente em Copilot Studio e Select Configurações no topo da página e então Entidades no menu.
Selecione Adicionar uma entidade>Nova entidade.
Select o tipo de entidade desejado: uma entidade de lista fechada ou uma entidade de 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 suportada pelo modelo de compreensão de linguagem do agente. Com esta opção habilitada, o agente interpretará a entrada do usuário usando lógica fuzzy, com base nos itens listados na entidade.
Em particular, o agente corrigirá automaticamente erros ortográficos e expandirá sua lógica de correspondência semanticamente. Por exemplo, o agente pode corresponder automaticamente "softball" a "baseball".
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 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 agente.
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 você concluiu o trabalho de fornecer ao agente o conhecimento sobre equipamentos para atividades ao ar livre criando a entidade de categoria de produto e algumas outras entidades personalizadas, você pode começar a usá-las ao construir uma conversa agente.
Vá para a página Tópicos do agente 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 é acionado com sucesso e o agente pergunta o tipo de atividade, mostrando também as opções de botão especificadas ao criar o nó Faça uma pergunta . Na árvore de diálogo, o rastreamento entre tópicos também mostra que o agente está sendo executado no nó de 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 agente é capaz de entender automaticamente quais informações pertencem a qual entidade. 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. Neste caso, o agente preenche tanto a entidade para escolher uma atividade ao ar livre quanto o tipo de atividade.
Ao rastrear entre tópicos, você pode ver que agente recebe essa entrada do usuário e ignora inteligentemente o nó de pergunta que solicita o tipo de atividade.
O agente está sempre ouvindo ativamente a entrada do usuário, lembrando-se das informações com antecedência para poder pular 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 questão da categoria do produto é apresentada, em vez de informar ao agente apenas a categoria do produto, o usuário pode dizer "Quero comprar um par de botas de caminhada com $100". Nesse exemplo, o agente não só consegue direcionar para o caminho correto da categoria de produtos para hiking, mas também preenche ativamente os espaços solicitando o tipo de equipamento para hiking e as informações do intervalo de preços desejado.
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.