Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro ao enviar pergunta para o chatBot

Olá, tudo bem? estou com dificuldades em enviar perguntas ao chatBot. Ele está me retornando um alerta de erro e quando fecho o chat fica digitando em um loading infinito e não envia nenhuma resposta.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Olá Gisele, tudo bem?

Pelo que você descreveu e as imagens que você compartilhou, parece que o problema está relacionado a um erro de referência no seu código. O alerta que você está recebendo indica um ReferenceError: response is not defined, o que significa que a variável response não está sendo reconhecida em algum ponto do seu código.

Vamos verificar alguns pontos que podem estar causando esse problema:

1. Verifique o código do endpoint /chat arquivo "app.js" que está na raiz do projeto: Certifique-se de que a função executaChat está corretamente importada e definida. Além disso, verifique se o retorno da função executaChat está sendo corretamente atribuído à variável response. É o arquivo "app.js" que está na raiz do projeto.

app.post('/chat', async (req, res) => {
  try {
    const mensagem = req.body?.mensagem;
    console.log('Mensagem do usuário', mensagem)

    if (!mensagem) {
      return res.status(400).json({ error: 'Erro no corpo da requisição' });
    }
    const response = await executaChat(mensagem);
    res.json({ response });

  } catch (error) {
    console.error('Error no endpoint do chat:', error);
    res.status(500).json({ error: 'Internal Server Error' });
  }
});

2. Verifique a função executaChat arquivo "chat.js": Certifique-se de que a função executaChat está retornando um valor válido. Caso contrário, a variável response pode estar indefinida.

  export async function executaChat(mensagem) {
  const model = genAI.getGenerativeModel({ model: "gemini-1.0-pro"});

  const chat = model.startChat({
    history: [
      {
        role: "user",
        parts: [{ text: "Você é Jordi, um chatbot amigável que representa a empresa Jornada Viagens. Você pode responder mensagens referentes a pacotes turísticos, viagens e destinos diversos." }],
      },
      {
        role: "model",
        parts: [{ text: "Olá! Obrigado por entrar em contato com o Jornada Viagens. Antes de responder suas dúvidas, pode me informar seu nome?" }],
      },
    ],
    generationConfig: {
      maxOutputTokens: 1000,
    },
  });

  const result = await chat.sendMessage(mensagem);
  const response = await result.response;
  return response.text();
}

3. Verifique o código do front-end, arquivo "app.js" que está na pasta "js": Certifique-se de que o front-end está enviando a mensagem corretamente para o endpoint /chat e está lidando com a resposta de forma adequada.

  async function enviarMensagem() {
  if (input.value == "" || input.value == null) return;

  const mensagem = input.value;
  input.value = "";

  try {
    const response = await fetch("http://localhost:3000/chat", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ mensagem: mensagem }),
    });

    const novaBolha = criaBolhaUsuario();
    novaBolha.innerHTML = mensagem;
    chat.appendChild(novaBolha);

    let novaBolhaBot = criaBolhaBot();
    chat.appendChild(novaBolhaBot);
    vaiParaFinalDoChat();

    const resposta  = await response.json();
    novaBolhaBot.innerHTML = resposta.response;
    vaiParaFinalDoChat();

  } catch (error) {
    alert(error);
  }
}

Qualquer coisa compartilha os seus códigos aqui com a gente. Você pode colar eles aqui mesmo sem ser print, assim conseguimos testar.

Espero ter ajudado e bons estudos!

Olá, Renan. Consegui arrumar o projeto graças a sua ajuda. Muito obrigada :D