ai_chatbot / static /script.js
HFswapnil's picture
Update static/script.js
73241e7 verified
Raw
History Blame Contribute Delete
2.52 kB
const input = document.getElementById('input_prompt');
const button = document.getElementById('submit_button');
const messagesDiv = document.getElementById('messages');
let FILE_ID = ""
let curr_chat_id = chat_id
const file = document.getElementById("pdf_upload")
function update_file_status(status, error=null) {
if (status) {
appendMessage(`Uploaded ${file.files[0].name}`, 'file_uploaded')
}
else {
window.alert(error)
}
}
file.addEventListener("change", async () => {
if (!file.files.length) {
window.alert("No files selected")
return ;
}
if (file.files.length > 1) {
window.alert("You can upload only a single file at once")
return ;
}
const form_data = new FormData()
form_data.append("file", file.files[0])
form_data.append("chatID", chat_id)
try {
const response = await fetch(`/upload_pdf`, {
"method" : "POST",
"body" : form_data
})
const json = await response.json()
update_file_status(true, null)
FILE_ID = json.filename
// return json.filename
}
catch (error) {
update_file_status(false, "Something went wrong while uploading PDF.")
}
})
function appendMessage(text, sender) {
const msg = document.createElement('div');
msg.classList.add('message', sender);
if (sender === 'bot') {
msg.innerHTML = `<pre><code>${text}</code></pre>`; // Render HTML for bot
}
if (sender === "file_uploaded") {
msg.innerHTML = text
}
else {
msg.innerHTML = text; // Keep user input safe
}
messagesDiv.appendChild(msg);
messagesDiv.scrollTop = messagesDiv.scrollHeight;
}
button.addEventListener('click', async event => {
event.preventDefault()
const userText = input.value.trim();
if (!userText) return;
appendMessage(userText, 'user');
input.value = '';
try {
const response = await fetch(`/generate`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ data: userText, id : FILE_ID, chatID : chat_id})
});
const result = await response.json();
appendMessage(result.llm_response, 'bot');
} catch (err) {
appendMessage('Error connecting to server.', 'bot');
}
});
input.addEventListener('keypress', (e) => {
if (e.key === 'Enter') {
button.click();
}
});