Práticas recomendadas para entidades e preenchimento de slot no Copilot Studio
O que é preenchimento de slot?
O preenchimento de slots está relacionado ao uso de entidades que permitem que um agente adquira e use informações mais facilmente, identificando-as e extraindo-as da consulta do usuário.
Um agente normalmente precisa de várias informações de um usuário para fazer seu trabalho. Para obter essas informações, você normalmente faria perguntas separadas, uma para cada terno que o agente precisa. Quando você usa entidades em suas perguntas, o Copilot Studio detecta as informações necessárias e ignora as perguntas em que as informações podem ser identificadas na consulta de gatilho do usuário.
Por exemplo, quando um usuário pergunta: Gostaria de pedir 3 camisetas azuis grandes
O Reconhecimento vocal natural (NLU) do Copilot Studio pode entender imediatamente:
- Tópico é Ordem
- A quantidade é 3
- A cor é Azul
- O tipo de item é Camiseta
O agente pode então pular perguntas desnecessárias. Se faltarem algumas informações, por exemplo Tamanho, ele fará as perguntas não respondidas antes de prosseguir. O preenchimento de espaços permite que seu agente adquira e use informações com mais facilidade e reduz o número de perguntas que você precisa fazer.
Você primeiro define quais entidades deseja usar e seus tipos.
Definir entidades
O Copilot Studio fornece várias entidades integradas para os casos de uso mais comuns, como Email, Data e hora, Nome da pessoa, Número de telefone, Cor, País/Região, Cidade, Número, Dinheiro e muito mais.
As entidades incorporadas são poderosas, pois podem lidar com muitas variações da forma que uma informação pode assumir. Por exemplo, ao usar Dinheiro em uma conversa, o usuário pode inserir um valor como "$ 100" ou "cem dólares" ou "100 dólares". O modelo de NLU no Copilot Studio descobre que o valor é um valor monetário de 100 dólares.
Dica
Independentemente de como os valores sejam inseridos, desde que sejam solicitados com perguntas em seu fluxo de conversa, eles são armazenados em variáveis que você pode reutilizar.
Você também pode definir suas próprias entidades personalizadas, como Tipo de item do exemplo anterior. As entidades personalizadas podem ser de dois tipos:
- Lista fechada: para uma lista de valores predefinida.
- Expressões regulares (RegEx): para informações correspondentes a um padrão específico. A RegEx é ideal quando você precisa capturar dados que seguem sempre o mesmo formato (por exemplo, INC000001 para um número de tíquete)
Melhorar a experiência do usuário
O uso de entidades torna sua vida mais simples, permitindo que o Copilot Studio colete informações de forma mais inteligente das consultas do usuário. Mais importante que isso, ele facilita a vida dos usuários, pois as entidades podem localizar e armazenar informações das consultas do usuário e, em seguida, disponibilizar essas informações posteriormente na conversa. As entidades melhoram a experiência do usuário — elas fazem seu agente parecer mais inteligente — e usá-las sempre que possível é definitivamente uma prática recomendada.
Práticas recomendadas para entidades
Usar sinônimos
Você pode adicionar sinônimos a valores de entidade de listas fechadas 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.
Dica
- O uso de sinônimos também pode ajudar no acionamento de tópicos, pois eles aumentam o peso de uma frase de gatilho adicionando palavras relacionadas como sinônimos de uma entidade que ele contém. Por exemplo, para a opção "Reclamação", adicione palavras ou frases negativas semelhantes como sinônimos.
- O modelo de NLU também generaliza em todas as variações de entidade (ou seja, todos os seus valores e seus sinônimos) no caso de uma frase de gatilho de tópico incluir pelo menos uma variação dessa entidade. Em outras palavras, os autores do agente devem incluir um exemplo de um frase de gatilho com um uso desta entidade para o NLU para generalizar outras variações de entidade.
Habilitar a Correspondência Inteligente
Para cada entidade de lista fechada, você também pode habilitar a Correspondência Inteligente.
O Smart Matching faz parte da inteligência suportada pelo modelo agente's NLU. Com esta opção habilitada, o agente interpreta a entrada do usuário usando lógica fuzzy, com base nos itens listados na entidade.
Em particular, o agente corrige automaticamente erros de ortografia e expande sua lógica de correspondência semanticamente. Por exemplo, agente pode corresponder automaticamente "softball" a "baseball".
Seja criativo com expressões regulares
Às vezes, a extração de entidades de uma consulta do usuário pode causar confusão no modelo de NLU, especialmente quando várias entidades do mesmo tipo estão presentes na consulta do usuário.
Por exemplo, se um usuário disser: "você pode levar 2 toalhas e 1 travesseiro para o quarto 101"?
O uso da entidade Número incorporada seria confundido entre 2, 1 e 101. Para contornar essa confusão, você pode definir as seguintes entidades de expressão regular:
- Quantidade de toalhas: [1-9] toalha
- Quantidade de travesseiros: [1-9] travesseiro
- Número do quarto: [0-9]{3}
Alternativas a entidades para armazenar dados referenciais
Para conjuntos de dados grandes ou em evolução (por exemplo, uma lista de produtos ou clientes), em vez de usar entidades de lista fechada do Copilot Studio, pode ser interessante verificar fontes externas. Você precisa passar o enunciado do usuário para o serviço externo usando um fluxo de nuvem do Power Automate.
Sua lógica de tópico pode então validar a precisão do resultado (ou pedir ao usuário para validá-lo) antes de prosseguir na conversa.
O Dataverse é um bom candidato para armazenar esses dados, pois possui uma capacidade Pesquisa do Dataverse que oferece suporte à correspondência difusa para retornar os melhores resultados junto com uma pontuação de confiança. Mesmo se ele pesquisar com uma frase completa, conseguirá recuperar possíveis correspondências.
Dica
Para revisar uma implementação de exemplo, consulte Retornar uma lista de resultados.