O Processamento de Linguagem Natural (PLN) permite que você compreenda e extraia informações relevantes (data, hora, entre outras) de mensagens recebidas pela empresa. Essas informações podem ser usadas para identificar a intenção e implementar a experiência de troca de mensagens necessária na conversa.
Ao usar o PLN integrado da Meta, é possível reduzir o número de chamadas de API registradas no limite de volume de mensagens.
Antes da entrega da mensagem à empresa, o PLN integrado da Meta a analisa para ajudar a detectar o significado e extrair as informações. Isso é feito por meio do Wit.ai da Meta e de um nível de confiança que indica a probabilidade de o analisador estar correto. Depois, a mensagem é transmitida à empresa normalmente, com as informações relevantes, entidades e características detectadas. Por exemplo, se a menagem exibir uma frase como "olá, amanhã às 14h", você receberá uma característica com a saudação e uma entidade com o registro de data e hora.
No PLN integrado, a identificação do idioma é ativada automaticamente. Já as informações de data e hora são transmitidas de acordo com a localização do perfil da pessoa.
A partir da mensagem de uma pessoa, o app Wit.ai analisa o texto e cria as entidades. É possível usar o padrão do Wit.ai para idiomas compatíveis ou criar o próprio app Wit.ai no idioma que você quiser. Quando a plataforma do Messenger recebe uma mensagem, o idioma principal é detectado para que o app Wit.ai associado a ele seja usado com o objetivo de extrair as entidades. Se não houver um app Wit.ai vinculado ao idioma principal detectado, o modelo-padrão de idioma será usado.
Consulte a documentação sobre o Wit.ai para ver mais informações sobre os apps, a criação e o teste de apps Wit.ai personalizados , além de uma lista de idiomas compatíveis .
Há duas maneiras de adicionar o PLN à Página da sua empresa: por meio do Painel de Apps da Meta ou de forma programática.
Para adicionar o PLN integrado usando o Painel de Apps , em Produtos, navegue até Messenger > Configurações e role a tela até a seção PLN integrado. Selecione a Página do Facebook no menu suspenso e alterne o botão para ON. Selecione o Language Model, que inclui uma opção para adicionar diversos idiomas. Nas Configurações avançadas, é possível selecionar a versão de PLN, o sinalizador detalhado para mais informações sobre as entidades e os melhores valores de n para cada intenção e característica que você quer receber. Essa configuração também especifica o número de localidades detectadas que são retornadas.
As amostras aleatórias de conversas anteriores na Caixa de Entrada da Página serão compiladas e exibidas em um novo app Wit. Essas amostras ficarão disponíveis para marcação no app Wit.ai imediatamente.
Para adicionar o PLN de forma programática, você precisará do seguinte:
MESSAGING
na Páginapages_messaging
e pages_manage_metadata
Envie uma solicitação POST
ao ponto de extremidade /PAGE-ID/nlp_configs
com o parâmetro nlp_enabled
definido como true
para ativar o PLN na Página. Também é possível incluir o parâmetro model
para definir um idioma diferente do padrão, que é o inglês.
Para ver mais informações, consulte a referência sobre PLN em Páginas .
curl -i -X POST "https://graph.facebook.com/v21.0
/me/nlp_configs
?nlp_enabled=true
&model=PORTUGUESE
&access_token=PAGE-ACCESS-TOKEN"
Você pode incluir o parâmetro custom_token
para usar o app Wit.ai personalizado e atualizar os parâmetros de PLN com solicitações POST
. Para desabilitar o PLN, envie uma solicitação POST
com o parâmetro nlp_enabled
definido como false
.
Quando o PLN integrado estiver habilitado, o webhook de mensagens incluirá estes dois campos: nlp
e nlpv2
. O campo nlp
é legado e usa uma convenção de nomenclatura obsoleta para nomes de entidades e características. O campo nlpv2
usa nomes simplificados para entidades e características, como mostrado abaixo.
Em 18 de junho de 2024, o campo nlp
será removido.
Caso o PLN integrado esteja habilitado, as entidades e características pertinentes serão incluídas na notificação de webhook message
de cada objeto de mensagem.
Por padrão, a plataforma do Messenger retorna as entidades a seguir.
Informações | Entidade |
---|---|
Quantia em dinheiro |
|
Data/hora |
|
Distância |
|
Duração |
|
Endereço de email |
|
Localização |
|
Número de telefone |
|
Quantidade |
|
Temperatura |
|
URL |
|
Volume |
|
Por padrão, a plataforma do Messenger retorna as características a seguir.
Informações | Característica |
---|---|
Despedida (somente em inglês) |
|
Saudações (somente em inglês) |
|
Sentimento |
|
Agradecimento (somente em inglês) |
|
Visite a documentação sobre Wit.ai para saber mais sobre entidades e características disponíveis, além de outras informações.
O exemplo a seguir mostra uma mensagem que inclui a frase "até amanhã às 16h", com as entidades datetime
e sentiment
depois da análise:
{...,
"entities": {
"datetime:datetime": [
{
"id": "340464963587159",
"name": "datetime",
"role": "datetime",
"start": 8,
"end": 23,
"body": "tomorrow at 4pm",
"confidence": 0.9704,
"entities": [],
"type": "value",
"grain": "hour",
"value": "2020-06-16T16:00:00.000-07:00",
"values": [
{
"type": "value",
"grain": "hour",
"value": "2020-06-16T16:00:00.000-07:00"
}
]
}
]
},
"traits": {
"sentiment": [
{
"id": "5ac2b50a-44e4-466e-9d49-bad6bd40092c",
"value": "neutral",
"confidence": 0.6162
}
]
}
Nos webhooks de messages
, é possível responder a uma mensagem aproveitando o PLN-padrão. Por exemplo, se houver uma função handleMessage()
que responda a cada mensagem recebida, a entidade greetings
poderá ser usada para enviar uma resposta adequada:
function firstTrait(nlp, name) {
return nlp && nlp.entities && nlp.traits[name] && nlp.traits[name][0];
}
function handleMessage(message) {
// check greeting is here and is confident
const greeting = firstTrait(message.nlp, 'greetings');
if (greeting && greeting.confidence > 0.8) {
sendResponse('Hi there!');
} else {
// default logic
}
}