Обработка естественного языка для платформы Messenger

Технология обработки естественного языка (NLP) позволяет понимать и извлекать важную информацию (даты, время и многое другое) из сообщений, которые получает ваша компания. Эта информация может помочь идентифицировать намерения, чтобы реализовать тот способ общения, который необходим для переписки.

Использование предлагаемой Meta встроенной технологии NLP сокращает число вызовов API, которые засчитываются в ограничения, установленные для количества сообщений.

Принцип работы

Перед доставкой сообщения вашей компании встроенная технология Meta NLP сначала анализирует это сообщение, чтобы определить его смысл и извлечь информацию с использованием приложения Wit.ai, разработанного компанией Meta, а также чтобы установить, насколько правильным является этот анализ. Затем сообщение пересылается вашей компании в обычном режиме вместе со всей полезной информацией, объектами и признаками, обнаруженными в этом сообщении. Например, если сообщение содержит фразу "привет, завтра в 2 часа", вы получите признак, который включает в себя приветствие, и объект, содержащий фактическую метку времени.

Определение языка автоматически активируется встроенной технологией NLP, а дата и время также автоматически локализуются в зависимости от языка в профиле человека.

Wit.ai

Wit.ai — это приложение, которое анализирует сообщение и на его основе создает объекты. Вы можете использовать приложение Wit.ai, по умолчанию предлагаемое для поддерживаемых языков, или создать свою версию для каждого языка, который необходимо поддерживать. Когда платформа Messenger получает сообщение, она сначала находит основной обнаруженный язык, а затем использует связанное приложение Wit.ai для извлечения объектов. Если для основного обнаруженного языка нет связанного приложения Wit.ai, будет использована языковая модель по умолчанию.

Ознакомьтесь с нашей документацией по Wit.ai, чтобы получить подробную информацию о приложениях Wit.ai и о создании и тестировании собственных настроенных приложений Wit.ai , а также чтобы просмотреть список поддерживаемых языков .

Добавление технологии NLP на вашу Страницу

Добавить технологию NLP на Страницу вашей компании можно двумя способами: с использованием панели приложений Meta или программным способом.

Панель приложений

Чтобы добавить встроенную технологию NLP с использованием панели приложений , в разделе Продукты перейдите в Messenger > Настройки и прокрутите вниз до раздела Встроенный NLP. В раскрывающемся меню выберите Страницу Facebook и переведите ее во активное положение. Затем выберите языковую модель, в которую включена возможность добавления нескольких языков. Расширенные настройки позволяют выбрать версию NLP, установить флаг подробного режима для получения дополнительной информации об объектах, а также значения n-лучших для каждого намерения и признака, которые вы хотите получать. Эта настройка также определяет возвращаемое количество обнаруженных языков.

После этого будут собраны случайные образцы из прошлых переписок в папке "Входящие" и появится новое приложение Wit. Образцы можно будет сразу отметить в приложении Wit.ai.

Программный способ

Чтобы добавить технологию NLP программным способом, вам понадобятся:

  • маркер доступа к Странице, запрошенный у пользователя, который может выполнять MESSAGING на этой Странице;
  • ID Страницы;
  • разрешения pages_messaging и pages_manage_metadata

Чтобы активировать технологию NLP для страницы, отправьте запрос POST к конечной точке /PAGE-ID/nlp_configs, в котором для параметра nlp_enabled установлено значение true. Вы также можете включить параметр model, чтобы установить язык, отличный от английского, который используется по умолчанию.

Дополнительную информацию см. в справке по NLP для Страницы .

Пример запроса

Для удобства чтения применено форматирование.
curl -i -X POST "https://graph.facebook.com/v21.0/me/nlp_configs
      ?nlp_enabled=true
      &model=PORTUGUESE 
      &access_token=PAGE-ACCESS-TOKEN"

Вы можете задействовать параметр custom_token, чтобы использовать собственное приложение Wit.ai и обновить параметры технологии NLP с использованием запросов POST. Чтобы деактивировать технологию NLP, отправьте запрос POST, в котором для параметра nlp_enabled указано значение false.

Уведомление Webhooks

Если встроенная технология NLP включена, Webhooks сообщений теперь содержат два поля NLP: nlp и nlpv2. Поле nlp — это устаревшее поле, в котором используется устаревшее соглашение об именовании для имен объектов и признаков. В поле nlpv2 используются упрощенные имена объектов и признаков, перечисленные ниже.

Поле nlp будет удалено 18 июня 2024 г.

Если встроенная технология NLP включена, соответствующие объекты и признаки NLP будут добавляться в уведомления Webhooks message для каждого объекта сообщения.

Объекты и признаки

По умолчанию платформа Messenger возвращает следующие объекты.

ИнформацияОбъект

Денежная сумма

amount_of_money

Дата и время

datetime

Расстояние

distance

Продолжительность

duration

Электронный адрес

email

Местоположение

location

Номер телефона

phone_number

Количество

quantity

Температура

temperature

URL

url

Объем

volume

Встроенные признаки

По умолчанию платформа Messenger возвращает следующие признаки.

ИнформацияПризнак

Прощание (только на английском)

bye

Приветствие (только на английском)

greetings

Настроение

sentiment

Благодарность (только на английском)

thanks

Чтобы узнать больше о доступных объектах, признаках и не только, ознакомьтесь с нашей документацией по Wit.ia .

Пример уведомления

В следующем примере представлено сообщение, которое включает в себя фразу "see you tomorrow at 4pm" (увидимся завтра в 16:00) и после анализа может содержать объекты datetime и sentiment:

{...,
  "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
      }
    ]
  }

Анализ сообщения NLP

В своем Webhooks messages вы можете ответить на сообщение, воспользовавшись NLP по умолчанию. Например, если у вас есть функция handleMessage(), которая отвечает на каждое полученное сообщение, с помощью объекта greetings вы сможете отправить соответствующий ответ:

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