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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.

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