Intenções
Reconhecer o significado das mensagens do usuário é essencial. Não apenas identificá-los, mas classificá-los com precisão também é fundamental.
Para isso, você pode programar seu chatbot para extrair informações de uma conversa natural (uma conversa com um humano).
Ao criar uma intenção, você também cria vários enunciados. Enunciados representam as diferentes declarações que seu usuário pode usar para a mesma intenção.
Exemplo - Pedindo um café
- Eu quero café!
- Eu gostaria um café, por favor!
- Você tem um expresso descafeinado?
- Oi! Eu gostaria de pedir um café com leite, por favor. Normal, só uma dose.
É possível adicionar esses diferentes enunciados para treinar seu chatbot a responder a uma intenção em vez de uma palavra específica.
As declarações do usuário são comparadas e combinadas com a intenção mais apropriada, com a maior porcentagem de confiança.
Mensagem do Usuário | Intenção Correspondida | Confiança |
|---|---|---|
"Um expresso, por favor" | faça a encomenda | 0,97 |
"Gostaria de pedir um café" | faça a encomenda | 0,91 |
"Você pode me dar um cappuccino duplo?" | faça a encomenda | 0,96 |
Adicionando uma intenção
Para criar uma nova intenção,
- Clique no Módulo NLU na barra lateral direita, no seu Conversation Studio;
- Clique no botão "+";
- Dê-lhe um nome amigável;
- Clique em Enviar;
- Escreva seus enunciados ao lado do número (onde você pode ver Digite uma frase).
⚠ Atenção!
Não se esqueça que:
- A pontuação é ignorada para classificação de texto, exceto para hífens;
- Os hífens entre as palavras são unidos como uma única palavra;
- A distinção entre maiúsculas e minúsculas é ignorada, o que significa que todo o texto é convertido em minúsculas.
Exemplos
Mensagem do Usuário | É convertido para |
|---|---|
Oi! Você poderia me dar uma única dose de café? Obrigado! | oi voce poderia me dar uma unica dose de cafe obrigado |
Você algum cappuccino disponível? | voce tem algum cappuccino disponivel |
Respondendo a uma intenção
Você pode detectar e responder a intents analisando a event.nlu.intent.name variável em seus ganchos, transições de fluxo ou ações.
Exemplo
{
"type": "text",
"channel": "web",
"direction": "incoming",
"payload": {
"type": "text",
"text": "hey"
},
"target": "AwIiKCRH4gH2GBJgQZd7q",
"botId": "my-new-bot",
"threadId": "5",
"id": 1.5420658919105e+17,
"preview": "hey",
"flags": {},
"nlu": { // <<<<------
"language": "en", // language identified
"intent": { // most likely intent, assuming confidence is within config threshold
"name": "hello",
"context": "global",
"confidence": 1
},
"intents": [ // all the intents detected, sorted by probabilities
{
"name": "hello",
"context": "global",
"confidence": 1
},
{
"name": "none",
"context": "global"
"confidence": 1.94931e-8
}
],
"entities": [], // extracted entities
"slots" : {} // extracted slots
}
}🖊 Nota: Você pode usar esses metadados para criar transições quando uma intenção específica for detectada em um fluxo específico. Você pode aprender mais sobre fluxos e transições.
Confiança e Depuração
Para habilitar a depuração, certifique-se de que debugModeEnabled esteja definido true em seu arquivo data/global/config/nlu.json.
💡 Dica: Em um ambiente de produção, você também pode usar a BP_NLU_DEBUGMODEENABLEDvariável em vez de modificar a configuração diretamente.
Exemplo
{ text: 'hey there bud',
intent: 'hello',
confidence: 0.966797,
bot_min_confidence: 0.5,
bot_max_confidence: 100,
is_confident_enough: true,
language: 'en',
entities: [ ]
}