Spaces:
Sleeping
Sleeping
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>AI Chat</title> | |
| <style> | |
| body { | |
| font-family: Arial, sans-serif; | |
| background-color: #f4f4f9; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| .chat-container { | |
| max-width: 600px; | |
| margin: 50px auto; | |
| padding: 20px; | |
| background-color: white; | |
| box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); | |
| border-radius: 8px; | |
| } | |
| .chat-box { | |
| max-height: 400px; | |
| overflow-y: auto; | |
| padding: 10px; | |
| background-color: #fafafa; | |
| border-radius: 8px; | |
| margin-bottom: 20px; | |
| } | |
| .user-message, .bot-message { | |
| padding: 10px; | |
| margin-bottom: 10px; | |
| border-radius: 8px; | |
| } | |
| .user-message { | |
| background-color: #e1f5fe; | |
| align-self: flex-end; | |
| text-align: right; | |
| } | |
| .bot-message { | |
| background-color: #f1f1f1; | |
| align-self: flex-start; | |
| text-align: left; | |
| } | |
| .input-box { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| border-top: 1px solid #ddd; | |
| padding: 10px; | |
| } | |
| .input-box input { | |
| width: 80%; | |
| padding: 10px; | |
| border-radius: 4px; | |
| border: 1px solid #ddd; | |
| } | |
| .input-box button { | |
| padding: 10px; | |
| background-color: #007BFF; | |
| color: white; | |
| border: none; | |
| border-radius: 4px; | |
| cursor: pointer; | |
| } | |
| .input-box button:hover { | |
| background-color: #0056b3; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="chat-container"> | |
| <div class="chat-box" id="chat-box"></div> | |
| <div class="input-box"> | |
| <input type="text" id="user-input" placeholder="Type a message..." /> | |
| <button onclick="sendMessage()">Send</button> | |
| </div> | |
| </div> | |
| <script> | |
| const chatBox = document.getElementById('chat-box'); | |
| const userInput = document.getElementById('user-input'); | |
| // Function to add message to the chat box | |
| function addMessage(message, type) { | |
| const messageDiv = document.createElement('div'); | |
| messageDiv.classList.add(type + '-message'); | |
| messageDiv.innerText = message; | |
| chatBox.appendChild(messageDiv); | |
| chatBox.scrollTop = chatBox.scrollHeight; // Scroll to the bottom | |
| } | |
| // Function to send a message to the backend | |
| function sendMessage() { | |
| const message = userInput.value.trim(); | |
| if (message === '') return; | |
| addMessage(message, 'user'); | |
| userInput.value = ''; // Clear input field | |
| // Send the message to the backend | |
| fetch('/generate', { | |
| method: 'POST', | |
| headers: { | |
| 'Content-Type': 'application/x-www-form-urlencoded' | |
| }, | |
| body: `message=${encodeURIComponent(message)}` | |
| }) | |
| .then(response => response.json()) | |
| .then(data => { | |
| addMessage(data.response, 'bot'); | |
| }) | |
| .catch(error => { | |
| console.error('Error:', error); | |
| }); | |
| } | |
| // Enable enter key to send message | |
| userInput.addEventListener('keydown', (e) => { | |
| if (e.key === 'Enter') { | |
| sendMessage(); | |
| } | |
| }); | |
| </script> | |
| </body> | |
| </html> | |