Procesamiento del lenguaje natural para la plataforma de Messenger

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.

Funcionamiento

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

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.

Añadir el NLP a tu página

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.

Panel de aplicaciones

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.

Mediante programación

Para añadir el NLP mediante programación, necesitarás:

  • Un identificador de acceso a la página solicitado por una persona que pueda realizar la tarea MESSAGING en la página
  • El identificador de la página
  • Los permisos pages_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.

Ejemplo de solicitud

Se ha aplicado formato para mejorar la legibilidad.
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.

Notificación de webhooks

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.

Entidades y atributos

La plataforma de Messenger devuelve las siguientes entidades de forma predeterminada.

InformaciónEntidad

Cantidad de dinero

amount_of_money

Fecha/hora

datetime

Distancia

distance

Duración

duration

Dirección de correo electrónico

email

Ubicación

location

Número de teléfono

phone_number

Cantidad

quantity

Temperatura

temperature

URL

url

Volumen

volume

Características integradas

La plataforma de Messenger devuelve las siguientes características de forma predeterminada.

InformaciónCaracterística

Adiós (solo inglés)

bye

Saludos (solo inglés)

greetings

Percepción

sentiment

Gracias (solo inglés)

thanks

Consulta nuestra documentación en Wit.ia para obtener más información sobre entidades y características disponibles, así como otra información.

Notificación de ejemplo

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
      }
    ]
  }

Analizar un mensaje con NLP

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
  }
}