> For the complete documentation index, see [llms.txt](https://docs.altu.d1.cx/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.altu.d1.cx/build/assistentes/builder/componentes/actions/set_nlu.md).

# Setar NLU

Dentro do Builder é possível utilizar os `nlus_extras` de dois modos:

#### Input

Ao configurar um input, é possível escolher com qual NLU a resposta do usuário será processada. Caso o `nlu_id` não esteja na lista que aparece na tela de edição do assistente, o NLU padrão será utilizado.

```
    {
        "default": {
            "type": "text_input",
            "payload": {
                "nlu_id": 6

            }
        }
    }


```

#### Action

A action `set_nlu` permite alterar o NLU do assistente, o NLU extra será utilizado em todo o assistente a menos que ocorra um evento de `new_dialog`, reiniciando a conversa.

```
[
    {
        "name": "set_nlu",
            "parameters": {
                "nlu_id": 7
            },
        "result_variable": "set_nlu_response"
    }
]

```

Ao usar essa ação uma nova variável de sistema ficará disponível: `context.system.nlu_id`. A partir desse ponto, qualquer chamada com cognitivo usará esse `nlu_id` para o processamento.

Caso o `nlu_id` (tanto da action quanto do input) não esteja na lista que aparece na tela de edição do assistente, o NLU padrão será utilizado e os retornos e erro estarão disponíveis:

* se o `nlu_id` for diferente de um número: { 'code': 500, 'message': 'nlu\_id is not a number.'}
* se o `nlu_id` usado não estiver na lista de `nlu_extra`: { 'code': 500, 'message': 'There is no nlu with the provided id linked to this assistant.'}

Ao vincular mais de um NLU ao assistente, uma prioridade deverá ser usada. Caso ocorra uma troca de NLU por meio do `set_nlu` a continuação da conversa será com base no NLU definido pela ação. Porém, se houver uma troca no NLU e posteriormente for enviado um input que corresponde a um `nlu_id` diferente, o NLU prioritário será àquele fornecido via input. Portanto, a ordem de prioridade no Builder será: `nlu_id` setada no input **>** `nlu_id` de `context.system.nlu_id` **>** `nlu_id` do NLU padrão

Então, caso você tenha usado a action `set_nlu` e depois tenha um input com nlu\_id diferente, o `nlu_id` usado no input será usado.
