Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Adicionando prompt sync

Para enviar mensagens para o serviço watson estou usando esse formato de código que peguei da documentação da IBM, pois o da aula não funciona. Mas não estou conseguindo fazer ele rodar quando tento adicionar o prompt sync. Já tentei replicar igual ao que estar no curso criando e colocando o método processarMensagem dentro do assistant.mensagem e o chamando dentro do processarMensagem novamente, mas não dá certo!

Alguém pode me ajudar! :(

OBS: ESSE CÓDIGO FUNCIONA, ele retorna apenas uma mensagem do chatbot

const AssistantV1 = require('ibm-watson/assistant/v1');

const { IamAuthenticator } = require('ibm-watson/auth');

const prompt = require('prompt-sync')();

 const assistant = new AssistantV1({

  version: '2020-04-01',

  authenticator: new IamAuthenticator({
    apikey: 'xxxxxxxxxxxxxxxxxxxxxxxxx',
  }), 

  url: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
}); 

 **assistant.message**
( {

    workspaceId: 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
    input: {'text': ''}
    })

    .then(res => {
      console.log(JSON.stringify(res.result.output.text[0], null, 2));
    })

    .catch(err => {
      console.log(err)
    },);
1 resposta

Oi Gelson, tudo bem? Você poderia me dar um pouco mais de contexto para que eu consiga te ajudar? Não identifiquei se esse assunto é visto em uma aula específica do curso já que o tópico não foi associado a nenhuma aula.

Ele tá te trazendo apenas uma resposta, é isso? Não é por que o seu res.result.output.text está acessando apenas a primeira opção da resposta? Pela documentação, entendi que se trata de um array de respostas e se você usar o valor zero ali, vai capturar apenas a primeira resposta mesmo.

Experimenta remover esse acesso do array, para ver se é o comportamento que você espera.