Os conectores de conhecimento complementam as intents definidas. Eles analisam documentos de conhecimento, como perguntas frequentes ou artigos, para localizar respostas automatizadas. Para configurá-los, defina uma ou mais bases de conhecimento, que são conjuntos de documentos de conhecimento.
É possível ativar as bases de conhecimento no seu agente para que todas as solicitações de detecção de intent possam localizar as respostas automatizadas usando essas bases. Como alternativa, é possível especificar uma ou mais bases de conhecimento em suas solicitações de intent de detecção individuais.
Um agente que usa conectores de conhecimento também costuma usar intents definidas. Os conectores de conhecimento oferecem menos precisão e controle de resposta do que as intents. Defina suas intents para processar solicitações complexas de usuários e permitir que conectores de conhecimento processem solicitações simples.
Para ver uma lista de idiomas com suporte, consulte a coluna Conectores de conhecimento na referência de linguagens.
Limitações
O recurso de conectores de conhecimento está disponível apenas para a
região global
.
Ativar recursos Beta
Verifique se os recursos Beta estão ativados:
- Acesse o console do Dialogflow ES.
- Selecione um agente.
- Clique no botão de configurações settings ao lado do nome do agente.
- Na guia General, role a tela para baixo e verifique se Beta Features está ativado.
- Se você tiver feito alterações, clique em Save.
Criar uma base de conhecimento e um documento
Siga as instruções nas instruções de base de conhecimento para criar uma base de conhecimento e um documento.
Configurações dos conectores de conhecimento
É possível ativar ou desativar as bases de conhecimento para seu agente. As bases de conhecimento ativadas serão consideradas para todas as solicitações de correspondência de intents que não especificam bases de conhecimento. Para ativar ou desativar bases de conhecimento:
- Acesse o console do Dialogflow ES.
- Selecione um agente.
- Clique em Knowledge no menu da barra lateral esquerda.
- Selecione uma ou mais bases de conhecimento na lista.
- Clique em Enable ou Disable.
Quando uma expressão de usuário final também corresponde a uma intent, é possível especificar o nível de preferência dos resultados de conhecimento:
- Desça até a seção Adjust Knowledge Results Preference.
- Ajuste o controle deslizante de mais fraco (preferência dada à intent) para mais forte (preferência dada ao conhecimento). Para mais informações, consulte Detectar respostas de intent abaixo.
Configurar respostas
Por padrão, uma base de conhecimento é configurada com uma única resposta de texto padrão preenchida com a melhor resposta de conhecimento correspondente. É possível alterar essa resposta e adicionar mensagens de resposta ricas. As respostas de conhecimento podem conter até três respostas por base de conhecimento, e você pode fazer referência a essas respostas nas suas respostas configuradas. Para adicionar respostas:
- Na página Knowledge, clique no nome da base de conhecimento.
- Role para baixo até a seção Responses e adicione as respostas como você quiser:
- Ao definir a primeira resposta, use
$Knowledge.Question[1]
e$Knowledge.Answer[1]
onde você quer que a pergunta e a resposta sejam fornecidas. - O índice de
$Knowledge.Question
e$Knowledge.Answer
começa em 1, por isso, aumente esse índice ao adicionar mais respostas.
- Ao definir a primeira resposta, use
- Clique em Save quando terminar de editar.
Ao definir as respostas, considere os seguintes pontos:
- Se o número de respostas definidas for maior que N correspondências de respostas do conector de conhecimento, somente N respostas serão retornadas.
- Como a acurácia pode ser menor que a correspondência de intents explicitamente definidas, recomendamos retornar três respostas aos usuários quando possível.
Exemplo:
Detectar intent com base de conhecimento
Ao fazer uma solicitação de detecção de intent, é possível especificar uma ou mais bases de conhecimento para uma possível resposta. O fornecimento explícito de bases de conhecimento em uma solicitação modifica as configurações de bases de conhecimento ativados e desativados.
Os exemplos abaixo mostram como usar o Console do Dialogflow, a API REST (incluindo a linha de comando) ou bibliotecas de clientes para detectar uma intent.
Para usar a API, chame o método detectIntent
no tipo Sessions
.
IU da Web
Interaja com o agente e receba as respostas do conector de conhecimento pelo simulador do Dialogflow:- Siga as etapas acima para ativar uma base de conhecimento.
- Siga as etapas acima para definir respostas.
- Digite "Como me inscrevo?" no simulador.
REST
Chame o métododetectIntent
no tipo
Sessions
e especifique a base de conhecimento no campo queryParams
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: ID do projeto do GCP
- KNOWLEDGE_BASE_ID: código da base de conhecimento
Método HTTP e URL:
POST https://dialogflow.googleapis.com/v2beta1/projects/PROJECT_ID/agent/sessions/123456789:detectIntent
Corpo JSON da solicitação:
{ "queryInput": { "text": { "text": "How do I sign up?", "languageCode": "en-US" } }, "queryParams": { "knowledgeBaseNames": ["projects/PROJECT_ID/knowledgeBases/KNOWLEDGE_BASE_ID"] } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ ... "queryResult": { "queryText": "How do I sign up?", "parameters": {}, "allRequiredParamsPresent": true, "fulfillmentText": "Sign up for Cloud Storage by turning on the Cloud Storage service in the Google Cloud Platform Console.", "intent": { "name": "projects/my-gcp-project/agent/intents/487c7242-a769-408a-a339-47b95e10dac4", "displayName": "Knowledge.KnowledgeBase.MzkzNTAyMDE3NDQxNDk3MDg4MA" }, "intentDetectionConfidence": 0.99371547, "languageCode": "en-us", "knowledgeAnswers": { "answers": [ { "answer": "Sign up for Cloud Storage by turning on the Cloud Storage service in the Google Cloud Platform Console.", "matchConfidenceLevel": "HIGH", "matchConfidence": 0.99371547 }, { "answer": "Certain types of content are not allowed on this service; please refer to the Terms of Services and Platform Policies for details. If you believe a piece of content is in violation of our policies, report it here (select See more products, then Google Cloud Storage and Cloud Bigtable).", "matchConfidenceLevel": "LOW", "matchConfidence": 0.0012244871 }, { "answer": "From the Cloud Storage documentation click \"Send feedback\" near the top right of the page. This will open a feedback form. Your comments will be reviewed by the Cloud Storage team.", "matchConfidenceLevel": "LOW", "matchConfidence": 0.0011537358 } ] } } }
Java
Para autenticar no Dialogflow, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para autenticar no Dialogflow, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no Dialogflow, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Detectar respostas de intent
A resposta para o método detectIntent
do tipo Sessions
é um DetectIntentResponse
.
Vários fatores afetam como os campos de resposta são preenchidos.
Se a base de conhecimento e a intent definidas forem correspondentes em potencial, a confiança de correspondência de cada um e a preferência de resultados de conhecimento (consulte Configurações dos conectores de conhecimento) serão usadas para determinar qual correspondência será a selecionada.
A correspondência selecionada é preenchida no campo DetectIntentResponse.queryResult
, e outras possíveis correspondências são preenchidas no campo DetectIntentResponse.alternativeQueryResults
.
Ambos os campos contêm mensagens QueryResult
.
Se uma base de conhecimento apresentar uma possível correspondência:
QueryResult.knowledgeAnswers
será preenchido com uma lista de possíveis respostas de conhecimento em ordem decrescente de confiança na correspondência.- Se as respostas avançadas tiverem sido definidas para a base de conhecimento,
QueryResult.fulfillmentMessages
será preenchido com mensagens de resposta avançadas.
Ao executar uma solicitação de detecção de intent, é possível que a consulta de conhecimento falhe.
Quando isso acontece, as intents definidas são selecionadas para que a solicitação geral de detecção de intent não falhe.
Para informações de erro de consulta de conhecimento, veja o campo DetectIntentResponse.alternativeQueryResults[i].diagnosticInfo
.
Gerenciar bases de conhecimento
Para saber mais sobre como gerenciar bases de conhecimento, consulte Gerenciar bases de conhecimento.