Spaces:
Sleeping
Sleeping
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <title>Chat with Model</title> | |
| <style> | |
| body { | |
| font-family: Arial, sans-serif; | |
| background-color: #f4f7fa; | |
| color: #333; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| height: 100vh; | |
| margin: 0; | |
| } | |
| .container { | |
| width: 100%; | |
| max-width: 600px; | |
| background: white; | |
| border-radius: 10px; | |
| box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.3); | |
| overflow: hidden; | |
| } | |
| header { | |
| background-color: #4a90e2; | |
| color: white; | |
| text-align: center; | |
| padding: 20px; | |
| } | |
| header h1 { | |
| margin: 0; | |
| font-size: 24px; | |
| } | |
| header p { | |
| margin: 5px 0 0; | |
| font-size: 14px; | |
| color: #d9e8f5; | |
| } | |
| .chat-window { | |
| max-height: 400px; | |
| overflow-y: auto; | |
| padding: 15px; | |
| } | |
| .chat-controls { | |
| display: flex; | |
| padding: 10px; | |
| border-top: 1px solid #e1e1e1; | |
| background-color: #f9f9f9; | |
| } | |
| .chat-input { | |
| flex: 1; | |
| padding: 10px; | |
| font-size: 16px; | |
| border: 1px solid #ccc; | |
| border-radius: 5px; | |
| margin-right: 10px; | |
| } | |
| .send-button { | |
| padding: 10px 15px; | |
| font-size: 16px; | |
| color: white; | |
| background-color: #4a90e2; | |
| border: none; | |
| border-radius: 5px; | |
| cursor: pointer; | |
| } | |
| .send-button:hover { | |
| background-color: #357ab8; | |
| } | |
| .message { | |
| padding: 10px; | |
| margin: 8px 0; | |
| border-radius: 10px; | |
| font-size: 16px; | |
| width: fit-content; | |
| max-width: 75%; | |
| } | |
| .message.user { | |
| background-color: #e1f5fe; | |
| align-self: flex-end; | |
| text-align: right; | |
| } | |
| .message.model { | |
| background-color: #f0f0f0; | |
| align-self: flex-start; | |
| text-align: left; | |
| } | |
| </style> | |
| <script> | |
| async function sendPrompt(modelName) { | |
| const prompt = document.getElementById("prompt").value; | |
| if (!prompt.trim()) { | |
| alert("Please enter a message."); | |
| return; | |
| } | |
| const response = await fetch(`/generate/${modelName}`, { | |
| method: "POST", | |
| headers: { "Content-Type": "application/json" }, | |
| body: JSON.stringify({ prompt }) | |
| }); | |
| const data = await response.json(); | |
| const chatWindow = document.getElementById("chat-window"); | |
| chatWindow.innerHTML += `<p><b>You:</b> ${prompt}</p>`; | |
| chatWindow.innerHTML += `<p><b>${modelName}:</b> ${data.response}</p>`; | |
| chatWindow.scrollTop = chatWindow.scrollHeight; | |
| document.getElementById("prompt").value = ""; | |
| } | |
| </script> | |
| </head> | |
| <body> | |
| <div class="container"> | |
| <header> | |
| <h1>Interactive NLP Model Chat</h1> | |
| <p>Ask questions, get insights, and explore the capabilities of your custom model.</p> | |
| </header> | |
| <main id="chat-window" class="chat-window"> | |
| <!-- Messages will appear here --> | |
| </main> | |
| <footer class="chat-controls"> | |
| <input id="prompt" class="chat-input" type="text" placeholder="Type your question..." autocomplete="off"> | |
| <button onclick="sendPrompt('{{ model_name }}')">Send</button> | |
| </footer> | |
| </div> | |
| </body> | |
| </html> | |