|
$(document).ready(function() { |
|
var memoryMode = 'full'; |
|
|
|
$('#memory-toggle').change(function() { |
|
memoryMode = $(this).is(':checked') ? 'smart' : 'full'; |
|
}); |
|
|
|
$('#chat-form').submit(function(event) { |
|
event.preventDefault(); |
|
var userInput = $('#user-input').val(); |
|
$('#chat-container').append('<div class="message user-message"><i class="fas fa-user icon"></i>' + userInput + '</div>'); |
|
$('#user-input').val(''); |
|
$('#send-button').prop('disabled', true); |
|
$('#loading-message').show(); |
|
var $botMessage = $('<div class="message bot-message"><i class="fas fa-robot icon"></i></div>'); |
|
$('#chat-container').append($botMessage); |
|
var botResponse = ''; |
|
$.ajax({ |
|
url: '/chat', |
|
method: 'POST', |
|
data: JSON.stringify({ user_input: userInput, mode: memoryMode }), |
|
contentType: 'application/json', |
|
dataType: 'text', |
|
xhrFields: { |
|
onprogress: function(e) { |
|
var chunk = e.currentTarget.response.slice(botResponse.length); |
|
botResponse += chunk; |
|
$botMessage.html('<i class="fas fa-robot icon"></i>' + botResponse.replace(/\n/g, '<br>')); |
|
$('#chat-container').scrollTop($('#chat-container')[0].scrollHeight); |
|
} |
|
}, |
|
success: function() { |
|
$('#send-button').prop('disabled', false); |
|
$('#loading-message').hide(); |
|
}, |
|
error: function(xhr, status, error) { |
|
$('#send-button').prop('disabled', false); |
|
$('#loading-message').hide(); |
|
var errorMessage = '<div class="message error-message"><i class="fas fa-exclamation-triangle icon"></i>Error: ' + error + '</div>'; |
|
$('#chat-container').append(errorMessage); |
|
} |
|
}); |
|
}); |
|
|
|
setInterval(function() { |
|
$.post('/sleep'); |
|
}, 20000); |
|
}); |