| | <!DOCTYPE html> |
| | <html lang="en"> |
| | <head> |
| | <meta charset="UTF-8"> |
| | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| | <title>Image Captioning</title> |
| | </head> |
| | <body> |
| | <h1>Image Captioning</h1> |
| | <form id="uploadForm" action="/predict/" method="post" enctype="multipart/form-data"> |
| | <label for="image">Upload Image:</label><br> |
| | <input type="file" id="image" name="image" accept="image/*"><br> |
| | <label for="context">Question:</label><br> |
| | <input type="text" id="context" name="context"><br> |
| | <button type="submit" id="submitBtn">Submit</button> |
| | </form> |
| |
|
| | <div id="result" style="display: none;"> |
| | <h2>Result:</h2> |
| | <p id="caption"></p> |
| | </div> |
| |
|
| | <div id="loading" style="display: none;"> |
| | <p>Loading...</p> |
| | </div> |
| |
|
| | <script> |
| | document.getElementById('uploadForm').addEventListener('submit', async function(event) { |
| | event.preventDefault(); |
| | showLoadingIndicator(); |
| | let formData = new FormData(this); |
| | try { |
| | let response = await fetch('/get_caption', { |
| | method: 'POST', |
| | body: formData |
| | }); |
| | if (response.ok) { |
| | let result = await response.json(); |
| | document.getElementById('caption').innerText = result.caption; |
| | document.getElementById('result').style.display = 'block'; |
| | hideLoadingIndicator(); |
| | } else { |
| | alert('An error occurred while processing the request.'); |
| | hideLoadingIndicator(); |
| | } |
| | } catch (error) { |
| | console.error('An error occurred:', error); |
| | alert('An error occurred while processing the request.'); |
| | hideLoadingIndicator(); |
| | } |
| | }); |
| | |
| | function showLoadingIndicator() { |
| | document.getElementById('loading').style.display = 'block'; |
| | document.getElementById('submitBtn').disabled = true; |
| | } |
| | |
| | function hideLoadingIndicator() { |
| | document.getElementById('loading').style.display = 'none'; |
| | document.getElementById('submitBtn').disabled = false; |
| | } |
| | </script> |
| | </body> |
| | </html> |
| |
|
| |
|
| |
|