El procesamiento del lenguaje natural (NLP) te permite comprender y extraer información relevante (fechas, hora y mucho más) de los mensajes que recibe tu empresa. Puedes utilizar esta información para identificar la intención de implementar la experiencia de mensajería necesaria para la conversación.
El uso del NLP integrado de Meta reduce las llamadas a la API que cuentan para los límites de frecuencia de mensajes.
Antes de que un mensaje se entregue a tu empresa, el NLP integrado de Meta analiza primero los mensajes para ayudar a detectar el significado y extraer información utilizando Wit.ai de Meta, así como el nivel de confianza que indica qué probabilidades hay de que la información facilitada por el analizador sea correcta. El mensaje se transmitirá entonces a tu empresa de la forma habitual, junto con la información relevante, las entidades y características detectados en el mensaje. Por ejemplo, si un mensaje contiene una frase como "hola, mañana a las 14:00", recibirás una característica que incluya el saludo y una entidad que incluya la marca de tiempo real.
La identificación del idioma se activa automáticamente con el NLP integrado, y la fecha y la hora se adaptan automáticamente a la configuración regional del perfil de la persona.
Wit.ai es la aplicación que analiza el mensaje y crea las entidades a partir del mensaje de una persona. Puedes utilizar la aplicación Wit.ai predeterminada para los idiomas admitidos o crear tu propia aplicación Wit.ai para cada idioma que quieras que se admita. Cuando la plataforma de Messenger recibe un mensaje, buscará primero el idioma principal detectado y utilizará la aplicación Wit.ai asociada para extraer las entidades. Si no hay ninguna aplicación Wit.ai vinculada al idioma principal detectado, se utilizará el modelo de lenguaje predeterminado.
Visita la documentación de Wit.ai para obtener más información sobre las aplicaciones Wit.ai y crear y probar tu propia aplicación Wit.ai personalizada así como una lista de idiomas admitidos.
Existen dos formas de añadir el NLP a la página de tu empresa: utilizando el panel de aplicaciones de Meta o mediante programación.
Para añadir el NLP integrado utilizando el panel de aplicaciones, en Productos ve a Messenger > Configuración y desplázate hasta la sección NLP integrado. Selecciona la página de Facebook en el menú desplegable y actívala. Selecciona el modelo de lenguaje, que incluye una opción para añadir varios idiomas. La configuración avanzada te permite seleccionar la versión del NLP, la marca detallada para obtener más información sobre las entidades y los valores n-best para cada intención y característica que quieras recibir. Esta configuración también determina el número de configuraciones regionales detectadas devueltas.
Se recopilarán muestras aleatorias de conversaciones anteriores en la bandeja de entrada de la página, y se mostrarán en una aplicación Wit recién creada. Las muestras estarán disponibles para etiquetar tu aplicación Wit.ai inmediatamente.
Para añadir el NLP mediante programación, necesitarás:
MESSAGING
en la páginapages_messaging
y pages_manage_metadata
Envía una solicitud POST
al extremo /PAGE-ID/nlp_configs
con el parámetro nlp_enabled
configurado en true
para activar el NLP para la página. También puedes incluir el parámetro model
para configurar un idioma distinto del predeterminado, que es el inglés.
Consulta la referencia del NLP de la página para obtener más información.
curl -i -X POST "https://graph.facebook.com/v21.0
/me/nlp_configs
?nlp_enabled=true
&model=PORTUGUESE
&access_token=PAGE-ACCESS-TOKEN"
Puedes utilizar el parámetro custom_token
para usar la aplicación Wit.ai personalizada y actualizar los parámetros del NLP con solicitudes POST
. Para desactivar el NLP, envía una solicitud POST
con el parámetro nlp_enabled
configurado en false
.
El webhook de mensaje ahora contiene dos campos NLP cuando el NLP integrado está activado: nlp
y nlpv2
. El campo nlp
es un campo heredado que utiliza una convención de denominación obsoleta para los nombres de entidades y características. El campo nlpv2
utiliza nombres simplificados para entidades y características, como se muestra a continuación.
El campo nlp
se retirará el 18 de junio de 2024.
Si el NLP integrado está activado, las entidades y características pertinentes del NLP se incluirán en la notificación de webhooks message
para cada objeto de mensaje.
La plataforma de Messenger devuelve las siguientes entidades de forma predeterminada.
Información | Entidad |
---|---|
Cantidad de dinero |
|
Fecha/hora |
|
Distancia |
|
Duración |
|
Dirección de correo electrónico |
|
Ubicación |
|
Número de teléfono |
|
Cantidad |
|
Temperatura |
|
URL |
|
Volumen |
|
La plataforma de Messenger devuelve las siguientes características de forma predeterminada.
Información | Característica |
---|---|
Adiós (solo inglés) |
|
Saludos (solo inglés) |
|
Percepción |
|
Gracias (solo inglés) |
|
Consulta nuestra documentación en Wit.ia para obtener más información sobre entidades y características disponibles, así como otra información.
El siguiente ejemplo es para un mensaje con la frase “nos vemos mañana a las 16:00” e incluiría las entidades datetime
y sentiment
después del análisis:
{...,
"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
}
]
}
En los webhooks messages
, puedes responder a un mensaje utilizando el NLP predeterminado. Por ejemplo, si tienes una función handleMessage()
que responde a cada mensaje recibido, podrás utilizar la entidad greetings
para enviar una respuesta adecuada:
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
}
}