NLU Integrations

Learn more about natural language understanding (NLU) services that can be integrated with Jovo.

Introduction

Natural language understanding (in short, NLU) is the process of turning raw text into structured meaning. It is part of the interpretation step of the RIDR lifecycle.

Jovo offers integrations with a variety of NLU services that can either be self-hosted or accessed via an API. You can find all the current integrations here.

NLU integrations are helpful for platforms that deal with raw text. The integration then writes the results into an nlu object that is part of the $input property:

{
  type: 'TEXT',
  text: 'My name is Max',
  nlu: {
    intent: 'MyNameIsIntent',
    entities: {
      name: {
        value: 'Max',
      },
    },
  },
}

Integrations

Currently, the following integrations are available with Jovo v4:

Configuration

An NLU integration needs to be added as a platform plugin in the app configuration. Here is an example how it could look like in the app.ts file:

import { CorePlatform } from '@jovotech/platform-core';
import { NlpjsNlu } from '@jovotech/nlu-nlpjs';

// ...

const app = new App({
  plugins: [
    new CorePlatform({
      plugins: [new NlpjsNlu()],
    }),
    // ...
  ],
});

Along with integration specific options (which can be found in each integration's documentation), there are also features that are configured the same way across all NLU integrations.

The default configuration for each NLU integration is:

new NlpjsNlu({
  // ...
  input: {
    supportedTypes: ['TEXT', 'TRANSCRIBED_SPEECH', 'SPEECH'],
  }
}),

The input config property determines how the NLU integration should react to certain properties. supportedTypes include all input types for which the NLU integration should run.