let conversationHistory = []; function sendMessage() { const userInput = document.getElementById('user-input'); const submitButton = document.getElementById('submit-button'); const userMessage = userInput.value.trim(); if (userMessage) { addMessage('user', userMessage, 'user'); userInput.value = ''; // Добавляем сообщение пользователя в историю // conversationHistory.push({"role": "user", "content": userMessage, "display": userMessage}); // Ограничиваем историю до 20 сообщений if (conversationHistory.length > 20) { conversationHistory.shift(); } submitButton.innerText = 'Отвечаем...' submitButton.disabled = true // Отправляем сообщение и историю на сервер fetch('/send_message', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ history: conversationHistory, message: userMessage }) }) .then(response => response.json()) .then(data => { addMessage('assistant', data.response, 'Ассистент'); conversationHistory = data.history; // Обновляем историю сообщений saveConversationHistory(); }) .catch(error => { console.error('Error:', error); addMessage('assistant', 'Sorry, something went wrong.', 'Ассистент'); }) .finally(e => { submitButton.innerText = 'Отправить' submitButton.disabled = false }) } } function addMessage(sender, message, role) { if(role == 'system') return const chatMessages = document.getElementById('chat-messages'); const messageElement = document.createElement('div'); messageElement.classList.add('message', sender); const label = role === 'user' ? 'Вы' : 'Ассистент' messageElement.innerHTML = `${label}: ${message}`; chatMessages.appendChild(messageElement); chatMessages.scrollTop = chatMessages.scrollHeight; } function saveConversationHistory() { localStorage.setItem('conversationHistory', JSON.stringify(conversationHistory)); } function loadConversationHistory() { const savedHistory = localStorage.getItem('conversationHistory'); if (savedHistory) { conversationHistory = JSON.parse(savedHistory); conversationHistory.forEach(msg => addMessage(msg.role, msg.display, msg.role)); } } document.addEventListener('DOMContentLoaded', () => { loadConversationHistory(); document.getElementById('clear-history').addEventListener('click', () => { clearConversationHistory(); }); }); function clearConversationHistory() { conversationHistory = []; const chatMessages = document.getElementById('chat-messages'); chatMessages.innerHTML = ''; localStorage.removeItem('conversationHistory'); }