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