Este guia apresenta práticas recomendadas gerais para projetar todos os tipos de agentes.
Consulte também o guia de design de agentes de voz e as práticas recomendadas para usar o serviço do Dialogflow.
Antes de criar um agente
Nesta seção, fornecemos as informações que você precisa considerar antes de começar a criar um agente.
Objetivo
Considere o objetivo geral do seu agente:
- O que sua empresa quer conquistar?
- O que os usuários esperam do seu agente?
- Com que frequência os usuários interagirão com seu agente?
Plataforma
Pense como os usuários acessarão o agente. Analise as plataformas compatíveis com o Dialogflow antes de criar conteúdo. Prepare seu conteúdo de acordo com a escolha das plataformas compatíveis. Algumas das integrações de plataforma do Dialogflow aceitam mensagens avançadas, que podem incluir elementos como imagens, links e fragmentos de sugestões.
Criar agentes de modo iterativo
Caso seu agente seja grande ou complexo, comece criando um diálogo que atenda apenas às solicitações de nível superior. Depois de estabelecer a estrutura básica, itere os caminhos de conversa para garantir que todas as rotas possíveis que um usuário pode seguir foram incluídas.
Agentes pré-criados
O Dialogflow oferece agentes pré-criados para ajudar você a começar. Os agentes pré-criados abrangem casos de uso comuns, como reserva de hotéis, navegação e compras on-line. Eles vêm com intents e entidades que englobam as consultas de usuários mais comuns. Inclua respostas específicas à sua empresa e você criará um agente funcional rapidamente.
Entidades do sistema
Quando um usuário faz uma solicitação, há informações importantes para analisar o que foi solicitado. No Dialogflow, elas são chamadas de entidades. Em particular, as entidades do sistema são entidades pré-criadas fornecidas pelo Dialogflow para processar os tipos de informações mais conhecidos.
Small talk
Ao desenvolver o diálogo, podemos também incluir solicitações que não têm relação com o tópico principal. O Dialogflow oferece um recurso opcional chamado small talk. Ative esse recurso para que seu agente responda a assuntos gerais, reações emocionais e perguntas sobre o próprio agente. É possível personalizar todas as respostas desse recurso para garantir que a experiência seja casual, profissional ou uma mistura de ambos, de modo a representar sua marca.
Práticas recomendadas de projeto do agente
Nesta seção, apresentamos uma lista de práticas recomendadas para um agente robusto, preciso, eficiente e utilizável.
Saudações e despedidas
Prática recomendada | Detalhes |
---|---|
As intents de boas-vindas precisam informar os usuários sobre os recursos do agente levando a marca em consideração. | A intent de boas-vindas do seu agente precisa informar ao usuário sobre duas ou três tarefas com que o agente pode ajudar, além de fornecer descrições breves sobre como usar os recursos, conforme necessário. |
Os agentes precisam ter uma mensagem de despedida adequada quando uma interação bem-sucedida tiver terminado. | Quando um usuário conclui uma tarefa, o agente precisa resumir a transação/tarefa e dizer algo como “Até a próxima”. |
Machine learning e treinamento
Prática recomendada | Detalhes |
---|---|
As intents precisam ter pelo menos de 10 a 20 frases de treinamento (dependendo da complexidade). | A complexidade do agente determinará o número real de frases de treinamento que cada intent precisa ter, mas entre 10 e 20 (dependendo da complexidade da intent) é um bom mínimo. Quanto mais parâmetros as intents tiverem, mais frases você precisará fornecer para treinar o modelo de machine learning. |
As frases de treinamento precisam ser variadas. | Inclua variações de perguntas, comandos, verbos e sinônimos de substantivos comuns para garantir que as frases englobem um amplo espectro de solicitações possíveis. |
As anotações precisam ser consistentes. |
|
Use anotações semanticamente significativas para entidades do sistema. | O significado semântico de uma parte da frase de treinamento selecionada para uma anotação pode ser afetado pelo restante do texto em uma frase de treinamento. Por exemplo:
Por exemplo, não use a entidade do sistema @sys.duration para anotar o primeiro exemplo "7 anos" acima. O significado semântico de "7 anos" não corresponde a um período de tempo simples. Em vez disso, use a entidade do sistema @sys.age . |
As entidades personalizadas devem abranger uma grande diversidade de exemplos. | As entidades são listas de itens. O machine learning cuidará das classes gramaticais, mas é necessário incluir todos os itens possíveis. Além disso, marque a opção definir sinônimos e inclua algumas variações. |
Desative o ML para o menor número possível de intents. | Frases de treinamento para intents com o ML desativado não são usadas durante o treino de seu agente. Uma consulta de usuário muito semelhante a uma frase de treinamento em uma intent com o ML desativado pode ser correspondida à intent errada se outras intents com o ML ativado tiverem uma leve semelhança com a consulta do usuário. Se você estiver com problemas com falsos positivos, aumente o limiar de classificação do ML em vez de desabilitá-lo. |
Não defina um limiar de classificação do ML alto para um agente com apenas alguns dados de treinamento. | Se o limiar for alto e não houver muitos dados de treinamento, somente as consultas de usuários que tiverem correspondências quase exatas às frases de treinamento resultarão em correspondência de intents. É preciso fornecer muitos dados de treinamento se você quiser um limiar alto. |
Os agentes precisam ter uma intent de fallback. | Sem as intents de fallback, as consultas de usuário sem correspondência resultarão em respostas vazias. |
Os agentes precisam fornecer exemplos negativos. | Exemplos negativos impedem que haja correspondências não intencionais de intents nas consultas do usuário que são um pouco semelhantes às frases de treinamento. |
Não defina entidades que correspondam a praticamente tudo. | Isso degrada o desempenho e a qualidade do ML. Quase tudo em cada frase de treinamento será avaliado como uma correspondência possível. Considere o uso de @sys.any em vez disso. Da mesma forma, entidades compostas não podem conter um único @sys.any como sinônimo. |
Não defina entidades compostas de pausas discursivas ou texto sem sentido. | Exemplos de pausas discursivas e texto sem sentido são: "hmmm", "vamos ver", "por favor" e "você poderia". Se você estiver tentando usar entidades como essa para introduzir uma variedade, estará apenas degradando o desempenho do ML. O Dialogflow já aumenta os dados para lidar com uma variedade como essa. Adicione frases como essa nas frases de treinamento, não nas entidades. |
As entidades precisam ter um escopo limitado que capture valores distintos de um tipo de informação. | Mantenha suas entidades focadas, curtas e simples. Se os valores de entidade forem complicados, talvez as frases de treinamento de intent sejam mais adequadas para sua situação. Por exemplo, considere estas expressões de usuário final: "Como posso fazer uma chamada internacional com o plano A?" e "Uso de roaming de dados internacional com o plano B". Não crie entidades para as ações ("Como posso fazer uma chamada internacional" e "Uso de roaming de dados internacional") e os planos ("Plano A", "Plano B"). Em vez disso, use frases de treinamento e correspondência de intent para detectar as ações/entidades e os planos. |
O texto anotado nas frases de treinamento precisa ter variedade. | Por exemplo, se você fornece valores de tempo que precisam ser analisados como entidades de sistema @sys.time em frases de treinamento, não forneça o mesmo horário em todas essas frases. As frases de treinamento precisam ter uma variedade de exemplos de horários como: "7h", "20h" e "9 horas". |
Intents com muitos parâmetros também precisam ter muitas frases de treinamento. | Como regra, tente ter pelo menos três vezes mais frases de treinamento do que parâmetros. O recomendado é ter, no mínimo, 10 a 20 frases de treinamento (dependendo da complexidade da intent). |
Cada parâmetro precisa ser usado em muitas frases de treinamento. | Como regra, cada parâmetro precisa ser usado em pelo menos cinco frases de treinamento. |
Evite usar várias entidades @sys.any em uma frase de treinamento. |
Uma frase de treinamento não pode conter duas entidades @sys.any consecutivas ou um total de três entidades @sys.any. O Dialogflow pode não conseguir distingui-las. |
Não use frases de treinamento semelhantes em intents diferentes. | Intents diferentes não precisam conter frases de treinamento similares, porque isso evitará que o Dialogflow aprenda a reconhecer essas frases. |
Ative a correção ortográfica automática. | Se você estiver usando entrada de texto, será preciso ativar a correção automática de ortografia. |
Não aninhe entidades compostas. | Não use mais de um nível de aninhamento em entidades compostas. Cada nível de aninhamento degrada a qualidade de modo significativo. |
Evite caracteres especiais em frases de treinamento. | Caracteres especiais em frases de treinamento, como { , _ , # e [ serão ignorados. Emojis são uma exceção. Eles funcionam como esperado. |
Nomeação de intents
Se o agente tiver muitas intents, considere um esquema de nomenclatura que ajude você a mantê-las organizadas. É comum segmentar nomes de intents com pontuação, em que a especificidade aumenta da esquerda para a direita. Além disso, o nome da intent precisa refletir a intenção do usuário final de fazer uma conversa.
Há ótimas esquemas de nomenclatura. Veja alguns exemplo a seguir:
- phone-service.order.cancel
- phone-service.order.create
- phone-service.order.change
- tv-service.order.cancel
- tv-service.order.create
- tv-service.order.change
- account.balance.get
- account.balance.pay
- account.address.get
- account.address.update
Recursos úteis para intents
Prática recomendada | Detalhes |
---|---|
Os agentes precisam aceitar solicitações contextuais. | Por exemplo, caso seu agente processe solicitações sobre a previsão do tempo e um usuário diga "Tempo em São Francisco", adicione contextos para aceitar outras solicitações, como "E amanhã?". |
Os agentes precisam ter continuidades para "sim", "não", "cancelar", "avançar", "voltar" etc. | As intents de continuidade são usadas para responder a respostas comuns. Para adicionar uma intent de continuidade, passe o mouse sobre uma intent e clique em Adicionar continuidade. |
As intents precisam ter pelo menos uma resposta de texto. | A seção de resposta está na parte inferior da página de intents. Adicionar variações embaralhará a resposta escolhida, criando uma experiência menos repetitiva. |
Os agentes precisam coletar todas as informações necessárias para atender à solicitação do usuário. | Pense em definir os parâmetros obrigatórios necessários. O agente continuará a fazer solicitações ao usuário até conseguir as informações necessárias. Isso é chamado de preenchimento de slot. |
As respostas precisam repetir informações conforme necessário, como confirmar um pedido. | Quando um usuário faz uma solicitação, como um pedido ou alteração de informações, o agente precisa repetir o que está acontecendo para fins de confirmação. Ao criar essas respostas de confirmação, inclua todas as combinações possíveis de entidades e parâmetros repetidos. |
Correção da conversa
Prática recomendada | Detalhes |
---|---|
Os agentes precisam ter prompts de recuperação úteis para cada etapa do diálogo. | Por exemplo, se o prompt inicial for "Que cor você quer?" e o usuário responder com "papagaio da selva", um intent de continuidade/fallback precisa reformular a pergunta, como "Desculpe, qual é a cor?". |
Os agentes precisam ter respostas personalizadas e específicas para a marca no intent de fallback padrão. | Quando um usuário diz algo que não corresponde a uma intent, a correspondência é feita com a intent de fallback padrão. Ela precisa ser personalizada para refletir sua marca, bem como fornecer informações que orientam o usuário a fazer uma solicitação válida. |
Para fulfillment personalizado, os agentes precisam ter uma intent que permita aos usuários repetir informações. | Uma intent pode processar solicitações como “fale de novo”, “repita”, “reproduza novamente” etc. Essa pode ser uma intent de continuidade. |
Ajude os usuários a ter sucesso, leve-os a dizer exatamente o que você gostaria de ouvir como resposta. | Por exemplo: se você fornecer opções, não pergunte "Quer A ou B?" - porque um usuário pode responder "sim". Em vez disso, pergunte: "Eu tenho A e eu tenho B. Qual seu herói favorito? |
Perfil
Prática recomendada | Detalhes |
---|---|
As respostas dos agentes precisam ter estilo e tom adequados à marca e ser consistentes. | À medida que os usuários conversam com o agente, o ideal é que eles tenham a impressão de que estão conversando com uma pessoa. Verifique se a personalidade e as qualidades escolhidas estão representadas em todas as respostas. |
Os agentes precisam ser conscientes em relação a culturas, gêneros, crenças religiosas, deficiências e idades. | Estereótipos podem ofender os usuários, mesmo em piadas, fazendo com que eles deixem de usar seu agente. |
Como desenvolver um design para a voz
Prática recomendada | Detalhes |
---|---|
Evite conteúdo que exija visualização ou interação com teclado e mouse. | Não use hiperlinks, tabelas, imagens e abreviações. Você pode consultar um website por nome. Ao apresentar uma lista de opções, retorne a melhor correspondência e pergunte se o usuário quer ouvir opções alternativas. |
Não crie silêncios estranhos. Sempre termine com uma pergunta. Incentive a conversa e inicie as interações. | |
Crie diálogos compactos e fáceis de entender. | Em uma tela, o texto pode ser longo e conter vários parágrafos. Ignore as partes que não são interessantes para você. Porém, ouvir um agente virtual que fala por muito tempo não deixa os usuários felizes. |
Use o SSML | Use o SSML para estruturar e alterar a entonação das suas frases, para que as vozes fiquem mais naturais. |
Para mais informações sobre design para voz, consulte Design do agente de voz.
Proteção da privacidade do consumidor
Prática recomendada | Detalhes |
---|---|
Desative a geração de registros de dados nas configurações do agente para a conformidade com o GDPR. | Nas configurações do agente, é possível desativar a geração de registros de interações no Dialogflow. Ao desativar esse recurso, nenhum dado de PII será armazenado no Dialogflow. Isso também significa que determinados recursos, como a análise, não estarão disponíveis. |
Armazene dados de conversas de bate-papo no BigQuery para ter controle sobre o armazenamento regional. | Por meio do Cloud Logging ou da API Dialogflow, é possível enviar expressões de bate-papo de entrada para o BigQuery. Ao adotar essa abordagem, você terá controle sobre a região em que quer armazenar os dados. Além disso, você pode usar a API Data Loss Prevention para mascarar informações confidenciais. Consulte o projeto para criar um serviço ao cliente com IA no GCP. |
Como usar o conector da base de conhecimento
Prática recomendada | Detalhes |
---|---|
Ao importar perguntas frequentes públicas, use marcação HTML5 válida. | Por exemplo, use elementos de artigo com a notação schema.org, como schema.org/Question e schema.org/Answer. |
Verifique se seu site de perguntas frequentes está indexado pelo Google Robots | O site precisará permitir que o Google Robots seja adicionado ao mecanismo de pesquisa do Google por meio da ferramenta do Google para webmasters. Sites como pages.github não funcionarão, porque não são ágeis. |
Use de uma a 200 perguntas frequentes | Você precisa de mais de um par de perguntas e respostas e não mais de 200 por base de conhecimento. Você pode carregar várias bancos de conhecimento se precisar de mais. |
Como implementar APIs do Dialogflow
Prática recomendada | Detalhes |
---|---|
Não exponha a chave privada da conta de serviço em codebase do cliente para aplicativos móveis ou da Web. | Isso não é considerado seguro. Qualquer pessoa que use as ferramentas do Chrome Dev poderá roubar sua chave e fazer chamadas de API (assinadas) por meio da sua conta. Sempre é melhor deixar que um servidor proxy de API lide com a autenticação do Google Cloud. Dessa forma, a conta de serviço não será exposta ao público e as chaves poderão ser armazenadas com segurança. |
Como desenvolver um design para voz e texto em um agente
Prática recomendada | Detalhes |
---|---|
Não use a SSML nas respostas de plataforma padrão. | Quando o agente pode responder com voz e texto, uma resposta de texto incluirá o código SSML bruto. Use texto simples na resposta padrão da plataforma e SSML em respostas específicas da plataforma. Como alternativa, você pode usar um webhook para gerar o SSML somente quando uma resposta de voz for necessária. |
Teste
Prática recomendada | Detalhes |
---|---|
Teste seu aplicativo completamente com alguém que não esteve envolvido no desenvolvimento. | Pedir a alguém que não está familiarizado com o agente para usar o aplicativo trará insights sobre como as conversas fluem naturalmente. Peça à essa pessoa que preste atenção na precisão, nas pausas longas, na falta de caminhos de conversa, no ritmo, nas transições estranhas etc. |
Teste seu aplicativo em todas as plataformas em que você queira que haja compatibilidade. | Se o agente estiver disponível em uma ou mais plataformas, verifique se respostas e mensagens avançadas serão exibidas como esperado em todas as plataformas. |
Práticas empresariais recomendadas
- Consulte o Framework de arquitetura do Google Cloud.
Guias de criação de conversas extras
- Consulte o guia de criação de conversas fornecido pela equipe do Actions on Google.
- Consulte o guia da SSML fornecido pela equipe do Actions on Google.