function sendMessage() { const userInput = document.getElementById('userInput'); const chatlog = document.getElementById('chatlog'); const messageText = userInput.value.trim(); if (messageText === '') return; // Tambahkan pesan pengguna ke chatlog const userMessage = document.createElement('div'); userMessage.className = 'chat-message user-message'; userMessage.innerHTML = ` Anda: ${messageText} `; chatlog.appendChild(userMessage); // Tambahkan indikator "sedang mengetik" const typingIndicator = document.createElement('div'); typingIndicator.className = 'chat-message bot-message typing-indicator'; typingIndicator.innerHTML = ` EyeBot: Sedang mengetik... `; chatlog.appendChild(typingIndicator); // Scroll ke bawah chatlog.scrollTop = chatlog.scrollHeight; // Kirim pesan ke server fetch('/predict', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: messageText }) }) .then(response => response.json()) // .then(data => { // // Hapus indikator "sedang mengetik" // chatlog.removeChild(typingIndicator); // // Tambahkan respons bot ke chatlog // const botMessage = document.createElement('div'); // botMessage.className = 'chat-message bot-message'; // botMessage.innerHTML = ` // EyeBot: // ${data.answer} // `; // chatlog.appendChild(botMessage); // // Scroll ke bawah // chatlog.scrollTop = chatlog.scrollHeight; // }) .then(data => { // Hapus indikator "sedang mengetik" chatlog.removeChild(typingIndicator); // Tambahkan respons bot ke chatlog const botMessage = document.createElement('div'); botMessage.className = 'chat-message bot-message'; botMessage.innerHTML = ` EyeBot: ${data.answer} Predicted Tag: ${data.predicted_tag} (${data.probabilities[data.predicted_tag].toFixed(4)}) `; chatlog.appendChild(botMessage); // Tambahkan event listener untuk tombol toggle const toggleButton = botMessage.querySelector('.toggle-probs'); const probsDiv = botMessage.querySelector('.probabilities'); toggleButton.addEventListener('click', () => { if (probsDiv.style.display === 'none') { probsDiv.style.display = 'block'; toggleButton.textContent = 'Hide Probabilities'; } else { probsDiv.style.display = 'none'; toggleButton.textContent = 'Show Probabilities'; } }); // Scroll ke bawah chatlog.scrollTop = chatlog.scrollHeight; }) .catch(error => { console.error('Error:', error); // Hapus indikator "sedang mengetik" chatlog.removeChild(typingIndicator); const errorMessage = document.createElement('div'); errorMessage.className = 'chat-message bot-message'; errorMessage.innerHTML = ` EyeBot: Maaf, terjadi kesalahan. Silakan coba lagi. `; chatlog.appendChild(errorMessage); // Scroll ke bawah chatlog.scrollTop = chatlog.scrollHeight; }); // Kosongkan input userInput.value = ''; } function clearChat() { const chatlog = document.getElementById('chatlog'); chatlog.innerHTML = `
EyeBot: Halo! Saya EyeBot, siap membantu Anda dengan informasi kesehatan mata. Apa yang bisa saya bantu?
`; }