1
resposta

Watson retornando sempre a mensagem inicial de Olá

//watson, eu quero usar a sua API
//requerimento para essa API
var assistantV1 = require('watson-developer-cloud/assistant/v1');
var prompt = require('prompt-sync')();

//vou te passar o que você precisa acessar
//nome de usuário, senha, workspace, data de versão
var assistant = new assistantV1({
    username:'apikey',
    password:'',
    version:'2020-04-01'
});

var params = {
    workspace_id:'7d75c690-1534-46fc-b05e-927d0de16501'
};

//vou mandar uma mensagem para receber a mensagem de boas vindas
assistant.message(params, processarResposta);

//o que é essa resposta, quero ver essa resposta
function processarResposta(error, response){
    if (error) {
        console.error(error);
    } 
    if (response.output.text != 0){
        console.log(response.output.text[0]);
    }

    var novaMensagemUsuario = prompt('>> ');
    var params = {
        workspace_id:'7d75c690-1534-46fc-b05e-927d0de16501',
        input: { input:{'text': novaMensagemUsuario}}
    }
    assistant.message(params, processarResposta);

};

Estou com um problema nessa aula. Ao executar o código recebo sempre a mesma resposta do watson assistant, independente do que eu digito: "Seja bem vindo ao chat da AluraPhone. Como posso ajudar?" Ao testar diretamente no watson isso não acontece, recebo a resposta de acordo com a intenção.

1 resposta

Oiii Bruna, como você está?

Peço desculpas pela demora em obter um retorno.

Desde a data de lançamento deste curso até a data atual (05/01/2022), a ferramenta da IBM Watson passou por uma série de modificações, tanto no layout da plataforma, quanto no acesso a API.

Atualmente o código para acesso via Node não contém os parâmetros username e password, os parâmetros atuais são apikey e assistantId. O código completo com as modificações pode ser visto abaixo:

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

const service = new AssistantV2({
    version: '2019-02-28',
    authenticator: new IamAuthenticator({
        apikey: 'SUA_API_KEY',
    })
});

const assistantId = 'SUA_CHAVE_DE_ASSISTANT_ID';

service
    .createSession({
        assistantId,
    })
    .then(res => {
        sessionId = res.result.session_id;
        sendMessage({
            messageType: 'text',
            text: 'Eu queria ajuda para comprar um celular',
        });
    })
    .catch(err => {
        console.log(err);
    });

function sendMessage(messageInput) {
    service
        .message({
            assistantId,
            sessionId,
            input: messageInput
        })
        .then(res => {
            processResponse(res.result);
        })
        .catch(err => {
            console.log(err);
        });
}

function processResponse(response) {
    if (response.output.generic) {
        if (response.output.generic.length > 0) {
            if (response.output.generic[0].response_type === 'text') {
                console.log(response.output.generic[0].text);
            }
        }
    }
    service
        .deleteSession({
            assistantId,
            sessionId,
        })
        .catch(err => {
            console.log(err);
        });
}

Para obter essas credenciais é necessário acessar o painel de Assistants e clicar no ícone de três pontinhos no canto direito da tela e selecionar a opção settings:

Imagem com fundo branco, que mostra a tela que contém todos os assistentes criados. Nesta tela, há uma seta apontando para o canto direito, onde possui o ícone de três pontinhos evidenciando a opção settings, que deverá ser clicada

Após isso será apresentado uma tela com as credenciais de acesso, como mostro abaixo:

Tela com o fundo branco, que mostra os detalhes de acesso da API, que contém: Assistant name, Assistant ID, Assistant URL, Credentials name e API key

Para este procedimento, utilizei a versão 6.2.1 da biblioteca ibm-watson. Para instalá-la, digite:

npm install ibm-watson@^6.2.1

Vale salientar que atualmente o curso Chatbot parte 2: Avançando e integrando o bot não faz parte da nossa grade oficial de cursos, mas está no radar uma atualização futura.

Espero ter ajudado.

Qualquer dúvida fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software