Elaborazione del linguaggio naturale per la Piattaforma Messenger

L'elaborazione del linguaggio naturale (NLP) ti consente di comprendere ed estrarre informazioni preziose (data, ora e altro) dai messaggi ricevuti dalla tua attività. Puoi usare queste informazioni per identificare l'intenzione di implementare l'esperienza di messaggistica necessaria alla conversazione.

Usare l'NLP integrata di Meta riduce le chiamate API che vengono conteggiate nel rate limiting dei messaggi.

Come funziona

Innanzitutto, prima che un messaggio venga consegnato alla tua attività, l'NLP integrata di Meta lo analizza per individuarne il significato ed estrarre informazioni usando Wit.ai di Meta e per determinare un livello di sicurezza che indica l'attendibilità dei risultati del parser. Il messaggio viene poi normalmente trasmesso alla tua attività, insieme ad altre utili informazioni, entità e caratteristiche rilevate nel messaggio. Ad esempio, se un messaggio contiene la frase "Ciao, domani alle 14:00", riceverai una caratteristica che include il saluto e un'entità che include l'indicazione temporale.

L'identificazione della lingua viene abilitata automaticamente dall'NLP integrata, mentre data e ora sono localizzate automaticamente in base alla lingua del profilo dell'utente.

Wit.ai

Wit.ai è l'app che analizza il messaggio e lo usa come base per creare le entità. Puoi usare l'app Wit.ai predefinita per le lingue supportate o creare la tua app Wit.ai per ogni lingua che intendi supportare. Quando la Piattaforma Messenger riceve un messaggio, individuerà innanzitutto la lingua rilevata e userà l'app Wit.ai associata per estrarre le entità. Se nessuna app Wit.ai è collegata alla lingua rilevata, verrà usato il modello di lingua predefinito.

Consulta la nostra documentazione Wit.ai per ulteriori informazioni su App Wit.ai e creazione e test di un'app Wit.ai personalizzata oltre alla lista di lingue supportate .

Aggiungi l'NLP alla tua pagina

Puoi aggiungere l'NLP alla tua pagina aziendale usando la Dashboard gestione app di Meta o in modo programmatico.

Dashboard gestione app

Per aggiungere l'NLP integrata usando la Dashboard gestione app , alla voce Prodotti accedi a Messenger > Impostazioni e scorri fino alla sezione NLP integrata. Seleziona la pagina Facebook dal menu a discesa e imposta . Poi seleziona il Modello di lingua, che offre la possibilità di aggiungere più lingue. Le Impostazioni avanzate ti permettono di selezionare la versione NLP e il flag verbose per ottenere altre informazioni sulle entità, oltre ai valori n-best per ogni intenzione e caratteristica che vuoi ricevere. Questa impostazione determina inoltre il numero di lingue restituite.

Vengono compilati esempi casuali delle tue conversazioni precedenti nella Posta della Pagina, visualizzati nell'app Wit appena creata. Gli esempi sono immediatamente disponibili per i tag nella tua app Wit.ai.

In modo programmatico

Per aggiungere l'NLP in modo programmatico, avrai bisogno di:

  • Token d'accesso della Pagina richiesto da un utente che può eseguire l'attività MESSAGING sulla Pagina
  • ID Pagina
  • Autorizzazioni pages_messaging e pages_manage_metadata

Invia una richiesta POST all'endpoint /PAGE-ID/nlp_configs con il parametro nlp_enabled impostato su true per abilitare l'NLP per la Pagina. Puoi anche includere il parametro model per impostare una lingua diversa da quella predefinita (inglese).

Visualizza il Riferimento NLP Pagina per ulteriori informazioni.

Esempio di richiesta

Formattato per una maggiore leggibilità.
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"

Puoi usare il parametro custom_token per usare la tua app Wit.ai personalizzata e aggiornare i parametri NLP con le richieste POST. Per disabilitare l'NLP, invia una richiesta POST con il parametro nlp_enabled impostato su false.

Notifica webhook

Se l'NLP integrata è abilitata, le entità e le caratteristiche NLP rilevanti saranno incluse nelle notifiche webhook message per ogni oggetto.

Entità e caratteristiche

La Piattaforma Messenger restituisce le seguenti entità per impostazione predefinita.

InformazioniEntità

Importo

wit$amount_of_money:amount_of_money

Data/Ora

wit$datetime:$datetime

Distanza

wit$distance:distance

Durata

wit$duration:duration

Indirizzo e-mail

wit$email:email

Posizione

wit$location:location

Numero di telefono

wit$phone_number:phone_number

Quantità

wit$quantity:quantity

Temperatura

wit$temperature:temperature

URL

wit$url:url

Volume

wit$volume:volume

Caratteristiche integrate

La Piattaforma Messenger restituisce le seguenti caratteristiche per impostazione predefinita.

InformazioniCaratteristica

Saluti finali (solo inglese)

wit$bye

Saluti (solo inglese)

wit$greetings

Percezione

wit$sentiment

Ringraziamenti (solo inglese)

wit$thanks

Consulta la documentazione Wit.ia per scoprire di più su entità e caratteristiche disponibili, e altro ancora.

Notifica di esempio

L'esempio di seguito riguarda un messaggio che include la frase "Ci vediamo domani alle 16:00" e includerà le entità wit$datetime e wit$sentiment dopo l'analisi:

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

Analizza un messaggio NLP

Nei tuoi webhook messages, puoi rispondere a un messaggio sfruttando l'NLP predefinita. Ad esempio, se il tuo webhook presenta una funzione handleMessage() per la risposta a ciascun messaggio ricevuto, puoi usare l'entità greetings per inviare una risposta appropriata:

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