# Class: Nlu

## Nlu(intents)

封装DuerOS 对query的解析结果 只有IntentRequest 才有Nlu结构

## Constructor

#### new Nlu(intents)

构造函数

##### Parameters:

Name | Type | Description
--- | --- | ---
`intents` | array | IntentRequest 中的intents

Source:
  - Nlu.js, line 26

### Members

#### _directive

记录返回的指令

Source:
  - Nlu.js, line 40

### Methods

#### ask(slot) → {null}

Bot主动发起对一个槽位的询问。比如：打车时询问用户目的地

##### Parameters:

Name | Type | Description
--- | --- | ---
`slot` | string | 槽位名

Source:
  - Nlu.js, line 124

##### Returns:

Type
  null

##### Example

    this.ask('destination');

#### getIntentConfirmationStatus()

获取一个intent对应的confirmationStatus

Source:
  - Nlu.js, line 240

##### Returns:

{string 意图的confirmationStatus

#### getIntentName() → {string|null}

获取DuerOS请求中的意图名

Source:
  - Nlu.js, line 99

##### Returns:

Type
  string | null

#### getSlot(field, index) → {null|string}

通过槽位名获取一个槽位的值

##### Parameters:

Name | Type | Default | Description
--- | --- | --- | ---
`field` | string |  | 槽位名
`index` | Integer | 0 | 第几个intent，默认第一个

Source:
  - Nlu.js, line 80

##### Returns:

Type
  null | string

#### getSlotConfirmationStatus(field) → {string}

获取一个slot对应的confirmationStatus

##### Parameters:

Name | Type | Description
--- | --- | ---
`field` | string | 槽位名

Source:
  - Nlu.js, line 226

##### Returns:

槽位的confirmationStatus

Type
  string

#### hasAsked() → {Boolean}

Bot是否在询问用户，等待用户的回复

Source:
  - Nlu.js, line 110

##### Returns:

Type
  Boolean

#### setConfirmIntent()

主动发起对一个意图的确认，此时还需同时返回询问的outputSpeach。 主动发起的确认，DM不会使用默认配置的话术。 一般当槽位填槽完毕，在进行下一步操作之前，一次性的询问各个槽位，是否符合用户预期。

Source:
  - Nlu.js, line 213

##### Example

    this.setConfirmIntent();

#### setConfirmSlot(field)

主动发起对一个槽位的确认，此时还需同时返回询问的outputSpeach。 主动发起的确认，DM不会使用默认配置的话术。

##### Parameters:

Name | Type | Description
--- | --- | ---
`field` | string | 槽位名

Source:
  - Nlu.js, line 187

##### Example

    this.setConfirmSlot('destination');

#### setDelegate()

设置将对话的处理代理给Dialog Management(DM)。 按事先配置的顺序，包括对缺失槽位的询问，槽位值的确认（如果设置了槽位需要确认，以及确认的话术） 和整个意图的确认（如果设置了意图需要确认，以及确认的话术。比如可以将收集的槽位依次列出，等待用户确认）

Source:
  - Nlu.js, line 170

#### setSlot(field, value, index)

通过槽位名设置一个槽位的值，如果没有此槽位，新增一个

##### Parameters:

Name | Type | Default | Description
--- | --- | --- | ---
`field` | string |  | 槽位名
`value` | string |  | 值
`index` | Integer | 0 | 第几个intent，默认第一个

Source:
  - Nlu.js, line 51

#### toDirective() → {array}

Source:
  - Nlu.js, line 139

##### Returns:

Type
  array

#### toUpdateIntent() → {Object}

Source:
  - Nlu.js, line 146

##### Returns:

Type
  Object