Технология обработки естественного языка (NLP) позволяет понимать и извлекать важную информацию (даты, время и многое другое) из сообщений, которые получает ваша компания. Эта информация может помочь идентифицировать намерения, чтобы реализовать тот способ общения, который необходим для переписки.
Использование предлагаемой Meta встроенной технологии NLP сокращает число вызовов API, которые засчитываются в ограничения, установленные для количества сообщений.
Перед доставкой сообщения вашей компании встроенная технология Meta NLP сначала анализирует это сообщение, чтобы определить его смысл и извлечь информацию с использованием приложения Wit.ai, разработанного компанией Meta, а также чтобы установить, насколько правильным является этот анализ. Затем сообщение пересылается вашей компании в обычном режиме вместе со всей полезной информацией, объектами и признаками, обнаруженными в этом сообщении. Например, если сообщение содержит фразу "привет, завтра в 2 часа", вы получите признак, который включает в себя приветствие, и объект, содержащий фактическую метку времени.
Определение языка автоматически активируется встроенной технологией NLP, а дата и время также автоматически локализуются в зависимости от языка в профиле человека.
Wit.ai — это приложение, которое анализирует сообщение и на его основе создает объекты. Вы можете использовать приложение Wit.ai, по умолчанию предлагаемое для поддерживаемых языков, или создать свою версию для каждого языка, который необходимо поддерживать. Когда платформа Messenger получает сообщение, она сначала находит основной обнаруженный язык, а затем использует связанное приложение Wit.ai для извлечения объектов. Если для основного обнаруженного языка нет связанного приложения Wit.ai, будет использована языковая модель по умолчанию.
Ознакомьтесь с нашей документацией по Wit.ai, чтобы получить подробную информацию о приложениях Wit.ai и о создании и тестировании собственных настроенных приложений Wit.ai , а также чтобы просмотреть список поддерживаемых языков .
Добавить технологию NLP на Страницу вашей компании можно двумя способами: с использованием панели приложений Meta или программным способом.
Чтобы добавить встроенную технологию NLP с использованием панели приложений , в разделе Продукты перейдите в Messenger > Настройки и прокрутите вниз до раздела Встроенный NLP. В раскрывающемся меню выберите Страницу Facebook и переведите ее во активное положение. Затем выберите языковую модель, в которую включена возможность добавления нескольких языков. Расширенные настройки позволяют выбрать версию NLP, установить флаг подробного режима для получения дополнительной информации об объектах, а также значения n-лучших для каждого намерения и признака, которые вы хотите получать. Эта настройка также определяет возвращаемое количество обнаруженных языков.
После этого будут собраны случайные образцы из прошлых переписок в папке "Входящие" и появится новое приложение Wit. Образцы можно будет сразу отметить в приложении Wit.ai.
Чтобы добавить технологию NLP программным способом, вам понадобятся:
MESSAGING
на этой Странице;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
.
Если встроенная технология NLP включена, Webhooks сообщений теперь содержат два поля NLP: nlp
и nlpv2
. Поле nlp
— это устаревшее поле, в котором используется устаревшее соглашение об именовании для имен объектов и признаков. В поле nlpv2
используются упрощенные имена объектов и признаков, перечисленные ниже.
Поле nlp
будет удалено 18 июня 2024 г.
Если встроенная технология NLP включена, соответствующие объекты и признаки NLP будут добавляться в уведомления Webhooks message
для каждого объекта сообщения.
По умолчанию платформа Messenger возвращает следующие объекты.
Информация | Объект |
---|---|
Денежная сумма |
|
Дата и время |
|
Расстояние |
|
Продолжительность |
|
Электронный адрес |
|
Местоположение |
|
Номер телефона |
|
Количество |
|
Температура |
|
URL |
|
Объем |
|
По умолчанию платформа Messenger возвращает следующие признаки.
Информация | Признак |
---|---|
Прощание (только на английском) |
|
Приветствие (только на английском) |
|
Настроение |
|
Благодарность (только на английском) |
|
Чтобы узнать больше о доступных объектах, признаках и не только, ознакомьтесь с нашей документацией по 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
}
]
}
В своем 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
}
}