try {
let resposta;
if (isImage) {
const response = await fetch('https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=AIzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
base64Image: message.replace(/^data:image\/[a-z]+;base64,/, ''),
}),
});
const data = await response.json();
resposta = data.description;
} else {
resposta = await inicializaChat(novoHistorico);
}
const novaMensagemBot = { role: 'bot', text: resposta };
const historicoAtualizado = [...novoHistorico, novaMensagemBot];
setChatHistory(historicoAtualizado);
if (isImage) {
const novaBolhaUsuarioImagem = criaBolhaUsuarioImagem(message);
chatElement.appendChild(novaBolhaUsuarioImagem);
} else {
const novaBolhaUsuario = criaBolhaUsuario(message);
chatElement.appendChild(novaBolhaUsuario);
}
const novaBolhaBot = criaBolhaBot(resposta);
chatElement.appendChild(novaBolhaBot);
vaiParaFinalDoChat();
} catch (error) {
console.log(error, "Erro ao enviar mensagem");
}
};
Estou desenvolvendo um atendimento ao cliente com a Gemini, até o momento está atendendo as espectativas, porém preciso implmentar a funcionalidade de imagens pois os usuários em algum momento vai enviar um print de comprovante e preciso que a ia reconheça e descreva a imagem enviada. Quando faço o envio da imagem ela é exiba no chat a ia da uma resposta aletória pois a requisição de imagem está sendo 400 porvavelmente o payload pode estar errado. Vou deixar algumas informações do erro que estou tendo, estou desenvolvendo em um projeto frontend em next e js.
Payload: base64Image:"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEA"
{ "error": { "code": 400, "message": "Invalid JSON payload received. Unknown name "base64Image": Cannot find field.", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "description": "Invalid JSON payload received. Unknown name "base64Image": Cannot find field." } ] } ] } }