Procesamiento de lenguajes naturales para la plataforma de Messenger

El procesamiento de lenguajes naturales (NLP) te permite extraer y comprender elementos de información significativa de los mensajes que tu empresa recibe (entre otros, fechas y horas). Puedes usar esta información para identificar la intención de implementar la experiencia de mensajes necesaria para la conversación.

Mediante el NLP integrado de Meta, se reducen las llamadas a la API que cuentan para los límites de frecuencia de mensajes.

Cómo funciona

Antes de la entrega de un mensaje a tu empresa, el NLP integrado de Meta lo analiza para detectar significado y extraer información usando Wit.ai de Meta, además de un nivel de confianza que indica la probabilidad de que el analizador acierte. A continuación, el mensaje se transmite a tu empresa de la forma habitual, junto con cualquier información significativa, entidades y características detectadas en el mensaje. Por ejemplo, si un mensaje contiene una frase como “hola, mañana a las 2 p. m.”, obtienes una característica que incluye el saludo y una entidad con la marca de tiempo real.

La identificación de idiomas se habilita de forma automática con el NLP integrado, y la fecha y hora se localizan de forma automática según la configuración regional del perfil de la persona.

Wit.ai

Wit.ai es la app que analiza el mensaje y crea las entidades a partir del mensaje de una persona. Puedes usar la app Wit.ai predeterminada para los idiomas admitidos o crear tu propia app Wit.ai para cada idioma que desees admitir. Cuando la plataforma de Messenger recibe un mensaje, primero recupera el idioma detectado principal y usa la app Wit.ai asociada para extraer las entidades. Si no hay una app Wit.ai vinculada al idioma detectado principal, se usará el modelo de idioma predeterminado.

Consulta nuestra documentación de Wit.ai para obtener más información sobre las apps de Wit.ai y para crear y probar tu propia app Wit.ai personalizada, además de una lista de idiomas admitidos .

Agregar el NLP a tu página

Existen dos maneras de agregar el NLP a la página de tu empresa: con el panel de la app Meta o mediante programación.

Panel de apps

Para agregar el NLP integrado usando el panel de apps , en Productos dirígete a Messenger > Configuración y desplázate hacia abajo hasta la sección NLP integrado. Selecciona la página de Facebook en el menú desplegable y marca ACTIVAR. Luego, selecciona el modelo de idioma, que incluye una opción para agregar varios idiomas. La configuración avanzada te permite seleccionar la versión del NLP, el indicador detallado para obtener más información sobre entidades, y valores n-best para cada intención y característica que desees recibir. Esta configuración también determina el número de configuraciones regionales devueltas.

Los ejemplos aleatorios de las conversaciones pasadas en la bandeja de entrada de la página se compilarán y aparecerán en una aplicación Wit.ai recién creada. Los ejemplos estarán disponibles de inmediato para el etiquetado en la aplicación Wit.ai.

Método que incluye programación

Para agregar el NLP mediante programación, necesitarás lo siguiente:

  • Un token 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 punto de conexión /PAGE-ID/nlp_configs con el parámetro nlp_enabled fijado en true para habilitar el NLP para la página. También puedes incluir el parámetro model para establecer un idioma que no sea el predeterminado (inglés).

Consulta la referencia del NLP de página para obtener más información.

Ejemplo de solicitud

El formato se modificó para facilitar la lectura.
curl -i -X POST "https://graph.facebook.com/LATEST-GRAPH-API-VERSION/me/nlp_configs
      ?nlp_enabled=true
      &model=PORTUGUESE 
      &access_token=PAGE-ACCESS-TOKEN"

Puedes aplicar el parámetro custom_token para usar tu app Wit.ai personalizada y actualizar los parámetros de NLP con solicitudes POST. Para deshabilitar el NLP, envía una solicitud POST con el parámetro nlp_enabled fijado en false.

Notificación de webhooks

Si el NLP integrado está habilitado, las entidades y características de NLP pertinentes se incluirán en la notificación de webhooks message para cada objeto de mensaje.

Entidades y características

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

InformaciónEntidad

Cantidad de dinero

wit$amount_of_money:amount_of_money

Fecha y hora

wit$datetime:$datetime

Distancia

wit$distance:distance

Duración

wit$duration:duration

Dirección de correo electrónico

wit$email:email

Ubicación

wit$location:location

Número de teléfono

wit$phone_number:phone_number

Cantidad

wit$quantity:quantity

Temperatura

wit$temperature:temperature

URL

wit$url:url

Volumen

wit$volume:volume

Características integradas

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

InformaciónCaracterística

Despedida (solo en inglés)

wit$bye

Saludo (solo en inglés)

wit$greetings

Percepción

wit$sentiment

Agradecimiento (solo en inglés)

wit$thanks

Consulta la documentación de Wit.ia para obtener más información sobre entidades, características y otros aspectos disponibles.

Ejemplo de notificación

El siguiente ejemplo corresponde a un mensaje que incluye la frase “nos vemos mañana a las 4 p. m.” e incluiría las entidades wit$datetime y wit$sentiment después del análisis:

{...,
  "entities": {
    "wit$datetime:datetime": [
      {
        "id": "340464963587159",
        "name": "wit$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": {
    "wit$sentiment": [
      {
        "id": "5ac2b50a-44e4-466e-9d49-bad6bd40092c",
        "value": "neutral",
        "confidence": 0.6162
      }
    ]
  }

Analizar un mensaje de NLP

En tus webhooks messages, puedes responder a un mensaje haciendo uso del NLP predeterminado. Por ejemplo, si tienes una función handleMessage() que responde a cada mensaje que se recibe, puedes usar 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, 'wit$greetings');
  if (greeting && greeting.confidence > 0.8) {
    sendResponse('Hi there!');
  } else { 
    // default logic
  }
}