Usar entidades e preenchimento de slots em agentes
Uma parte importante das conversas do agente no Copilot Studio é o reconhecimento de linguagem natural, que é a capacidade da IA de entender a intenção do usuário. Por exemplo, se o usuário disser: "Tentei usar meu vale-presente, mas não funcionou", o agente saberá encaminhar o usuário ao tópico relacionado a cartões-presente que não funcionam, 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 agente pode reconhecer de maneira inteligente as informações relevantes de uma entrada do usuário e salvá-las para uso posterior.
Entidades predefinidas
Entidades em agentes 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 agente 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 agente no Copilot Studio e selecione Configurações na parte superior da página e escolha 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 agente sabe que "1.000 dólares" representa o tipo de informação de dinheiro. Quando o agente 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 agente que atenda a um propósito específico, talvez seja necessário ensinar ao modelo de entendimento da linguagem do agente o conhecimento específico do domínio.
Por exemplo, digamos que você queira criar um agente para uma loja de equipamentos para esportes ao ar livre. Nesse caso, você precisará ensinar o agente 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 agente o conhecimento de todas as categorias de produtos de uso ao ar livre.
Abra o agente no Copilot Studio e selecione Configurações na parte superior da página e escolha Entidades no menu.
Selecione Adicionar uma entidade>Nova entidade.
Selecione o tipo desejado da entidade: uma entidade 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 agente. Com esta opção habilitada, o agente interpreta a entrada do usuário usando lógica difusa, com base nos itens listados na entidade.
Em particular, o agente pode corrigir automaticamente os erros ortográficos e expandir sua lógica de correspondência semanticamente. Por exemplo, o agente 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 suas alterações.
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.
Depois de selecionar esta opção, 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ão diferencia maiúsculas de minúsculas. Para não diferenciar maiúsculas e minúsculas, use a opção da expressão regular (?i)
em sua cadeia de caracteres padrão. Alguns exemplos básicos estão incluídos no painel de entidades regex. Para obter mais informações sobre a sintaxe e para obter mais exemplos, consulte Linguagem de Expressão Regular – Referência Rápida.
Se precisar da expressão regular para acomodar 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 suas alterações.
Usar entidades em uma conversa
Agora que fez o trabalho de fornecer ao agente 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 agente.
Acesse a página Tópicos do agente que 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 acampamento, que é acionado ao digitar "Quero algo para fazer" no chat de teste, como exemplo.
O tópico foi acionado com sucesso e o agente solicita o tipo de atividade, mostrando também as opções de botão especificadas na criação do nó Fazer uma pergunta. Na árvore de diálogo, o rastreamento entre tópicos também mostra que o agente 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 acontece pela inserção da entidade extraída "Caminhada" 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 quais informações pertencem a qual entidade automaticamente. Nos casos em que não tiver certeza do mapeamento pretendido, ele solicita que o usuário seja mais específico, fornecendo 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.
No rastreamento entre tópicos, você pode ver que o agente recebe essa entrada do usuário e ignora de forma inteligente o nó da pergunta que solicita o tipo de atividade.
O agente 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 algumas perguntas, como quanto tempo você tem disponível para a atividade (usando a entidade Duração) e 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 agente apenas a categoria do produto, o usuário poderá dizer "Quero comprar um par de botas de caminhada por menos de $100". Neste exemplo, o agente não só é capaz de rotear para o caminho correto da categoria de produto para caminhadas, como também de preencher ativamente os espaços solicitando o tipo de equipamento de caminhada e as informações da faixa de preço de destino.
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.