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á, 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