자연어 처리(NLP)를 사용하면 비즈니스로 수신되는 메시지에서 유의미한 정보(날짜, 시간 등)를 파악하고 추출할 수 있습니다. 이 정보를 사용하여 대화에 필요한 메시지 경험을 구현하기 위한 인텐트를 식별할 수 있습니다.
Meta에 내장된 NLP를 사용하면 메시지 사용 제한에 반영되는 API 호출 수를 줄일 수 있습니다.
메시지가 비즈니스로 전달되기 전에, Meta에 내장된 NLP가 먼저 메시지를 파싱하여 의미를 탐지하고 Meta의 Wit.ai를 사용하여 정보를 추출하도록 지원하며, 파서가 정확할 확률을 나타내는 신뢰도 수준을 제공합니다. 그런 다음 메시지는 메시지에서 탐지된 유의미한 정보, 엔터티 및 특성과 함께 평소와 같이 비즈니스로 전달됩니다. 예를 들어 메시지에 '안녕하세요, 내일 오후 2시'와 같은 문구가 있을 경우 인사를 포함하는 특성과 실제 타임스탬프를 포함하는 엔터티를 받게 됩니다.
내장된 NLP를 통해 언어 식별이 자동으로 활성화되어 있으며, 사용자 프로필의 로캘에 따라 날짜와 시간이 자동으로 현지화됩니다.
Wit.ai는 메시지를 파싱하고 사용자의 메시지에서 엔터티를 생성하는 앱입니다. 지원되는 언어에 기본 Wit.ai를 사용하거나 지원하고자 하는 각 언어에 대해 고유한 Wit.ai 앱을 만들 수 있습니다. Messenger 플랫폼이 메시지를 수신하면 먼저 상위 탐지 언어를 찾아서 관련 Wit.ai 앱으로 엔터티를 추출합니다. 상위 탐지 언어에 연결된 Wit.ai 앱이 없을 경우 기본 언어 모델을 사용합니다.
Wit.ai 앱, 맞춤 Wit.ai 앱 만들기 및 테스트 에 대한 자세한 내용과 지원되는 언어 리스트는 Wit.ai 문서를 참조하세요.
비즈니스 페이지에 NLP를 추가하는 방법은 Meta 앱 대시보드를 사용하는 것과 프로그래밍 방식, 두 가지가 있습니다.
앱 대시보드 를 사용하여 내장된 NLP를 추가하려면 제품에서 Messenger > 설정으로 이동하고 아래로 스크롤하여 내장된 NLP 섹션으로 이동합니다. Facebook 페이지를 드롭다운 메뉴에서 선택하고 ON으로 전환합니다. 그런 다음 여러 언어를 추가하는 옵션이 포함되어 있는 언어 모델을 선택합니다. 고급 설정에서는 NLP 버전, 엔터티에 대한 자세한 설명을 얻기 위한 자세한 설명 플래그, 수신하고자 하는 각 인텐트 및 특성에 대한 n-최적 값을 선택할 수 있습니다. 여기에서 반환되는 탐지 로캘 수도 설정합니다.
페이지의 받은 메시지함에 있는 이전 대화의 임의 샘플이 컴파일되고 새로 만든 Wit 앱에 표시됩니다. 샘플은 Wit.ai 앱에서 태그하는 데 즉시 사용할 수 있습니다.
NLP를 프로그래밍 방식으로 추가하려면 다음 항목이 필요합니다.
MESSAGING
작업을 수행할 수 있는 사용자가 요청한 페이지 액세스 토큰pages_messaging
및 pages_manage_metadata
권한 /PAGE-ID/nlp_configs
엔드포인트로 POST
요청을 보냅니다. 이때 nlp_enabled
매개변수를 true
로 설정하여 페이지에 NLP를 활성화합니다. 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 앱을 사용하고 POST
요청으로 NLP 매개변수를 업데이트할 수 있습니다. NLP를 비활성화하려면 nlp_enabled
매개변수를 false
로 설정한 POST
요청을 보냅니다.
이제 메시지 Webhooks에 내장 NLP이 활성화되어 있으면 두 개의 NLP 필드가 포함됩니다(nlp
및 nlpv2
). nlp
필드는 엔터티와 특성 이름에 사용 중단된 이름 지정 규칙을 사용하는 레거시 필드입니다. nlpv2
필드는 아래와 같이 엔터티 및 특성에 단순화된 이름을 사용합니다.
nlp
필드는 2024년 6월 18일에 삭제됩니다.
내장된 NLP가 활성화된 경우, 각 메시지 개체에 대해 관련 NLP 엔터티와 특성이 message
Webhooks 알림에 포함됩니다.
Messenger 플랫폼은 기본적으로 다음 엔터티를 반환합니다.
정보 | 엔터티 |
---|---|
금액 |
|
날짜/시간 |
|
거리 |
|
기간 |
|
이메일 주소 |
|
위치 |
|
전화번호 |
|
수량 |
|
온도 |
|
URL |
|
볼륨 |
|
Messenger 플랫폼은 기본적으로 다음 특성을 반환합니다.
정보 | 특성 |
---|---|
끝인사(영어로만 지원) |
|
인사말(영어로만 지원) |
|
반응 |
|
감사 인사(영어로만 지원) |
|
사용 가능한 엔터티, 특성 등에 대한 자세한 내용은 Wit.ia 문서 를 참조하세요.
다음 예시는 '내일 오후 4시에 보자'라는 문구를 포함하고 파싱 후에는 wit$datetime
및 wit$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
}
]
}
messages
Webhooks에서 기본 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
}
}